Opera started a public beta-testing program a few years ago called Opera Next. Whereas the stable version naturally moved along more slowly—but always rock-solid—Opera Next often had a more up-to-date HTML/CSS renderer (code-named Presto) and Javascript engine (code-named Carakan). Opera recently anounced that future versions—Opera Next Next—would be built on the WebKit HTML/CSS renderer and Google’s open-source V8 Javascript engine instead.
This is, I think, good news for both Opera users and Opera as a company. Opera and WebKit: a personal perspective by Bruce Lawson is of the same mind, writing pragmatically that, “Opera’s Presto engine was a means to an end”.
The browser landscape has changed significantly since IE dominated the world with over 90% market share in 2004. IE now has less than 50% worldwide browser share (desktop share is 54%), but Chrome and Firefox each have about 20% as well. Users for some sites, like Wikipedia, are divided up much more evenly between Chrome, Firefox and IE with Safari and Opera making up about 10%. The point is, that the browser market is considerably different than it once was—and all participants are actively working against documented W3C standards and specifications. Sure, there are still browser-specific CSS prefixes and some highly specific implementations (e.g. the file API from Google) but they mostly stick to a process and all browser vendors have input into an open process. And Gecko and WebKit code is open source.
As Lawson puts it so well,
“These days, web standards aren’t a differentiator between browsers. Excellent standards support is a given in modern browsers. Attempting to compete on standards support is like opening a restaurant and putting a sign in the window saying “All our chefs wash their hands before handling food”.”
All of which is why Lawson (he’s the guy who wrote the press release for Opera’s move to WebKit) writes,
“[i]t seems to me that WebKit simply isn’t the same as the competitors against which we fought, and its level of standards support and pace of development match those that Opera aspires to.”
The Trident code-base—the renderer for Microsoft’s browsers—was and still is closed-source. While it has been much more actively developed in the last couple of years, back in the bad old days of IE6, the code base was stagnant, lacked innovation and had little to no standards support.
WebKit is certainly not any of these things. If you follow the WebKit changelogs, it’s clear that the majority of changes are to implement an HTML5 feature or to improve performance or to use less memory for common tasks. This is a vibrant, highly active and open-source project with developers from at least two large development teams—Apple and Google—actively contributing to it.[1]
Opera adding their cadre of excellent engineers to the mix can only be a good thing—for everyone involved. They’ve already written that they plan to port their superior HTML5 forms support to WebKit, a very useful feature on which other participants were dragging their feet. (Can I Use?)
A while back, Opera made a valiant attempt to get the whole browser running in a hardware-accelerated mode and almost made it, but had to pull back just before release because of stability issues on some machines. The mode is still there if you want to enable it. Flow layout is great and WebGL also made it in, but the implementation lagged. As did many other features.
While Opera was first to implement a few features—like HTML Forms or their excellent SVG support—they were having trouble keeping up and implementing every working draft and standard. I wonder whether the Opera dev team took a look at the Comparison on Opera vs. Chrome and despaired of ever catching up. For the first ¾ of the page, Opera and Chrome are dead-even. And then things go downhill for Opera from there: 3D Transforms, filter effects, masks, touch events, border images, device-orientation events. These are all things that are standardized (working drafts anyway) and that I have used—or wanted to use—in current web projects.
They probably had to make hard choices about where to invest their time, energy and money. Some have tried to argue that the departure of the Presto engine will adversely affect standards acceptance. The article Hey Presto, Opera switches to WebKit by Peter Bright (Ars Technica) writes the following:
“Opera could have gone the route that Microsoft has chosen, trying to educate Web developers and providing tools to make cross-platform testing and development easier, but perhaps the company […] felt that asking Web developers to stick to standards was […] futile. Historically, the company has tried to do just this, but its success at influencing real Web developers has been limited; for all the emphasis placed on standards, many developers don’t, in practice, care about them.”
The developers over which Opera had influence were most likely already coding to standards. The move to WebKit isn’t going to change any of that. Opera’s 2% of the market was not enough to even get any developers to test with it, and many products clearly got managerial approval to just stick an if (Opera) { fail(); }
statement in their web sites to prevent their site from appearing buggy in an untested browser. It’s hard to see how Opera’s move will change standards development or acceptance.
I don’t think that most users chose Opera because of its renderer. In all honesty, there were very few cases where Opera rendered a site better than other browsers—and enough examples where Opera did not render as well, whether due to missing functionality or deliberate crippling by the site.
Opera has led the way with many non-renderer innovations.
These features were all pioneered by Opera and many have since been adopted by other major browsers (either natively or through extensions). It’s certainly a good thing to think that the development team that brought you these innovations and features will be spending less time on HTML5 minutiae and more time on browser features like these.
Among many of its users, the Opera browser is renowned for more prosaic “features”: it’s a fast, lightweight browser which can handle a ridiculous number of open tabs, opening from a cold start in seconds. It is also very stable, rock-solid in non-test releases.
On top of that, Opera has, hands down, the smartest and fastest history-navigation and caching implementation out there. It’s the first thing colleagues notice when they try Opera: the perceived back-and-forth navigation speed is much better.
In no particular order, here are some other features I find useful (or have used in the past):
This isn’t meant to convince anyone; I just felt like listing the features for which I use Opera that really have nothing to do with the renderer or Javascript engine. I, for one, am looking forward to seeing what Opera does with its newfound time and energy.[2]