AJAX browser-side interoperability issues looming

The battle for AJAX standards could be another one of those to-the-death battles for the hearts and minds of developers. No less than Joel Spolsky predicts someone will write an SDK for AJAX apps with common user interface elements that work together. This SDK will have the same stronghold as Microsoft once had with Windows APIs.

Interoperability on the AJAX front may be the next frontier. If not interoperability, portability; it’s one of those case of ‘I don’t care what you call me but don’t call me late for dinner.’ No less than Joel Spolsky has pointed this out. A ton of Web applications have been redone using the highly interactive AJAX format which relies on more browser-side caching than was typical in the immediate past. But, first, let’s look back a bit.

When we look back on the client-server era, we tend to think of it as a move in the right direction, but one which failed because its first successes were two-tier architectures that couldn’t grow up. The mucking about with client-server came to an end as the Web browser came aborning. Forgotten now is the fact that deploying and updating client server clients was a virtually impossible task once one reached a certain number of clients. The web browser came along as the ubiquitous client and that – except in some super valuable Wall Street applications – was that.

The Web client began to look a little long in the tooth a few years ago. But at about the same time AJAX asynchronicity and client-side caching began to expand. So we stand today with people bemoaning the need to test AJAX apps on multiple platforms [once a very common nuisance], and desiring a single workable solution.

Enter Joel Spolsky, the historically grounded and museful thinker on software. The road is not straight. In a recent post he begins by discussing IBM Lotus Symphony. Because he is old enough to remember the original failed Lotus Symphony, he has a very different take on IBM’s latest open-source desktop productivity suite [Symphony] than others. [Hey did you notice that IBM also revived the Lotus Jazz moniker of late too?] He recalls Symphony’s issue with DOS-era memory limitations. And starts to think about AJAX.

The time around 1989 marked the place where programmers did not have to spend months ‘rewriting .. inner loops in Assembler” All that has passed. But the boogie people of performance and optimization still hound the JavaScript running on browsers in AJAX applications.

He writes:

A lot of today’s AJAX applications have a meg or more of client side code. This time, it’s not the RAM or CPU cycles that are scarce: it’s the download bandwidth and the compile time. Either way, you really have to squeeze to get complex AJAX apps to perform well.

History, though, is repeating itself. Bandwidth is getting cheaper. People are figuring out how to precompile JavaScript.

Then comes a consideration of portable programming language.

Right now the big hole in the portability story is — tada! — client-side JavaScript, and especially the DOM in web browsers. Writing applications that work in all different browsers is a friggin’ nightmare. There is simply no alternative but to test exhaustively on Firefox, IE6, IE7, Safari, and Opera, and guess what? I don’t have time to test on Opera. Sucks to be Opera. Startup web browsers don’t stand a chance.

Spolsky goes on to ponder what type of interop is needed in the Ajax ferment. There is an Open Ajax Alliance standard about, but it is too early to guess where that will end up. If you follow Spolsky’s line, a standard here will be no mere standard. It will, he says, be tantamount in significance to the standard that was Windows.

So if history repeats itself, we can expect some standardization of Ajax user interfaces to happen in the same way we got Microsoft Windows. Somebody is going to write a compelling SDK that you can use to make powerful Ajax applications with common user interface elements that work together. And whichever SDK wins the most developer mindshare will have the same kind of competitive stronghold as Microsoft had with their Windows API.

History may or may not repeat itself. If it does, it may prove the point that history does not always repeat itself without changing some important details. What Spolsky suggests may come to be, but markets and developers will have a hand in the decision. What do you think? -Jack Vaughan

http://www.joelonsoftware.com/items/2007/09/18.html


Leave a Reply