JavaScript as a real language

Saturday 21 January 2006This is over 17 years old. Be careful.

My new job will take me much further into JavaScript than I have gone in the past, even though I am not the JavaScript guy. I mentioned some time ago that JavaScript is underestimated, but I still have not learned (much less internalized) all of those lessons.

Alex Russell gives some fundamental principles of JavaScript (which he erroneously calls idioms) which would go a long way toward modernizing my approach to the language.

These days there are many powerful JavaScript libraries available. They are great either as a toolkit to use in web apps, or as advanced textbooks in how JavaScript can be used. Here’s a sampling:

  • prototype provides an AJAX framework and lots of other JavaScript utilities. It is often used as a foundation by other libraries in this list.
  • Behaviour lets you add JavaScript handlers to elements using CSS syntax rather than onClick attributes.
  • provides lots of cool functionality like visual effects, autocompletion, and drag and drop.
  • Rico provides AJAX, visual effects, and drag and drop.
  • Dojo is a large library providing many features, enough that it is available in different subsets (“Editions”). Included are AJAX, visual effects, and rich text editing.
  • jQuery provides CSS and XPath selectors for accessing elements, among other tools.

For a more complete list, check out Saddam Azad’s JavaScript libraries roundup.

Finally, if you aren’t quite ready to take on a whole library but want to get started using cooler functions, or at least understanding what all the excitement is about, Dustin Diaz has a list of the top 10 custom JavaScript functions of all time.


Ned, you always do a great service by aggregating info, and this one big winner. I think you are going to be having some fun in your new gig...
A few more great Javascript resources are the writings of Douglas Crockford, here:

"JavaScript: The Wrrrld's Most Misunderstood Programming Language" and "The Little JavaScripter" and a bunch more stuff.
Any reason you didn't mention MochiKit ( Given that it's pitched as a toolset that makes working with js more like working with python, I would think it might be of interest. I haven't tried to use it for anything yet, but the screencast makes it look pretty slick.
I also vote for MochiKit. I've used it in a number of projects, and its clean, simple design makes most of my JS tasks very nice.
There is a reason I didn't mention MochiKit: My head was swimming from all the candidates out there, and I overlooked it. I haven't done a serious analysis of any of these. Thanks for mentioning MochiKit.
Personally, I've become a gigantic fan of MochiKit. It doesn't have quite the visual flair of the other libraries yet, but it's working from the language level on up. Prototype and a few others do some things that I don't quite like, such as adding methods to the Object.prototype, which pollutes every associative array I try to make. Either way, it's good times for JavaScript
I�ve tried to simplify the creation of ajax style applications with my YAJAF! javascript library/Ajax framework. I think I�ve come up with a way to build on the tacit knowledge of GUI programmers, creating an extremely flexible library/framework, and making it all very �natural� to use for programmers of traditional object oriented languages. I haven�t released it yet, and I�m trying to see if there�s any interest in doing so. I'm looking for comments to try and gauge interest. Anyone? Bueller?
Lets not forget about the browser compatibility issues of these packages. Edge surfing code written very close to one DOM or another is swell, but may hamstring your user. MSIE 7 will rock that rocking boat further.
I don't know how long term this project is, but the JSAN is progressing nicely. It hopes to be to JavaScript what CPAN is to Perl.

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
Comment text is Markdown.