134 Ajax Frameworks and Counting

I’m here in SF for The Ajax Experience, talking about design principles and patterns for Ajax (big surprise!), and one of the things my presentation will point out is the importance of libraries and frameworks in implementing Ajax patterns. Ahead of the talk, I just did a quick count of frameworks and libraries on the wiki. Turns out there are 58 in pure Javascript and another 76 with back-end support in PHP, Java, or whatever. This includes 13 for .Net, and no less than 22 for each of PHP and Java.

Overall, that’s 134 Ajax frameworks and libraries out there, many of them under a year old! It’s true that a few of the pure Javascript libraries are things like Drag-And-Drop that have been around a few years, but only a few of those. The rest are all-encompassing, like Dojo, or related to remoting, like ACE, or related to XML and DOM manipulation in a manner closely associated with Ajax, like logging and effects libraries.

When I transcribed the frameworks to form an appendix for the book, there were about 90 patterns. That was in December. So roughly 45 new frameworks since then, about one every three days. Nice going! Stuff like this makes life a lot easier for developers, no matter what they’re approach to Ajax architecture. Even if a developer doesn’t want to go near Javascript with a ten-foot pole, they’re still going to reap the benefits from a server-side framework (Rails etc). Furthermore, the server-side framework is going to reap the benefits of all these pure Javascript libraries – a number of server-side frameworks make use of Dojo, Scriptaculous, and Mochikit.

Patterns and frameworks go hand in hand. It’s not that a framework “makes patterns”, as some sales reps like to imply, but frameworks do support particular patterns. Most GUI toolkits, for example, are based closely on the Observer pattern. Java’s IO library is based on Decorator. In the case of Ajax, there are libraries like Scriptaculous which map closely to particular patterns, like One-Second Spotlight. The best reference on this stuff is Ralph Johnson’s visionary 1997 paper, Frameworks = Components + Patterns (Comms of the ACM, October, 1997).

14 thoughts on 134 Ajax Frameworks and Counting

  1. What do you think about the following? This web page teaches how one can build his own personal Ajax Java GUI framework: http://cbsdf.com/technologies/DHTML-Widgets/Widget-samples.htm

    No serious applications can ever emerge with out a solid set of reusable GUI Widgets, which must offer higher-level abstractions that let developers focus on business logic at hand. Imagine writing desktop GUI, without Windows GUI-API. Are you going to implement all the primitives yourself and include in the same functions that implement business logic?

    I am a Java developer. I request Web designers to give us great GUI Widgets, so that we can also build great GUI applications!

  2. Pingback: Ajaxian » 134 Ajax Frameworks and Counting

  3. Pingback: Rob Larsen » 134 Ajax Frameworks and Counting

  4. Pingback: 134 Ajax Frameworks and Counting at ajaxDNA: Ajax Daily News & Analysis

  5. Pingback: www.scriptfu.de » Blog Archive » 134 Ajax Frameworks and Counting

  6. Pingback: myHYP » Ajax Design Principles and Patterns

  7. ThinWire is a pure Server-Side framework that you might want to look at. It’s open-source under the GPL. In any case, some of it’s features are:

    • Familiar event-driven GUI programming model
    • Reconnects the flow of logic, no request / response
    • Maintains state naturally via variables, not via session
    • Develop exclusively in server-side language only
    • Rich Set of Complex Widget Components
    • ThinWire downloads once, just over 100K
    • Zero footprint client, no applets, activeX controls or browser plug-ins of any kind!
    • All Major Browsers Supported: Firefox 1, Opera 8, Safari 2, IE6

    ThinWire Ajax Framework

  8. I don’t see Taconite in there at all. It’s an AJAX framework with a DOM parser that works with multiple server-side languages. You can check it out here: http://taconite.sourceforge.net/

    I used it in a project once and it was a huge help, it really allowed me to structure my forms and server side processors cleanly and ensure that the AJAX worked in all browsers.

  9. Pingback: Kelvin Tan - Lucene Nutch Consulting

  10. Pingback: jQuery, etc. added to System JavaScript libraries | d-Classifieds

  11. Pingback: Prototype.js != $() « chimney

  12. Pingback: June 6th Is JavaScript ‘Array’ and ‘Object.prototype’ Awareness Day | James McParlane's Blog

Leave a Reply