Lambda the Ultimate

inactiveTopic Beyond JS (library)
started 8/17/2001; 12:33:48 AM - last post 8/22/2001; 1:46:30 AM
Ehud Lamm - Beyond JS (library)  blueArrow
8/17/2001; 12:33:48 AM (reads: 1687, responses: 6)
Beyond JS (library)
Basically a high order programming library for Javascript.

(Note: The 'game' featured on the page crashed the IE5 I have here).

Posted to functional by Ehud Lamm on 8/17/01; 12:35:22 AM

Chris Rathman - Re: Beyond JS (library)  blueArrow
8/17/2001; 5:48:21 PM (reads: 1740, responses: 0)
Typical of problems with programming in JavaScript. JavaScript itself is a pretty nice dynamic language with inheritance resembling the Self object inheritance model more than the typical class inheritance model of most OO languages.

However, one quickly finds that JavaScript is extremely frustrating. The biggest problem, though, is not really the language itself. Rather, the Object model (DOM) for most of the browsers are picky and buggy. You find that what works for one browser is completely broken in another. No fun at all.

Ehud Lamm - Re: Beyond JS (library)  blueArrow
8/18/2001; 12:16:35 AM (reads: 1733, responses: 0)
Yeah, that's why I always shy away from actually learning all the details. But the same guy shows how to do pretty cool stuff using Javascript (and XML-RPC). I found the organisation chart example esp. impressive - it is just so fast...

Sjoerd Visscher - Re: Beyond JS (library)  blueArrow
8/18/2001; 3:17:12 PM (reads: 1750, responses: 0)
You might be interested to know that the game should work now in IE5.

Chris: In this case it was a problem with Javascript. IE5's version of Javascript doesn't support function.apply(), and our own implementation of it was flawed. That's fixed now.

Ehud: Thank you!

Ehud Lamm - Re: Beyond JS (library)  blueArrow
8/20/2001; 8:42:37 AM (reads: 1740, responses: 0)
It still crashed on the machines I tried.

Chris Rathman - Re: Beyond JS (library)  blueArrow
8/20/2001; 5:32:58 PM (reads: 1728, responses: 0)
Seems to work under IE5.5 here. Tried Netscape 6.0 and Opera 5, but nither seem to do much one way or the other. Netscape 6.0 is hopeless - been meaning to update to 6.1 to see if it's any better. Opera is great at everything but JavaScript, where there's still some holes here and there.

Dan Shappir - Re: Beyond JS (library)  blueArrow
8/22/2001; 1:46:30 AM (reads: 1711, responses: 0)
Thanks for checking it out.

The reason we have posted beyond.js is precisely so that people get a chance to play with it and test it on verious platforms. There are two reasons why beyond.js (or the HTML page that uses it) may fail in a specific browser: 1. JavaScript incompatibility 2. DOM incompatibility

The first one has to do with JS features added in later versions of that language. As Sjoerd mentioned above one such feature, which is used extensively in beyond.js, is the function.apply() method. This method was added to IE in version 5.5 of the script engine, which is bundled with IE5.5. We have provided an implementation of this method for platforms that don't provide it but it was flawed. Sjoerd has fixed the flaw but perhaps there are other bugs in it as well.

DOM incompatibility issues are a very familiar problem to anyone doing client-side browser programming. beyond.js is more of a JavaScript utility library than a browser services library (although it does provide some browser services) so hopefully it will be less effected by this issue. In the case of the sample page, Sjoerd specifically mentioned that it wouldn't work on Mozilla because of incompatibilities in the event model. Sjoerd and I are currently looking at this issue in the hopes of leveraging beyond.js facilities to make it easier to write cross-browser code.

Sjoerd and I would really like to see beyond.js become a community effort. I personally believe that ideas expressed in this library can take JS programming to the next level (although they also take a bit of getting used to :) We are both doing this as a hobby and a learning experience so we are limited in the amount of resources we can put into this project. Hopefully this process will gain traction when Sjoerd starts explaining the capabilities of this lib on his web site.