InfoQ

News

Choosing an Ajax Framework

Posted by Rob Thornton on Mar 21, 2007 08:00 AM

Community
.NET,
Ruby,
Java
Topics
Rich Internet Apps
Tags
AJAX

Sebastian Just has written about how to select an Ajax framework. He lists a number of questions that architects should answer in helping them narrow down the list of available frameworks, including community and corporate support, learning curve, and whether it fits the type of user the site has.

The questions he suggests include:

Structural Javascript enhancements? Javascript can become a maze if your team does not share a common development methodology . There are so many ways of doing the same thing ( like creating objects of accessing the DOM ) in JS, that you must formalize the way to do it. Such a framework may help via on-demand Javascript, packaging abilities, enhanced OOP...

Re-usability of your written components? Making use of it shall help you in re-using written components in your next projects.

Framework current documentation level? Often low for most projects, you must take care of it

Features you need? You may look at your projects needs ( or near future needs ) and see if the Framework can handle them. Some are GUI oriented, special-effects oriented, Javascript centrics, communication only oriented. None will completely cover your requirements. What is the complexity degree in making the framework evolve ? can you add your own features in the framework ? will you help committers ? Can you mashup multiple Frameworks ?

How long will it last? Most projects are companies own project spin-off. The Framework evolution depends on their ability to maintain and make the project evolve. A good user community is important as well as talking to developers when needed further functionalities. Taking care of sponsors and the framework current uses in production web sites, is a good start in guessing if the Framework will last years or will be stopped in six months.

In a discusion on Ajaxian some other issues are raised including testability and code quality.

An alternative approach to comparing frameworks was covered in December.
Keeping accessibility and other non-Javascript users in mind by Pete Johnson Posted Mar 21, 2007 10:29 AM
Re: Keeping accessibility and other non-Javascript users in mind by Michael Neale Posted Mar 21, 2007 8:29 PM
Visual designer for a GUI framework is esential... by Guy Peled Posted Mar 22, 2007 4:43 AM
Re: Visual designer for a GUI framework is esential... by Michael Neale Posted Mar 23, 2007 12:07 AM
  1. Another important aspect when choosing an AJAX framework is to consider those who will never use it. If you choose something like GWT for your visual effects that takes over your entire page rendering you run the risk of alienating someone using accessibility tools, a handheld device, or somebody who has turned off Javascript for reasons that are their own. I was pointed to this recently and it really strikes a cord with me: http://accessites.org/site/2007/02/graceful-degradation-progressive-enhancement/1/ That's why I prefer some of the more piecemeal tools that give you a shot at the approach where you provide an enhanced experience for the Javascript user but still a functional one for the Javascript-disabled crowd. Something to consider. ---Pete http://nerdguru.net

  2. I think its the accessibility tools that have to keep up - at least when we are talking about web *applications* (not just web pages that happen to be mostly dynamically generated). Think back to pre web, the same issues happened with any thick client tool. Of course accessibility is critical, but using a very narrow and specific presentation technology to "dumb down" so they can work seems counter intuitive. Those tools used to cope with all sorts of wacky windows apps 10 years ago ! - why can't they now? All the info in a dynamic web app is available in the DOM. What about other tech like Flash/WPF and such, they either don't work with those tools, or they have to provide hooks that those tools can use. I think the age of the accessibility tools getting a free ride from text based "simple" user interfaces is rapidly coming to an end. The "graceful degradation" is kind of a seperate issue, and has its own benefits, depending on your audience (obviously not everyone needs graceful degradation - google clearly do for their search page, but if you are building a controller for a partical accellerator - perhaps not ;).

  3. Check this concept of creating AJAX application that gives you all the tools that you would expect of a GUI framework (Especially for RIA purposes). http://www.visualwebgui.com/Default.aspx?tabid=314

  4. yeah looks nice. http://www.instantiations.com/gwtdesigner/ is quite advanced (for GWT). Nice to have GUI designers like we had 10 years ago ! Hooray for progress !

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.