The Changing Web Platform Landscape: More Fragmentation?

The Web is an ever changing place and the first half of the year has been rich in surprises, big announcements and industry shifts! A diversity of implementations is good for many reasons we will discuss. But a more fragmented web could be the price to pay. Will it be the case?

About Implementation diversity

A few weeks ago Opera announced they were stopping work on their Presto rendering engine and switching to Chromium. They have already started contributing code to the project. Then, earlier this month, Google announced the Blink project, essentially a new fork of WebKit. And now Opera announced they will contribute to Blink!

Reactions were interesting as we went from WebKit monopoly concerns to worries about web platform fragmentation in a matter of weeks. Quite a 180 degrees turn!

At Adobe, we actively contribute to Web standards and browser implementations (historically mostly WebKit and Chromium, even though we also make some contributions to Gecko). As such we are delighted to see Opera join one of the projects we contribute to. Their considerable web expertise will undoubtedly be an asset.

There was some debate before the Blink announcement about whether or not we were heading for a WebKit monoculture: a web where content can be written with the assumption a WebKit-based engine is most likely to render it. While WebKit browsers share much core layout code they also differ in many ways at runtime: different JavaScript engines and graphics libraries, even different sets of features enabled by default. This makes it difficult in practice to write once for WebKit and run everywhere.

So we were not too concerned about a WebKit monoculture. But…

… there was a but in that view. The web is bigger than any one of its leading browser implementations and too important to be limited to a single code base even if that implementation has variations. The web is even growing to be an OS platform (e.g., ChromeOS, FirefoxOS, the new Windows Runtime), the core technology behind packaged applications (like PhoneGap applications). And ongoing innovation across HTML, JavaScript (in the TC-39 group at ECMA) and CSS needs validation, testing, consolidation.

As Brendan Eich says in his blog about “why Mozilla matters”:

“The web needs multiple implementations of its evolving standards to keep them interoperable.”

I believe this tenet to be central to delivering on the promise of the Open Web. A single implementation does not establish a standard. The W3C process even recommends two implementations in order for a specification to reach completion.

The Web needs Mozilla’s Gecko and Microsoft’s Trident engines to nurture an open, innovative environment. Historically, both companies have done a lot for the Web  - think of XHR which Microsoft invented (among other key contributions) or WOFF from Mozilla –  and they continue to innovate:  Microsoft and Mozilla co-edit the CSS Grid specification, which provides much needed and improved layout flexibility to CSS.

I trust that the addition of Blink will strengthen an already healthy browser competition. Over time, the Blink code base will diverge from WebKit’s but no harm to the web occurs if both engines implement the same features in different ways. Only significantly different feature sets could result in harmful fragmentation. Making sure that WebKit, Blink and other browser engines interoperate is more important than it has ever been.

About testing, fragmentation and experimental features

As the founders of Test the Web Forward, we have come to appreciate the mutually reinforcing benefits multiple independent implementations bring to standards. Historically, testing has been key to the success of web standards. For example, the focused testing effort on CSS 2.1 has shaped that specification and its implementations in the corner stone CSS has become. A single implementation would leave a lot of stones unturned.

It should also be noted that the Blink policy regarding prefixes is really good for standards and compatibility across browsers:  draft standard features can become truly experimental features that will not be used (and abused) in production. This should help avoid browser compatibility headaches down the line and I hope this example will be followed by all browsers.

About fragmentation and Adobe’s contributions

In this new web platform landscape, what about Adobe’s contributions to open source browsers? What impact does additional browser fragmentation has on Adobe’s efforts?

Adobe contributes to standards in open browser implementations for many reasons.

One of them is that our new generation Edge tools use a ‘web design surface’. For well over a year now, we have chosen to use the Chromium Embeded Framework (CEF) to provide this ‘web design surface’. So naturally, we will contribute to Blink since it is now the core engine that powers CEF.

Another reason for contributing to open browsers is to accelerate the availability of new features on the web. This is why we collaborate with Mozilla on a number of standards and contribute code to Gecko (like this patch on masking for canvas). And this is why we will also contribute to WebKit, in addition to Blink, now that the two are separate projects.

An open, innovative and tested web!

So yes, I think it is good to have multiple browser engines and Blink is a welcome addition to the web platform landscape. It is bringing a healthy diversity that I hope will help keep the web open and foster innovation as long as all browsers strive to implement ‘the same web’.

And this is where testing efforts are key to achieving diversity without fragmentation. I hope testing activities (of browser code of course, but of standard test suites as well and major initiatives that the W3C is driving) will be a major focus for all the browser vendors going forward, in particular for Google with its new Blink implementation.

October Issue of the Edge

19267_I_Edge_October.jpg

Have you seen the October issue of the Edge newsletter? It’s now live on Adobe.com. Produced by the Adobe Developer Relations team, the Edge has 1.7 million subscribers worldwide. It features video, articles and tutorials for developers and designers who create content and applications for the web.

In this month’s video, Edge Managing Editor Julie Campagna is on the scene at Adobe MAX 2009. See a snapshot of this year’s lively event, including announcements, technology previews, and commentary from attendees.

Also included in the issue:

Sign up to receive the Edge via email. If you missed MAX, you can watch the sessions on AdobeTV.

New Content in the Adobe Developer Connection

As part of our weekly content launches in the Adobe Developer Connection, we’ve recently published some new articles for Flash Platform developers.

The new skinning architecture in Flex 4 beta makes it easy to completely change the look and feel of an application. Follow Ryan Frishberg to learn about the new improvements by writing a basic skin for a button and then delving into skinnable components. Building on what you’ve learned there, Evtim Georgiev addresses a number of pain points in skinning, CSS, components, states, animation, text, and graphics tags. He also shows you how to create a custom layout in his article, Spark layouts with Flex 4 beta. Meanwhile, read Tim Buntel’s article to learn how a brand new approach in Flash Builder beta can simplify the development of data-centric applications.

If you are working with web video, you’ll want to learn how to customize the ActionScript 3 FLVPlayback component, the built-in solution in Adobe Flash CS4 Professional for displaying video on the web. Also be sure to download two updated templates: spokesperson presentation with synchronized graphics and showcase website for personal video.

Flash animators: Dig into Chris Georgenes’ popular series covering the entire process of creating a digital animated character in Flash CS4 Professional. And there’s a bonus: a killer animation technique that creates convincing 3D effects while remaining in the 2D realm. Also be sure to check out Tom Green’s article on Integrating Flash CS4 with After Effects CS4.

To get e-mail updates of our new content, subscribe to our newsletters: News Flash, The Edge, and the ADC update. You can also visit the Adobe Developer Connection to check for new content.