AJAXWorld Article April 2008
The following is a proposed article to submit to AJAXWorld in time for the April 11, 2008 deadline.
Good News for Ajax – The Browser Wars Are Back
After years of dominance by a single browser, Microsoft’s Internet Explorer (IE), and few advances within IE, the world has changed. There is now healthy competition among multiple browsers over standards compliance, AJAX features, AJAX performance and trustworthy computing. The competition is reaching beyond the desktop to include the emerging world of mobile browsing. This healthy competition will result in important new capabilities within AJAX toolkits and will help accelerate the adoption of Web 2.0 and Enterprise 2.0 technologies.
The Era of the Single Browser Is Over
For much of this decade, Web browsing has been dominated by Microsoft’s Internet Explorer (IE), which at its height achieved market share numbers approaching 95%, with the result that Microsoft owned a de facto standard for the Web and held effective veto power over the future of HTML. During much of this period, Microsoft suspended development of IE, with the result that virtually no new features appeared within the world’s dominant browser from 2001 to 2006.
But while IE was sleeping, one of the biggest phenomena of the computer age happened: AJAX. Clever Web developers discovered gold in them there mountains. Using AJAX techniques, Web developers could create desktop-like rich user interfaces right in the browser. Not only that, AJAX was evolutionary. AJAX offered an incremental path from the industry’s existing HTML-based infrastructure and know-how, allowing Web developers to add rich AJAX elements to an existing HTML page.
Like the California gold rush of 1949, the years of 2005-2007 saw an AJAX gold rush, where hundreds of AJAX commercial software products and dozens of open source projects came to the market. Looking back, it is truly astounding that AJAX went from an idea in 2005 to become part of the Web development mainstream by 2008.
HTML5 and the Acid Tests – Advancing AJAX and the Open Web
The HTML5 initiative, initially launched within the WhatWG and now embraced by the W3C, has turned the Web standards world from a glacial process into an avalanche of new browser features.
Today, all of the browser vendors are contributing to HTML5, and the latest major browser releases (IE8, Firefox 3, Opera 9.5, and Safari 3.1) are all shipping various features from HTML5 (and related W3C standards) in advance of formal approval by the W3C.
Open Source Browsers and the Mobile Web
The last few years have seen the rise of two major open source browser projects, Mozilla (the engine in Firefox) and WebKit (the browser engine on the Apple Macintosh, the Apple iPhone, Nokia phones and Google Android). In the past few years, Firefox and Safari have taken significant market share away from IE.
A related development is the growth of Web browsing on mobile phone. In the coming years, Web browsing from handheld devices will become a mainstream feature, with the result that billions of cell phone users will be browsing the Web. The WebKit open source project, in particular, is an early darling of the mobile device manufacturers. WebKit-based browsers ship on phones from Apple and Nokia, is included within the Google Android platform, the Trolltech Qtopia platform, is being ported to Windows Mobile, and has been announced for future Motorola phones. Opera browsers also have significant market share. In early 2008, Microsoft announced Windows Mobile 6, which includes a mobile version of IE6. WebKit, Opera, and IE6 all support AJAX.
IE 8 joins the browser arms race
Today, all of the browsers, including IE, are very much awake and on the move. We are seeing a new, healthy competition among the browser vendors to compete for the hearts and minds of end users and Web developers. The browsers are in a heated competition to deliver the best features and the best performance. As a result, the latest browsers have released a series of important AJAX enhancements.
But it isn’t just Microsoft that is on the move. Over the past few years, Opera and Firefox have been the leaders in standards support in general. Recently, Safari/WebKit has been adding major new features in rapid succession, including SVG, animations and video. Here is a partial list of new AJAX-related features that are either working today or under active development within the major browsers:
- IE – CSS 2.1, W3C Selectors, cross-frame messaging, offline storage, and cross-domain AJAX requests
- Firefox/Mozilla – CSS 2.1, W3C Selectors, cross-frame messaging, offline storage, cross-domain AJAX requests, Canvas, SVG
- Safari/WebKit – CSS 2.1, W3C Selectors, CSS animations, CSS web fonts, cross-frame messaging, offline storage, Canvas, SVG, <audio>, and <video>
- Opera – CSS 2.1, W3C Selectors, CSS web fonts, cross-frame messaging, offline storage, cross-domain AJAX requests, online/offline events, persistent connections, server-sent events, Canvas, SVG, contentEditable, and <video>
An AJAX-specific wishlist led OpenAjax Alliance
Therefore, the Open Web world already is moving quickly to advance AJAX technologies via various open standards and community processes. However, HTML5 targets a broad set of Web scenarios, where AJAX application development is just one among many target use cases.
To make sure there is good focus on the unique requirements of the AJAX community, the OpenAjax Alliance has launched an AJAX browser wishlist initiative through its Runtime Advocacy Task Force. The initiative is a wiki-based collaboration among the leading AJAX developers in an attempt to accelerate the delivery of browser enhancements needed by the AJAX community.
Beyond just a feature list, the Runtime Advocacy initiative supplements each feature request with supplemental technical details, such as explanations of why exactly a particular feature is required, along with suggested technical approaches, and discussion comments from industry leaders about the preferred technical strategies for delivering each particular feature.
But perhaps the most important aspect of the OpenAjax browser wishlist is the voting process, where the participants assign priority rankings to the various features. These rankings will inform the browser vendors not only which features are most critical to Web developers, but also allows them to see which parts of the AJAX community are requesting a particular feature and why developers feel the feature is critical.
The first release of the OpenAjax browser wishlist will happen in the mid-summer 2008 timeframe, which we believe will align with the planning processes within the browser vendors for their next major browser releases (presumably, Firefox 4, IE 9, Opera 10 and Safari 4). Here is the full schedule for the AJAX wishlist initiative:
- April 2008 - Phase I review, where participants not only add comments, but also are asked to identify their Top 5 features (i.e., those features that are most critical for inclusion in next-generation browsers).
- May 2008 - The moderators reorganize and possibly trim away feature requests for which little interest was shown.
- June 2008 - Phase II review, where participants will be asked to provide importance ratings for each of the feature requests on a scale of 0.0 to 5.0.
- July 2008 - The moderators will produce a summary report and notify the major browser vendors about the results.
Who can participate and how to join the effort
For the browser wishlist initiative, the alliance is reaching out to leading AJAX toolkit developers and other technical experts in AJAX application development.
The first wave of participants have been representatives from many of the leading AJAX toolkits. Among the AJAX toolkits and industry experts who have contributed to the effort in its early stages are ASP.NET AJAX (Microsoft), Dojo Toolkit, Douglas Crockford (of JSON fame), DWR, Ext JS, jQuery, Prototype.js, Spry (Adobe) and XAP.
The alliance also wants to reach out beyond the AJAX toolkit providers to leading AJAX developers, particularly Enterprise developers. Anyone from the community can participate in this effort, whether a member of OpenAjax Alliance or not. Instructions for how to join the effort can be found on the main wiki page for the initiative (http://www.OpenAjax.org/runtime/wiki). Once you have a wiki login, you can freely modify existing feature requests, add new feature requests, and vote for which features are most critical.
Some of the features requested so far
The table below shows some of the features from early versions of the wishlist, before voting and prioritization:
|Security||Better security for cross-site scripts, stronger protection against cross-site request forgery, enhanced security for IFRAMEs|
|Communications||More than 2 HTTP connections per window, persistent connections (to support Comet)|
|HTML5/W3C||2D graphics, video, audio, offline, mutation events|
|Rendering and interactivity||Better APIs for positioning and styling, improved layout support, better support for rich text editing, better support for drag/drop and copy/paste|
What we hope to accomplish
The wishlist is focused on identifying higher-level requirements (e.g., offline support, better APIs for positioning and styling) instead of requesting specific solutions. Our assumption is that the browser teams and the relevant standards efforts (e.g., HTML5) will work out the technical details in order to address the requirements from our wishlist.
We don’t expect agreement among the contributors. Different people have different requirements and differing technical vision. The important thing is to capture the various points of view so that the browser teams and the HTML5 standards effort have the best possible information from which they can work out the details.
What this means to AJAX
The healthy, fast-paced competition that we are seeing among the leading Web browsers delivers three main benefits to the AJAX developer community:
- Better interoperability, which translates into increased innovation – As newer version of browsers support open standards more completely and reliably, and as older machines are retired, the AJAX toolkit vendors can innovate more quickly as they spend less time working around incompatibilities and bugs.
- Better performance, which translates into more power and greater scalability – The healthy performance battle taking place today among the browser vendors will enable future versions of AJAX toolkits to deliver new features that were not feasible in older, slower browsers (particularly IE6, which is infamous in the AJAX developer community for its performance shortcomings).
- New browser features, which translates into new types of applications – Many of the features coming in recent Web browsers will enable major advances the features that will be available to AJAX developers. Offline features will enable AJAX applications to run even when disconnected from the network (e.g., in an airplane). The cross-frame messaging and cross-domain AJAX request features will help deliver secure mashups at high performance. The vector graphics, animation and video features will allow seemless integration of rich UI experiences and multimedia, without having to bridge between the Open Web and proprietary platforms.
The OpenAjax Alliance is an organization of vendors, open source projects and companies using AJAX that are dedicated to the successful adoption of open and interoperable AJAX-based Web technologies. The alliance’s prime objectives are: accelerate customer success with AJAX by promoting a customer's ability to mix and match solutions from AJAX technology providers, educate the AJAX developer community about how to use AJAX technologies and techniques successfully, and help drive the future of the AJAX ecosystem. The browser wishlist is one of the key initiatives at the OpenAjax Alliance towards helping to shape the future of the AJAX ecosystem. Other OpenAjax initiatives address AJAX toolkit interoperability (OpenAjax Hub 1.0 and OpenAjax Registry), secure mashups (OpenAjax Hub 1.1), IDE standards and widget standards (OpenAjax Metadata), activities related to AJAX security, and activities related to Mobile AJAX.