« New FREE Multiplayer API for Flash Developers | Main | Back in the Consulting Game »

August 20, 2008

AJAX running on borrowed time

Let’s face it, web applications “RIAs” are the future with the web being the next big development/distribution platform. Right now we have Adobe pushing Flash, Sun with Java and Microsoft has the Windows Presentation Foundation (which encompasses Silverlight). All 3 companies are putting tremendous time, money, energy and effort into evolving their products / platforms and wooing new developers.

But what about AJAX?
First, AJAX doesn’t have a company backing them. No marketing department, no development team, no revenue streams and no dungeon of ravenous lawyers protecting their legal best interest (the lawyer remark is just a joke, please don’t sue me).

Sure there are companies making AJAX tools but they can only go so far if the underlying core language doesn’t change nor do they have much recourse.

Secondly, AJAX applications are primarily made with DHTML and JavaScript. JavaScript being a language that is governed by ECMA an international organizations with various members from Adobe, Google, Mozilla, Yahoo, Microsoft, etc who approves or rejects changes to a language specification. To some, this sounds like a good thing, however, JavaScript has remained virtually unchanged for over a decade now and with ECMA’s recent announcement, about dropping the ECMAScript 4 proposal, JavaScript will continue to remain essentially the same for at least another 5 years.

This is unfortunate news for AJAX developers as web applications are only getting more complex and DHTML/JavaScript was NOT designed to build web applications. What AJAX developers have been able to accomplish so far is only a testament to the creativity and ingenuity of the AJAX development community and whose efforts should be applauded. However, 5 years from now, a 15 year old technology is going to really show its age without any major overhauls or innovations planned. AJAX either needs to evolve as other technologies have or it faces extinction.

Outlook
Companies like Adobe, Java and Microsoft are directly catering to developers and companies alike to encourage them to continue to use their products and appeal to new developers by making their jobs easier, providing more useful tools and more advanced functionality.

Flash, for example, has evolved tremendously over the past 10 years. Originally ActionScript resembled BASIC (tellTarget oh the memories), then moved onto to something that looked a lot like JavaScript with support for prototype objects, functions and sockets, realtime audio/video streaming, then a few years later ActionScript again evolved into AS2 introducing classes, interfaces, sealed components, access modifies, web cam support, etc, now ActionScript 3 has become a full fledged Object Oriented event driven programming language with JIT compilation, run time error checking, a Regular Expression engine and E4Xs support (and I’m only mentioning a small subset of the innovations).

So what does the next 5 years hold for AJAX developers according to ECMA 3.1 (that won’t even be finalized until sometime next year)?

It comprises mostly of minor changes and bug fixes to ECMAScript 3.

In contrast, what does the next few months look like for Flash Developers?

Flash Player 10, hardware acceleration, real-time 3d support, built in inverse kinematics engine, custom filters and effect engine, application-level audio mixing and filtering.

EcmaScript 4 missed opportunity
EcmaSript 4 was designed with web applications in mind, was the natural progression of JavaScript and was the basis of ActionScript 3. It really played a vital role in maturing Flash’s programming language securing the Flash Platform as a viable web application technology for another 5-10 years.. Had EcmaScript 4 be approved, it would have given AJAX developers a real application programming language to use, modernizing JavaScript, while enhancing pure AJAX developers skill set.

So why then would ECMA drop proposal 4 stagnating the language for AT LEAST another 5 years?

What many have speculated, the few in know are eluding to and what the Ecma meeting notes seem to infer is that Microsoft had a lot of influence over this decision but what could be the underlying strategy for doing so?

One less Competitor
Microsoft is really focusing on WPF/Silverlight applications with AJAX being a FREE competing product. If Microsoft spent time on making the browser a web application platform it would be counter intuitive to their efforts on Silverlight. They would essentially be competing against themselves diluting their own RIA market share and as well as splitting their internal resources.

Sun and Adobe aren’t going away anytime soon and both have proven technologies with their individual strengths and weaknesses. Microsoft couldn’t just lock them out of the OS or browser without facing a barrage of legal action so Microsoft has to compete. But then who is ensuring AJAX’s survival? Not Microsoft. Probably not Adobe or Sun either and one less competing technology isn’t going to hurt anyone.

Don’t get me wrong, Adobe had good reasons to back EcmaScript Proposal 4. It was the standard ActionScript 3 was based off of. Had the ECMA committee approved Proposal 4, it would had given Flash and even broader developer audience making it all the more approachable (an observation I highly doubt Microsoft overlooked). So while many at first saw the ECMA announcement as bad news for ActionScript; it really doesn’t prevent Adobe from innovating and evolving ActionScript further. Sadly, the same can’t be said for AJAX.

AJAX’s Achilles Heel
You can argue that AJAX isn’t going away anytime soon, but with ECMA’s recent announcement, could mean AJAX is facing deprecation / extinction as the new era of web application development rapidly approaches.

Besides preventing JavaScript from becoming a true web application language, what, worse case scenario, could Microsoft do to deal what could be the final blow to AJAX? Going after AJAX’s Achilles Heel: XMLHttpRequest.

XMLHttpRequest is the primary form of communication AJAX applications use to transmit real time data. HOWEVER, it is NOT an AJAX/DHTML/JavaScript standard.. NOPE! It is a Microsoft Internet Explorer API and there is nothing stopping the most used internet browser in the world from disabling it in future releases and then using that opportunity to promote their own web application platform.

Even if all that Microsoft was able to accomplish was: preventing JavaScript from maturing into a web application programming language, then that that alone may be enough to seal AJAX’s fate. As time goes on, developers will need to go with more advanced technologies to be able to provide the solutions / features that their clients / customers demand.

Without any company backing AJAX or pushing the underlying technologies forward, AJAX applications are on borrowed time until it dies out from either lack of evolution / progress or gets executed while everyone is looking in another direction.

Something to consider anyways . . .

-erik

Posted by erikbianchi at August 20, 2008 06:34 AM

Comments

Post a comment




Remember Me?