Times have changed. I used to avoid using JavaSript as I didn't see the point. Why use JavaScript when many users disable it anyway? Searching for code snippets and tutorials on the web took a long time and often those scripts didn't work properly—and I didn't know how to fix them. But after reading a couple of good books, DOM Scripting (New Riders Press 2005) and Beginning JavaScript with DOM Scripting and AJAX (Apress 2006), and after understanding the concepts of graceful degradation, progressive enhancement and unobtrusive Javascript, I began to see the benefits of using JavaScript. However, I didn't know where to start, or how to build or choose a good framework of functions that can be reused.
Over the past couple of years, a number of JavaScript frameworks have been developed. Here's a list of libraries that I've found:
- base2.DOM
- Dojo
- DOMAssistant
- Ext JS
- jQuery
- MochiKit
- moo.fx
- MooTools
- Prototype
- qooxdoo
- Rico
- script.aculo.us
- The Yahoo! User Interface Library (YUI)
- SWFObject v2.0 (for embedding Flash content)
- Unobtrusive Flash Objects (UFO) v3.22 (for embedding Flash content)
Now, I don't know yet which one I'll use the most. And I need to better understand how JavaScript works. Robert Nyman's DOMAssistant seems like a good start. Some other good resources include Roger Johansson's article Choosing a JavaScript framework, and Chris Heilmann's (the author of Beginning JavaScript with DOM Scripting and AJAX (Apress 2006)) the seven rules of Unobtrusive JavaScript.
Here's a quote I like:
If you simply add a class to the body of the document using DOM you can easily offer a chance for a designer to define both the static and dynamic version of the document.