Welcome!

AJAX & REA Authors: Lee Novak, Brad Abrams, Alin Irimie, Jonny Defh, RealWire News Distribution

Related Topics: AJAX & REA

AJAX & REA: Article

AJAX and RIA 2009: More Choices, Tough Decisions

Where we are now and what’s coming in 2009

The story of software development in the last few years has been driven by the need to provide a good user experience without installation issues and update woes. For some people that has meant building "smart client" applications, as promoted by Microsoft. For others, that has meant building rich Internet applications (RIAs) using technologies such as AJAX, Microsoft Silverlight, and Adobe Flash and Flex. For a sizable subset of Web applications, "zero footprint" on the client is a requirement, which usually leads to the adoption of AJAX for these applications. (When we say AJAX, we include all the different varieties of asynchronous JavaScript Web applications, whether or not they use XML for their data exchange.)

Challenges for the AJAX Developer
The biggest problem with AJAX for developers is that it has been hard to implement, debug and maintain. In particular, an AJAX application is prone to Web browser dependencies, and users tend to be headstrong about using the browser they currently favor rather than the browser that will best run the particular application they happen to be using. That leads developers to try to write AJAX applications that will run on any browser, or at least any major, current browser.

Browser compatibility issues can be a nightmare, and AJAX developers who have struggled to make their application run properly on their primary browser target are often ready to tear out their hair when they discover major problems running the same application on the other browsers they need to support. AJAX libraries and frameworks help somewhat, since one of their design goals is typically to isolate the application programmer from the different JavaScript implementations and Document Object Models (DOMs) of different browsers. Even so, the library developers have a hard time hiding all the incompatibilities, especially as new browsers (for example, Google Chrome) and browser versions (for example, Internet Explorer 8) keep coming out.

At a slightly higher level, data binding is often harder than it should be. Many AJAX applications are written to communicate with database servers. In an ideal world for the application programmer, there would be an easy, standard way of binding data streams to AJAX controls and controlling how much data is downloaded and when "dirty" data is written back to the database. As it is now, data binding is often pushed to server-based frameworks, and live AJAX data updates are often "left as an exercise for the student."

Where We Are Now
We developers are currently blessed with a plethora of AJAX libraries and frameworks with a wide range of approaches and prices ranging from completely free to thousands of dollars per year. Some are strictly JavaScript APIs. Some have XML tag libraries; some don't.

Some have tools that make them easier to use; most don't. Some have current, complete documentation. Some have books written about them. Some have videos explaining their use. Some are supported by vendors - typically for a non-negligible price. Some have an active community contributing to their development. Some have a pool of knowledgeable consultants who use the toolkit on a regular basis and are available to help with projects.

More Stories By Martin Heller

Martin Heller is a software developer and consultant who often writes and blogs about development.

Comments (2) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
becca77 11/08/08 02:07:55 PM EST

An interesting insight. I honestly think that things are looking pretty good for Ajax as far as jobs go. If you look at these stats http://www.odesk.com/trends/ajax, it looks as though we're remaining steady during the otherwise tumoltuous economic trends.

ckendrick99 11/07/08 07:18:19 PM EST

Excellent article Martin, you picked mostly real companies instead of the ever present crop of VC-funded noisemakers. Few people are aware of Alpha and their technology makes good sense, but I would say that wouldn't I? .. those same features (QBE, inline edit, optional direct SQL connection) are also in SmartClient.

Jouk Pleiter of Backbase unfortunately made some factually incorrect claims.

1) GWT does not use XML tags and does not "render tags" on the server. GWT allows you to write Java code that is translated at compile time to JavaScript and runs purely in the browser. GWT does not require any particular server technology to be used, for example, GWT applications can run on PHP servers.

The point of GWT is to enable Java programmers to leverage existing skills - using GWT feels very similar to using Java Swing. This is in contrast to an XML tag library approach, which provides declarative access to some features but still exposes you to JavaScript for deep customization. GWT allows you to build custom components in ordinary Java. That's why we've created SmartGWT, which gives you SmartClient's extremely sophisticated Ajax visual components in a familiar Java environment.

2) There is likewise confusion about the distinction between how various frameworks handle XML tags. With the exception of Backbase, all of the frameworks mentioned have the ability to "compile" XML tags to JavaScript or to proprietary formats (Flex, Silverlight). This includes SmartClient, which has an XML language that can be either compiled or used dynamically. None of the frameworks mentioned have the disadvantage of requiring server-side rendering of XML tags, as implied by Jouk's contrast with Backbase.

Instead, the actual distinction is that Backbase alone interprets it's XML tags inside the browser. This is less efficient (extra steps taken at runtime) and so far as I know, they do not provide a way around this inefficiency, which is not a problem with any of the other technologies listed.

At your service Martin - again great article.

Cheers,
Charles