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).

13 responses so far ↓
1 Murthi // May 11, 2006 at 11:28 am
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 Ajaxian » 134 Ajax Frameworks and Counting // May 15, 2006 at 1:18 pm
[…] Michael Mahemoff spent the past few days at the Ajax Experience conference and came to a slightly surprising revelation as he prepared for his talk on Ajax design patterns and principles. […]
3 Rick Thomas // May 15, 2006 at 2:34 pm
The coorect link to the wiki:
http://ajaxpatterns.org/Ajax_Frameworks
4 Michael Mahemoff // May 16, 2006 at 2:22 pm
Murthi, Feel free to add your framework to the wiki and help the community decide.
Rick, thanks for the link fix (to my own site, duh).
5 Rob Larsen » 134 Ajax Frameworks and Counting // May 17, 2006 at 2:59 am
[…] One Hundred and Thirty Four. […]
6 134 Ajax Frameworks and Counting at ajaxDNA: Ajax Daily News & Analysis // May 19, 2006 at 7:12 am
[…] 134 Ajax Frameworks and Counting Published May 19th, 2006. 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. Read Michael Mahemoff’s Ajax Experience coverage […]
7 www.scriptfu.de » Blog Archive » 134 Ajax Frameworks and Counting // May 19, 2006 at 10:53 am
[…] 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. […]
8 myHYP » Ajax Design Principles and Patterns // May 27, 2006 at 7:08 pm
[…] Michael Mahemoff from softwareas.com gave a pretty interesting talk on Ajax Design Principles and Patterns at the Ajax Experience conference earlier this month in San Fransisco. He mentions the 134 Ajax frameworks and counting today as well (Gosh!) […]
9 Joshua Gertzen // Jun 21, 2006 at 3:41 am
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:
ThinWire Ajax Framework
10 Montoya // Jan 5, 2007 at 4:42 pm
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.
11 Kelvin Tan - Lucene Nutch Consulting // May 29, 2007 at 8:18 pm
[…] (Via Software As She’s Developed » Blog Archive » 134 Ajax Frameworks and Counting) […]
12 jQuery, etc. added to System JavaScript libraries | d-Classifieds // Nov 20, 2007 at 9:56 pm
[…] There are many hundreds of AJAX and JavaScript libraries available, so we’re not, by any means, trying to provide all of them. However there are a few which are extremely well made and thus very popular so I decided to add some more of them. Here are the additional/upgraded libraries: […]
13 Prototype.js != $() « chimney // Jun 19, 2008 at 10:54 am
[…] only AJAX functions. It is time people started writing their own funcitons or using a few of these pure AJAX libraries. The cross-browser AJAX functions are not tough. You need to write one function to initiate the […]
Leave a Comment