On Ajax, Walls and Writing
As a general rule, I try only to post content involving source code on my blog. I have been known to leave long comments however, and that’s exactly what happened yesterday when I read Richard Leggett’s blog post on the future of Ajax. I have nothing but the utmost respect for Richard, but I thought this particular post could use some rounding out. After some consideration, what follows is that comment turned blog post.
Catch-up has been slow, but I think that is in part because Ajax as a unifying term has really only been around for a few years. It is also much harder to accomplish drag/drop, etc. in the standards-based world. Flashers have really only had one runtime to worry about, and have had drag/drop since near the beginning, so it’s not that hard to believe that type of functionality was taken for granted some time ago.
It is true that user expectations are becoming more demanding at a rapid pace, and Richard list some great examples. Many of these can be emulated wholesale by emerging standards (i.e. SVG, 2D/3D Canvas, audio/video from the HTML 5 specification, as well as font embedding for CSS3).
For as far ahead as Flash may be in some areas, Google took Ajax and made a calendaring system, collaborative spreadsheet and even a decent word processor. Flash is only just now getting around to the word processor, and still lacks examples of a spreadsheet and calendaring system used on the same scale as the Google suite.
It’s true that standards bodies move slow. Committees and political agendas abound. There’s something to be said for that vision though. What happens for Flash if all the aforementioned standards (proposals really) actually do become standards? HTML 5 even includes an embedded database, for which Flash has to go to the desktop (i.e. AIR). ECMAScript 4 and the Tamarin VM could put the browser on the whole on the same playing field as Flash, and it would all be standard.
An interesting side note about solutions and alternatives is approachability. Richard alludes to this, but when it comes to making Flash support deep-linking, testing and even accessibility, there’s a fair amount of additional work that really requires the developer be “in the know.” SDK’s and IDE alternatives for Flash may also be available, but Notepad/TextEdit is always right there.
Turning the conversation 180 degrees, let’s not forget that for all of Flash Player’s ubiquity, there’s nothing that comes close to the vast amount of standards-based HTML content out there. Most Flash in fact still requires HTML to at least setup where on a page that content will reside, and to specify what content will act as the root. HTML rendering in Flash Player is extremely limited, but there’s no more ubiquitous format anywhere.
I also find it amusing when Flash developers tout Flash Player 9’s VM and AS3 as a language. Let’s not forget where Flash came from, and remember that Flashers have struggled with component development in Flash since scripting was introduced the Player. It is only recently that this has become mature, and that component development in Flash has a long ways to go to match what Microsoft has across the board.
Shall I get into the ubiquity of Flash on devices? Decent support (if not excellent support) for HTML is available on far more devices than Flash Lite.
Another random anecdote is that while Flash fancies itself ideal for animation, Dreamweaver had a “timeline” feature for DHTML, which was removed, and then put back again due to overwhelmingly popular demand.
Before this starts turning into a flame war, I want to be perfectly clear that I’m not trying to bash Flash. I hold Flash very near and dear. I’m also not trying to say that HTML is ideal for every RIA. Regardless of the camp you side with, there are zealots/purists on both sides - and that’s a good thing. Those folks that push at both ends are largely responsible for feature innovation. Zealots and purists are also a bad thing in that they further the “fear uncertainty and doubt” factor against other technologies.
The reality is that there’s a vast amount of grey between either end.
Whether you’re a fan of Adobe AIR or not, it certainly blurs the line between both technologies rather significantly. I think it will inevitably show where developers could be if they stopped being so entrenched and learn to embrace the whole toolkit available to the web developer.
Isn’t it the user who we’re all really fighting for? Within the context of the browser, wouldn’t it be amazing if all these technologies played well together? What kind of RIA’s would evolve when both browser standards and browser extensions were equal parties? What would it take to get there? I think those are the types of discussions looking thought leaders from both camps dead in the eyes (including vendors such as Adobe itself).