The WebKit culture & web rendering engine diversity

The web. Diversity. Options and competition. Today Opera announced that they’re moving from their own web rendering engine, Presto, to WebKit, and it’s described more technically in Opera’s Developer Relations blog, where it’s made clear they will also use the V8 JavaScript engine.

I thought I’d express my thoughts on this – what it means and what I’m afraid developers erroneously will believe it means. While I work for Mozilla, who does the Firefox web browser, these are my opinions on the topic, and I’d have them no matter who I’d work for.

Opera’s decision

Let’s start with Opera’s decision to do this. About ten months ago, Opera confirmed WebKit prefix usage, implying that with the WebKit culture on mobile, they deemed it a necessary step.

Given just how dominating WebKit has been the latest years – in particular on mobile – I understand the challenges they’ve been facing and I’m sure it must have been a hard call.

Looking at the comments Opera are getting now, with people thinking they’re giving up etc, I don’t share that sentiment. Yes, I do think it’s sad they they will move on from Presto to WebKit. But Opera are a business. They need to weigh pros and cons against each other, and if this is the decision they think is best moving forward for their company, that’s their call.

We need competition

When something likes this happens, the reaction will be that all we need is one rendering engine. Internet Explorer and Firefox should switch to the WebKit world, then we’ll join hands, sing Kumbaya and web development will be easier than ever before.

I don’t believe in this. I believe what we saw with IE6 and Microsoft – albeit under different circumstances – is a perfect example of why we need more competition, not less. Sure, WebKit is open. WebKit is a really good web rendering engine. But those are not reasons for sticking with just one.

Also, companies like Google and Apple have huge interests vested in WebKit. The engine and project is open, but I do believe that such interests do come into play when it comes to the amount of developers that are involved, direction it can take and more.

I’m definitely not saying they’re evil. They’re just companies, like Opera, and we should not forget that first and foremost, a company’s objective is to do what’s best for the company. I like many of Google’s and Apple’s products, but that doesn’t mean I want them to be the two major players affecting the only web rendering engine in all products. Just as I wouldn’t want to see Firefox and Gecko have a 100% marketshare.

That’s why I believe we do need options, we need different interests, code bases and rendering engines, to rather spur the diversity, instead of keeping it contained within just WebKit.

It will not be just one engine

Another thing I fear is the incorrect assumption by web developers that it will be so much easier to develop now, and if all switched to WebKit, it would be a bliss. The incorrect assessment there, though, is that we will, and already do, have tons of different versions of WebKit.

Instead of having just one web rendering engine, it will be like building something that should work in IE6, IE7, IE8, IE9 and IE10. It sounds like an exaggeration, but the differences will be huge.

And on top of that, it comes to API support. That will often be implemented on the side by web browser vendors, where you can see, for instance, that Google Chrome has vastly more widespread support than Safari for features. Although they’re both WebKit. Go figure.

WebKit is great

Let’s conclude this with saying that WebKit is great. And here’s to having many other great options complementing it.

Posted in Developing,Web browsers |

24 Comments

  • Louis-Rémi says:

    The part about API differences won’t apply to the new Opera browsers. They’re not only embracing Webkit and V8 but Chromium as well.

    Doesn’t that part contradict in some way the part about the threat of monoculture? Even if all browser vendors switch to one rendering engine, won’t there still be place for competition and innovation?

    The software being Free with multiple competitors working on it, I don’t feel like we’re heading toward another IE6.

  • Robert Nyman says:

    Louis-Rémi,

    In my opinion, doesn’t that even make it more of a monoculture? No, it probably won’t be another IE6, and I’m sure there will be competition. But it doesn’t remove the fact that the code stems from the same source, with a number of major players having a massive impact on it.

    To me, it’s the difference of having just one car manufacturer with different models compared to having several. Sure, the models could differ a lot, but at their base, they’re still from the same manufacturer (no matter how many had input on it).

  • [...] Programming News: The WebKit culture & web rendering engine diversity The web. Diversity. Options and competition. Today Opera announced that they’re moving from their own web rendering engine, Presto, to WebKit, and it’s described more technically in Opera’s Developer Relations blog, where it’s made clear they will also use the V8 JavaScript engine. I thought I’d express my thoughts on this – what it means and what I’m afraid developers erroneously will believe it means. While I work for Mozilla, who does the Firefox web browser, these are my opinions on the topic, and I’d have them no matter who I’d work for. Read full story => Robert’s Talk [...]

  • Tanny O'Haley says:

    WebKit is the new IE. Many rendering bugs. Chrome doesn’t support hyphens and has many problems with scrolling. Safari has problems too, for instance not tabbing to buttons on forms. Working on web applications for Safari reminds me of the old days IE. I would prefer the competition of multiple rendering engines. With multiple rendering engines there is incentive to make things better.

  • Robert Nyman says:

    Tanny,

    Well, even if it’s one engine that many work on, it comes down to prioritization, what’s deemed important to fix etc. My personal belief is that multiple engines from different backgrounds helps with that.

  • [...] opinions have been given already, many from people within relevant organisations including Google, Mozilla, and Opera. You probably want to start with those — they’re certainly more eloquent [...]

  • EB says:

    @Tanny O’Hally:
    “Safari has problems too, for instance not tabbing to buttons on forms.”

    That is a setting in preferences under advanced. If you want it to always tab to every control, you check the box “Press Tab to highlight each item on a webpage” Otherwise it is Option-Tab. If you check it, they reverse (Tab highlights all and option-tab just the entry boxes)

  • EB says:

    Oh, and “Reminds me of the old days of working on IE”. Really? Come off it, there is NO way Safari nor chrome or anywhere near as painful as IE5 and IE6 were…

  • Regis d'Aubarede says:

    This mean a new contributor for WebKit, no ?
    And tha is great, yes?

  • the_dees says:

    Unfortunately, WebKit is not great.

    Actually, if you keep in mind by what companies the engine’s backed up by (Google, Apple), one can frankly say it sucks (e.g. it’s CSS 2.1 support is way behind IE’s).
    Microsoft has learned it’s lessons, Apple and Google still haven’t.

    I can only hope that all those Opera developers will improve the engine to be as great as Presto is. Good luck Opera, I’ll miss you.

    Anyway, I’ll support Opera in the future, even though my current feelings are still mixed.

  • [...] The WebKit Culture & Web Rendering Engine Diversity (Robert Nyman) [...]

  • Tanny O'Haley says:

    EB,

    Exactly, the button element is a standard form element and the user should automatically be able to tab to it without having to go to advanced preferences. Lack of scroll bars on overflowed elements is a usability nightmare.

  • tom jones says:

    Louis-Rémi:
    “The software being Free with multiple competitors working on it, I don’t feel like we’re heading toward another IE6.”

    except when you look at the dominant platform iOS (which is, coincidentally, at the root of the business reasons behind the Opera switch).

    chrome on iOS doesn’t use a different, potentially “better” “chrome webkit”, it can’t use V8 (and even has slower JS than the default browser because of lack of Nitro), and can never have any new web features apple doesn’t like, like WebGL, IndexedDB, WebRTC, etc..

    so you say: webkit is open source, even if apple stopped working on it (because it was, say, opposed to their business interests regarding the App Store), google, adobe, opera and others would take over and carry the torch, right?

    except there is no (magic) mechanism that would/could ever let them upgrade webkit on a billion iDevices, so IE6-like problems are just as likely on the “major platform of the future” if apple thinks its in their interest.

    and that’s bad..

  • [...] The WebKit Culture & Web Rendering Engine Diversity (Robert Nyman) [...]

  • [...] The WebKit Culture & Web Rendering Engine Diversity [...]

  • Ed says:

    I have yet to find answers, Why did Opera not Open Source their Browsers if they are ditching it?

  • [...] This post is co-written with Rob Hawkes, and as a follow-up to The WebKit culture & web rendering engine diversity [...]

  • [...] implications for web development are different, but many others have written about [...]

  • [...] It means we’re getting a new rendering engine, thus contributing to the needed diversity I talked about in The WebKit culture & web rendering engine diversity. [...]

  • [...] It means we’re getting a new rendering engine, thus contributing to the needed diversity I talked about in “The WebKit culture & web rendering engine diversity“. [...]

  • [...] It means we’re getting a new rendering engine, thus contributing to the needed diversity I talked about in “The WebKit culture & web rendering engine diversity“. [...]

  • […] The WebKit Culture & Web Rendering Engine Diversity (Robert Nyman) […]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>