Wednesday, 13 February 2013

And Then There Were Three

The news about Opera switching to Webkit is disappointing. It's a sad day for the Web, since I thought highly of their Presto engine and their Web standards work. Their impact on Web standards will be dramatically reduced, especially where they want to do something differently to Apple and Google. The big loss for the Web is a further decrease in the diversity of browser engines, especially on mobile devices. This means that our work at Mozilla simultaneously becomes more important --- we now have one of the three viable browser engines, instead of one of the four, and engine diversity is already critically endangered --- and more difficult, because this will strengthen the Webkit mobile monoculture and make it even harder for us to promote Web standards over "coding to Webkit".

Some people are wondering whether engine diversity really matters. "Webkit is open source so if everyone worked together on it and shipped it, would that be so bad?" Yes. Web standards would lose all significance and standards processes would be superceded by Webkit project decisions and politics. Webkit bugs would become the standard: there would be no way for developers to test on multiple engines to determine whether an unexpected behavior is a bug or intended. It wouldn't be the worst possible outcome --- victory of a closed-source engine would be worse --- but it would be a far cry from the open Web goals we've been striving for.

So, back to work!

59 comments:

  1. I suppose this means we'll lose all those places Opera went ahead and alone: Keyboard navigation by headings; titles giving names to accesskeys; zooming in enough triggering a switch to the mobile stylesheet if there is one... all that innovation and more, poof?

    ReplyDelete
    Replies
    1. Much of that will still be doable on top of Webkit.

      But the open Web depends on diversity at the platform level, and that's going to be reduced.

      Delete
    2. I hope the Opera team can fix that horrid, horrible, old, smelly and makes-keyboarders-fly-into-rage bug https://bugs.webkit.org/show_bug.cgi?id=17450 please please. Webkit was the only one with this issue, though IE9 has something kinda similar sometimes.

      Delete
    3. @Robert

      Why does the open web depend on diversity at the platform level? Wouldn't one open-source rendering engine with diverse contributors be better for everyone at this stage of the game?

      Delete
    4. I tried to explain that in this post and my next one.

      Delete
  2. what's the matter? If they really want to do something thats not supported - or even worse prevented by the WebKit community - then just fork that state WebKit is in, and create a slightly new version like LibreOffice and OpenOffice did it.
    I think it's a good step ahead to standardization and more end-user-friendly. And as Opera already said, if someone invents a cool new feature it is available to multiple browsers at the same time (remember waiting till IE implements html5?)

    ReplyDelete
    Replies
    1. They wouldn't fork if the reason for doing this in the first place was to free up time to work on other things... http://my.opera.com/haavard/blog/2013/02/13/webkit

      Delete
    2. Forking Webkit is difficult in the long term. The Webkit community frowns upon forks that make changes affecting Web compatibility (which is reasonable), and alienating the Webkit community isn't a viable long-term strategy.

      Making that "cool new feature" available to all Webkit browsers at the same time is actually a bad thing, if it's not standardized (yet). The other Webkit browser vendors have an incentive to just ship it in whatever state it's in (means they have to do less work), so that first implementation will lock in and it will be difficult for competing and possibly better proposals (from either within or outside the Webkit community) to be seriously considered.

      Something like that already happened with Web Audio, which landed in Webkit and shipped in Chrome and Safari while the spec was still in an awful state --- the Safari developers just didn't care about that.

      Delete
    3. "Making that "cool new feature" available to all Webkit browsers at the same time is actually a bad thing, if it's not standardized (yet)."

      Well, that's how we got Canvas ans CSS transitions etc.

      We also similarly got AJAX from MS.

      If we waited for "standards" we wouldn't have a modern web...

      Delete
    4. Making an experimental feature available in one browser is good.

      Making it available in all browsers simultaneously is not so good.

      Delete
    5. (Unless it's preffed off by default, which is a strategy we and Chrome are increasingly using for experimental features.)

      Delete
  3. I don't like losing presto either, but you can't be too hard on opera. They ARE a very small browser backed by an even smaller company. Firefox and IE can get away with building their own engines, They're.big browsers supported by big companies. Opera was probably struggling to keep it's engine updated and semi-competitive with the browsers. If Opera switches to webkit then they can get the features that other browsers have now. I liked presto too, but a switch to webkit might benefit Opera in the long haul.

    ReplyDelete
    Replies
    1. In Q3 2012, Opera had 905 employees. That's more than Mozilla has now. Opera is a bigger company than Mozilla.

      I agree that a switch to Webkit might benefit Opera. It's just not going to benefit the open Web.

      Delete
    2. True, but since Mozilla creates open source products, I'd guess that many of its developers weren't employees.

      Delete
    3. There are, of course, non-employee developers, but in the end the bulk of the work ends up being done by the people doing it full-time, simply because they have more time to spend on it.

      Delete
    4. @Robert

      You shouldn't see the number of employees, you should see the budget.

      - Mozilla has every year safely hundreds of millions of dollars at the expense of his godfather Google, +receive donations and free worker (volunteers), and all without taxes or accountable to anyone.
      - Opera instead is a company without godfather, that should sought and win its budget, accountable to investors, paying a larger number of employees, paying tax, etc.

      Opera is a bigger company with small budget, Mozilla is a small company with bigger budget.

      With all the difficulties Opera held a modern browser, innovative and advanced, compared to the rest.
      If Mozilla were in the same situation of Opera, Firefox would be fall behind, even more than now.

      Judge Opera is immoral, when you are in a more comfortable situation. Besides being a trap (intentionally or not) say that they were better off.

      Delete
    5. Your facts are wrong:

      -- Mozilla Corporation, which receives almost all the revenue, pays corporate income tax on it like any other company.

      -- Google pays Mozilla for search traffic, just like they pay Opera and Apple and anyone else who sends them search traffic. From http://media.opera.com/media/finance/2012/3Q12.pdf:
      "Opera’s monetization strategy for its desktop browser revolves predominantly around search. Google is Opera’s global search partner and provides the majority of desktop monetization." Very similar deal to Mozilla.

      I don't see Opera as immoral. They're doing what they have to do to survive as a company. It's not good for the open Web though.

      Delete
    6. Umm, I think he said that to judge Opera's choices of how to stay in business was immoral. And if you're not second-guessing their decisions, why do you care how many employees, your relative tax status, etc?

      Look, everybody is in favor of standards—in principle. The trouble arises in that it's almost inevitable that new features are advanced by parties who have a different mind-set than the sometimes mind-numbing complexities and convoluted politics of standards bodies.

      Please correct me if I've misread the history in Wikipedia, but none other than Opera first proposed the {video} tag in 2007, and in 2013 it is only a draft standard, bogged down by politicking over patents, etc. It is hard to imagine how Opera could have less influence on standards bodies than to propose a fabulously useful and widespread scheme that has not been ratified in six years. If people gave more than lip service to standards, they wouldn't make it impossible to get work done with them.

      You want the “open web” to prosper? Try upping its ratio of responsiveness to religion.

      Delete
    7. My Anonymous friend started the discussion of relative size by incorrectly describing Opera as smaller than Mozilla. That's a common misperception that I didn't want to let slide, but indeed it's not very relevant to this discussion.

      On the video element, you have misread the situation, so let me correct you :-). The "draft" status of the HTML5 spec is part of that standards-body bureaucracy that you decry, and in reality the APIs in that draft, including <video>, are used in production all over the Web. Having said that, IMHO Opera's contribution to <video> was less significant than a lot of their CSS and DOM work.

      Delete
    8. Opera is smaller in terms of actual resources to do browser stuff.

      First they have far more products.

      Then they are spending far more time on compatibility than Mozilla. It's hard to find a site that isn't tested in Firefox, but it's nearly impossible to find a site that's tested in Opera.

      Delete
  4. Would you feel the same way if they had decided to go with Gecko? What if Microsoft decided to go with Gecko?

    ReplyDelete
    Replies
    1. Going with Gecko would have been different because Gecko doesn't dominate anywhere. It would definitely have been less bad for the open Web had they done that.

      At this point, Microsoft deciding to go with Gecko would be pretty bad IMHO. Three engines are much better than two. That isn't something to worry about though :-).

      Delete
    2. Confused by Robert's response.

      Going with open engine A is bad for the open web. going with engine B is different and good because it's not been adopted by so many.

      Above his reply he states 3 engines is bad, but here he states that three engines is OK if they choose HIS engine.

      Erm... sour grapes?

      Delete
    3. I thought I had made myself clear enough. Opera switching to Gecko: bad. Opera switching to Webkit: worse. Mainly because on mobile, Opera is Webkit's major competition currently, so Webkit's monoculture there is strengthened. Gecko doesn't have a monoculture anywhere to strengthen.

      Delete
    4. Opera is being ignored on mobile despite being one of the biggest browsers (globally). So sorry, but it isn't really competition as far as clueless web developers are concerned.

      Delete
  5. If only I could have put more humour into #840928, but its just not funny anymore :|
    Sad times.

    ReplyDelete
  6. Good move. Now Opera on iOS can match Safari for instability.

    ReplyDelete
    Replies
    1. Instability? Safari? Are you serious? Chrome and Safari are both great browsers on iOS and very stable. In the other hand, the actual Opera can't say the same.

      Delete
    2. seriously... on ios there has only ever been apple's webkit.

      Delete
    3. Opera mini on iOS did not use WebKit. Then again it wasn't a full browser, technically. But I'm splitting hairs here.

      Delete
  7. The biggest benefit to Opera is that by using the Webkit engine, the are allowed to have an app for ipad and iphone. Apple blocks any browser that does not use Webkit. Market share for Opera on iphones (already forced to use Webkit) was growing much faster than laptop share of Opera, so it was nearly inevitable that Opera would give up their engine. The ultimate blame is with Apple, and their walled garden.

    ReplyDelete
    Replies
    1. Are you a idiot?

      Delete
    2. Yes he is...

      Delete
    3. Read up on how Opera Mini works. You'd be surprised how it's not dependent on Webkit.

      Delete
  8. While I do agree that diversity is a good thing in principle, as a web programmer I tentatively welcome this move, provided it doesn't lead to yet another fork. If we want browsers to ever become a viable platform for web applications browsers as a programming environment need to be as undiverse and unforked as possible. Diversity as fragmentation is increasingly forcing web programmers to create dedicated apps where they can be sure of a solid platform to build on. We WANT a monoculture so that we can stop worrying about the different ego-trips and intentional and unintentional stumbling-blocks dreamed up by individual browser programmers and get on with the work of producing good web apps.

    I know that it's an intractable problem: If there really was an ideal monoculture providing a single browser programming environment you would have stagnation. But at the moment, particularly in the mobile space, we have chaos that is forcing programmers away from HTML and towards dedicated apps.

    ReplyDelete
    Replies
    1. Tim, that chaos is occurring *even though* the mobile space is dominated by Webkit forks. You're getting the downside of fragmentation without the benefit of independent implementations competing on standards compliance.

      Delete
    2. Yeah, I do get that. As I wrote, it's an intractable problem. One way or another, the situation is that browsers are not a viable platform for anything except lowest common denominator apps at the moment, and it doesn't look like improving any time soon. Developing and maintaining for all browser platforms and engines means major, major overheads.

      Delete
    3. I think the issue is the crappy state of many Webkit forks/ports than it is fundamental to the Web platform. We need to use competition from mobile Chrome and mobile Firefox to force them to raise their game or get out of the way.

      Delete
    4. Although on Android Dolphin is actually more solid than either mobile Chrome or mobile Firefox at the moment. But look at it from another perspective: Who would develop for Windows or OS X if there were multiple different flavors from different vendors with APIs and frameworks that worked and failed differently in every version? Browsers as a platform are currently more like a Keystone Cops comedy than something you can take seriously.

      Delete
    5. Actually, it's a world of pain on Windows and OSX. The code we have to write get maximum performance on both Windows 7 and Windows XP uses totally different frameworks and APIs in many places. Ditto for Mac although we don't support such old OSX versions (because Apple doesn't). So what you cite as hypothetical is actually fact, except the different APIs and frameworks come from the same vendor.

      I'm sympathetic to what you're saying, but I see it as a challenge to be solved rather than an invitation to despair. And it certainly isn't going to be solved by more crappy Webkit forks!

      Delete
  9. Dude relax, it's Webkit and Mozilla who has pushed __together__ the modern web forward. Plus Opera's focus is on mobile, and there webkit is the king. It's a total win for the open source, because the guys from Opera are very talented and driven. They will bring tons of ideas and velocity to the community.

    ReplyDelete
  10. Opera were able to do amazing things with Presto. On a single core they managed to keep the UI fluid even during heavy load, which Firefox cant do as well.

    ReplyDelete
  11. I think that the overall gain for Webkit is much higher by having a group of people who deeply understand the existing standards joining forces in improving the codebase. Perhaps later at some point it might be better to have more diverse web engines but at the moment this improves so many more lives directly for all sorts of real-world platforms based on Webkit.

    ReplyDelete
  12. This is a very sad day indeed.. Opera switching to Webkit is totally against of what they preached for years, Webkit is becoming the new trident and they jumped into that train, hell I'm already seeing sites that don't run properly on anything else than Chrome, and this is just the beginning

    ReplyDelete
    Replies
    1. It isn't actually against what they preached for years. They preached open standards, and they're going to keep supporting open standards.

      Delete
  13. Oh please, you are just being a real hater this time. Bugs? That means Mozilla doesn't have any bugs right? Mozilla is perfect and Webkit is a beta like open source web source? Webkit has been better since day one. Explorer is switching too. Remember this: Mobile is the new web hang out and webkit is the best ticket to join the party.

    ReplyDelete
    Replies
    1. I bet you said the same thing ten years ago about internet explorer 6.

      Delete
  14. I'm not following this argument at all. First, I think Opera's impact on web standards will be dramatically *improved*, if anything, because any contributions they make directly to WebKit will be much more likely to trickle back to other WebKit-based browsers.

    I think people are afraid of a "monoculture" because of what happened with IE6 – but IE6 was closed source and completely controlled by one company. When Microsoft decided it wasn't worth their time to invest in Trident any further after shipping IE6, there was nothing anyone could do, and so nothing improved for 5 years until IE7 shipped.

    But a monoculture around an *open source* rendering engine would be a very good thing: everyone would get to make improvements, but developers wouldn't have to worry about supporting widely disparate implementations of the same feature for years while every vendor is off doing their own thing. The more people that pool their resources together into improving the same one rendering engine, the faster the improvements will be made.

    ReplyDelete
    Replies
    1. I completely agree with you. I couldn't have said it better.

      Delete
    2. but you have to keep in mind Webkit internal politics, and the prevailing general mindset of the major contributors , which might veto on suggested changes by new devs.
      OpenSource can be as bad as closed source for chnages. Example :Gnome 3.

      Delete
    3. You can't advocate a Webkit monoculture and talk about Web standards in the same breath. You can have one or the other. If everyone embraces a Webkit monoculture then we may as well shut down all Web-related standards activity and move all discussion to webkit-dev.

      Some people are arguing that would be a good thing. For why it would be bad for the Web even in the short term see my next post, http://robert.ocallahan.org/2013/02/a-small-example-of-value-of-browser.html. And in the long run I think it's incredibly dangerous to say "there can never be a Web browsing engine other than this particular chunk of C++".

      Delete
    4. Let me quote Maciej Stachowiak (if you're a Webkit fan, you'll know who he is):

      I think Opera’s choice is reasonable under the circumstances though it’s regrettable to have fewer serious browser engines

      http://krijnhoetmer.nl/irc-logs/whatwg/20130214#l-990

      Delete
  15. Lets be honest, Opera’s market share was so poor that it wasn't being taken seriously—it wasn't seen as a contender—and consequently wasn't getting the same level of developer support. We only spent time testing in Opera when a client had the budget to pay for the extra development costs, or their target audience used the Opera, which invariably wasn't the case.

    ReplyDelete
    Replies
    1. Actually, even on mobile where its market share was substantial it was being ignored. Opera just couldn't win.

      Delete
  16. I wonder if it would have been "a sad day for the web" if they'd adopted Gecko...

    ReplyDelete
  17. "The big loss for the Web is a further decrease in the diversity of browser engines."

    As a web developer, who wants to support more browser engines? Not I.

    If it was up to me, there would be one single browser engine. Of course, I want innovation but at this point in my web development career (16 years and counting) I want write once-work everywhere and I'm still not getting that.

    ReplyDelete
  18. I really wish they had at least made the effort to make Presto open-source before deciding to ditch it in favour of WebKit. Now it is not going to happen ... . As a long term Opera fan, this makes me sad.

    ReplyDelete
    Replies
    1. I'm sort of glad they didn't, because an abandoned but open-source Presto wouldn't have had a real chance but could have been a distraction.

      OTOH it would have been nice to see how they did certain things, I guess, as a historical artifact.

      Delete
  19. This is the good illustration that the dogma: opensource = the only right way, is complete mistake, and for now - false (also lie, propaganda). Opensource is neighter good nor evil, just one of the model of development with its pluses and minuses. And it can't defend from the locking for example. "everybody" can't make his webshit fork\adaptations\patchesonly because he sees code. Even skilled Presto programmers will need relearn yourself for longtime for being capable make something noteworthy there because this completely new huge heap of code... Instead of polishing that they have created by their hands for so long time, now only their "innovations" will be learning webkit codebase and painful attempts to screw (glue) other parts of their browser with the new layout engine. Only in stallman's speeches "everybody can".
    But certainly, opensource will allways have noisy not thinking fans, for which none arguments exist they just know "opensource"-dogma argument.

    ReplyDelete

Note: only a member of this blog may post a comment.