Wednesday, November 19, 2008

The Soul of the Web - Why Ajax Standards Matter

I spoke on a panel at Mashup Camp this week on why Ajax Standards matter. I was quoted by Doug Henschen of Intelligent Enterprise as saying that we are locked in a struggle for the soul of the web, so I thought I would expand on that theme.

Just because the web has been open so far doesn't mean that it will stay that way. By open, I mean that content has been searchable, linkable and servable without paying fees.

Flash and Silverlight, arguably the two market-leading technology toolkits for rich media applications are not open. You cannot search Flash content, you cannot link to it and if you want to serve up flash content on your web site, you need to pay for a server license.

If the future of the web lies in rich media and if these trends continue, we may well see a very different world emerge from Web 2.0.

More importantly, Flash and Silverlight work by installing a proprietary plug-in to your browser, thus opting out of the entire browser infrastructure. If you are a plug-in vendor, your incentive is to keep the browser as dumb as possible.

The worse the underlying browser is at rendering rich widgets and media, the more developers and users will want your plug-in. If you are both the vendor of a browser (say IE) as well as the proponent of a plug-in (say Silverlight), then the incentives get truly twisted.

WaveMaker has a big stake in this debate because we chose to build our WYSIWYG development tools on top of the Dojo Toolkit. We picked Dojo because WaveMaker is targeting enterprise developers who need not just nice color pickers but also sortable and pageable grids, solid internationalization and accessibility capabilities.

Ajax standards groups like the Open Ajax Alliance (under the leadership of Jon Ferraiolo)serve a important role today in helping to highlight the differences between open solutions like Dojo and proprietary solutions. They also are helping to drive the maturity of open Ajax toolkits by focussing attention on important areas like security and internationalization.

Microsoft was the rendering engine for client/server, which paid them enormous dividends. Microsoft IE was somewhat accidentally the victor in rendering engine for Web 1.0 after Netscape fumbled their lead, although they were never really able to monitize this particular monopoly.

Make no mistake - Microsoft and Adobe aim to have their proprietary plug-ins, aka pseudo-browsers, become the rendering engines for the next generation of the Web. Without a strong push for open Ajax standards, they just might get their way.

10 comments:

Doug Henschen said...

Christopher,

A lot of comments on my blog take you to task. Can you comment in reply with the "facts" they are seeking on the lack of searchability, linkability and the demand for royalties when using Flash and Silverlight?

Christopher Keene said...

@Doug - I gave answers, doubt it will help. The people commenting on your blog are not really interested in the "facts".

Matthew Fabb said...

You do not need to pay a server fee to host Flash content. Adobe's Flash Media Server, is for streaming video content and other additional features, not for plain Flash content. Note you can also host Flash video without using Adobe's servers, it's the more advanced features that require it. However, there is also an open source server product called Red5, that has a lot of the functionality found in Adobe's Flash Media Server.

I have have been creating Flash websites and Flash content since version 4 and have never paid a single royalty to Adobe and have never used any of their servers.

Also note that while Adobe pushes Flash content, they also push web standards. As Adobe makes a lot of money off of Dreamweaver licenses, plus other web tools that focus HTML/JavaScript/CSS content.

Adobe have contributed a lot to the ECMAScript standard over the years, since that is not just the basis of JavaScript, but also ActionScript for Flash. Adobe even donated their ActionScript Virtual Machine found in the Flash Player to Mozilla, where it was used for Firefox's JavaScript engine. The HUGE speed increase in the JavaScript engine that will be in Firefox 3.1 is mainly thanks to Adobe. On top of that Adobe has become a contributor to the Webkit engine that powers Safari and Google's Chrome, since Adobe use it in their CS products and in Adobe AIR.

Meanwhile an open source project called SWFAddress, has been used to add SEO, deep linking and bookmarking to Flash websites since 2006 now. Here's the link, which they include examples showing how their techniques work (it's also good for AJAX websites):
http://www.asual.com/swfaddress/

There's a lot of legitimate you can have against the Flash Player which remains partially closed sourced without bringing in all these other points that have no basis in reality.

Christopher Keene said...

@Matthew - thank you very much for your clarification on pricing. While it appears that there are free options for serving Flash content, the fact remains that full support for Flash hosting requires buying server licenses from Adobe. BTW, you can see the open source product, Red5, which is still in beta, here http://osflash.org/red5

Anonymous said...

Flash content is searchable.
AJAX content is just as susceptible to issues with deep-linking, back-button support, and search engine indexing as Flash content for exactly the same reasons.
Full support for Flash hosting does not require server licences from Adobe.
I'm not sure whether it's bias, ignorance, or both, but your comments are so removed from the truth that it boggles the mind. Are you getting sick of all your clients asking "can you do Flash?" or wondering why your sites cost them twice as much as an equivalent Flash solution?

Matthew Fabb said...

"...the fact remains that full support for Flash hosting requires buying server licenses from Adobe."

That is still incorrect. It costs nothing to host Flash content. With Flash Media Server or Red5, you are not getting any additional features in hosting Flash content. An SWF Flash file is still the same no matter what kind of server passes it to a browser.

It does require the Flash Media Server or Red5 (which is at RC1 not beta and is quite stable and is used in production for a large number of websites) for advanced streaming video. If you or anyone else wants to invest in building a server similar to the Flash Media Server, which is built using Java, then they can go ahead and do so, just as those behind Red5 have done. The Flash video FLV format is an open format and Flash also now works with video files that use the h.264 codex.

A Flash website or applications does not require anything beyond basic video can hook up with any backend technology (Java, PHP, .NET, etc.) server or web service to pass it information. So if you rebuilt any existing AJAX application in Flash, you would have no reason to use FMS.

Also developers wanting to move beyond XML, JSON to communicate to Flash can use Adobe's AMF format, which is an efficient binary format that the Flash Player reads. AMF was originally proprietary format, but several years ago Adobe opened up the specs. There are now all sorts of different solutions out there for the AMF format some from Adobe and some from various 3rd party companies and open source organizations. Adobe even provides an open source Java solution called Blaze DS that uses it:
http://opensource.adobe.com/wiki/display/blazeds/
Also it was recently announced that the AMF format was going to be added to the PHP Zend Framework.

Christopher Keene said...

@ Anonymous, @ Matthew - man, you guys just don't give up do you? What part of proprietary don't you understand? I am not claiming that Ajax is perfect - far from it. What I am claiming is that Ajax uses open standards that are built into every browser to operate, making it work much like Web 1.0 html worked. Flash, Silverlight, Curl and others work by replacing the browser with a proprietary plugin that you can only get from one vendor. You can wave your hands as much as you want, you still can't fly.

Matthew Fabb said...

Christopher, neither I nor Anonymous trying to argue that Flash or Silverlight were not proprietary plugins, we were arguing that you don't need to pay royalties to use them. These are two completely separate arguments.

You defined your argument as "…content has been searchable, linkable and servable without paying fees", yet Flash falls into all of these categories completely robbing your point there.

Just as your argument "if you are a plug-in vendor, your incentive is to keep the browser as dumb as possible" falls apart when Adobe donates code to Mozilla to be used in Firefox, contributes to Webkit and also is an active participant on the ECMAScript standard.

There is an argument to be made for and against a proprietary plugin with vendor lock-in, but you need to stick to this argument without bringing up points that are do not have any basis.

Matthew Fabb said...

Arrghhh... I rewrote that last sentance and messed up the wording. It should say:
"...you need to stick to this argument without bringing up points that have no basis."

Christopher Keene said...

@ Matthew - first of all, thank you so much for your civil tone. You make very well considered arguments and refrain from cheap shots - maybe there's hope for the web yet ;-)

I think part of the challenge in this debate is these technologies are moving targets. Adobe has been moving to open their technology and support industry groups, so is no longer as closed as it once was.

But challenges remain. Ajax works within existing html browsers, so has more cross-browser issues and fewer searchability issues. For example, the hyperlink to searchable swf content given above links to an article from July '08 that among other things says: "Google has already begun to roll out Adobe Flash Player technology incorporated into its search engine." This doesn't exactly ooze confidence that all of swf-dom is easily searchable today, although it does support your contention that it will become searchable over time.