|
» Coring the browser » YAMB - Yet Another Mobile Browser |
|
Subscribe RSS 2.0 feed |
Subscribe Atom feed If you wish to receive email notification, please here » |
Great discussion. Let me first try to clarify a crucial but subtle distinction I was trying to make: the browser "core engine" vs. the browser application.

The Nokia S60 browser application, the thing you actually use and interact with, is this whole picture.
Now, why do we all love Firefox? Is it the core engine? Or the brilliant UI?
Clearly it's the UI. No one except developers cares a whit about the core. In fact, my love for Firefox is ever-so-slightly tarnished by the fact that the Gecko engine today is actually a bit slow and a memory hog -- no slight intended :) Fortunately, Firefox's UI more than makes up for that.
But, you say, innovation in browser cores has been essential. As Andrea so succinctly commented on my previous post,
On the desktop, by the coming of firefox, we have assisted to a "good war" between browser vendors: opera, ms, apple and firefox are working on standard support and moving forward web technologies... one rendering engine is not so ok for innovation.
Absolutely true for the desktop world -- without multiple browsers, especially open source, we'd still be in a proprietary, non-standard IE world. Thank you Mozilla, Apple and Opera for fighting the good fight, and winning. And thank you to the IE 7 team that has embraced standards; browser cores are converging in how they render the web, life is good.
So is it still true that we need diversity in the core? The question for the mobile world is, do we want further "innovation" in browser core engines? I would argue not -- at least not in how they render (display) the web.
Again you say, multiple cores should be no problem. HTML, CSS and JavaScript standards should be as stable and complete as possible, and web developers should be able to test a page on any browser and get exactly the same result. But even on desktops today this isn't true.
Why not? Shouldn't all browser engines be able to implement standards perfectly and be 100% "compliant" and interoperable? Isn't it just like a JPEG codec or POP3 client -- once the bugs are fixed it's all fully standardized?
The difference with browsing is that HTML, CSS and ECMAScript create a really complex system, and the standards can never exactly specify the "correct" behavior in every case. It's just too rich, and there are always going to be tons of ambiguous cases. And don't forget that all browsers still have to implement IE rendering "workarounds" to handle the billions and billions of "street HTML" pages that are out there, and always will be.
When a system gets this complicated the old approach "standardize first, then implement the standard" fails. What does work is a reference implementation. Even better, a high-quality, open-source implementation, so that everyone can actually use the exact same code. What smart software developer would re-implement an XML parser from scratch when they can use libxml2? Same with OpenSSH and OpenSSL -- the open source code is the industry standard.
So it's clear that we want an open browser core as the industry-adopted reference for mobile browsers. It turns out the choice by Nokia to use WebKit as the core engine for mobile full browsing was easy. Building a new full browser core made no sense (what we were doing before with the old Nokia "Services" browser). Licensing a proprietary, closed engine, no matter how good, doesn't make sense, since it can never become adopted industry-wide, and one vendor has control. So the obvious choice was open source.
The key insight is that the browser core has become a commodity. The base web standards are not evolving much any more, because they're good, and stability is far more important than anything else. Being "different" in the core engine is a bug, not a feature -- every web page should look and behave consistently across all browsers. And there are two mature, excellent open source browser cores already available.
For mobile devices the choice is between WebKit (WebCore/JavaScriptCore) and Mozilla (Gecko). When Nokia made the decision a few years ago WebKit was about 2 MB, and Minimo was about 10 MB. WebKit, being a newer core implementation that benefitted from earlier work in Gecko, is faster. So really there was no choice -- we can't fit Minimo on current mid- and low-end devices.
Of course that won't be true in the future -- Moore's law buys us out eventually as memory, processor power, and bandwidth continue to grow. But in practice mobile devices will be constrained for many years. Sure, there will be more and more high-end devices with tons of memory, probably in the hands of readers of this blog -- but we want full web browsing to propagate to every mobile device, including low-end phones in developing countries. So WebKit will be the only globally reasonable choice for many years for the major device manufacturers.
Now I hear the cry, "diversity is good!" But I think a strong case can be made that's no longer true of the commodity, core browser engine.
I propose the Mozilla and WebKit communities combine resources to make WebKit's WebCore and JavaScriptCore the very best possible open browser core for mobile. Innovate to make it smaller, faster, more compliant.
Then port Firefox for mobile onto the WebKit core engine. Who cares what the core is, as long as it's small, fast, and accurate? And, I would claim, pervasive.
The big win would be to have the Firefox experience available on all mobile devices, using the exact same core as other browsers, so we can stop fussing with rendering differences across different cores, and focus on what really matters -- innovative user experiences. Diversity in browsers is wonderful -- give users choices!
Having multiple, slightly incompatible browser core engines in mobile devices actually hinders the success of the web on mobile because it adds headaches for web developers, who are already overwhelmed dealing with several desktop browsers and now hundreds of different mobile device types.
Diversity in core engines is a waste of time.
I'm the business development guy for Nokia browsing. This is my personal opinion, not an official Nokia statement.
Mozilla just announced they are seriously investing in taking Firefox mobile.
See Russell Beattie's comments on this:
... That said, all the options suddenly available seem almost crazy doesn't it? We've gone from almost no advanced mobile browsers just a few years ago, to a ton of choices. It makes you wonder if Mozilla could do something else to enhance the mobile web, rather than re-creating the wheel with yet another browser that works on the phone...
He’s right — fragmentation of mobile browsers has been a disaster.
Firefox / Mozilla clearly has the strongest OSS browser community and is the richest in features, so this is very interesting to us. I love Firefox, live in it.
But I think the LAST thing the mobile device world needs is Yet Another Mobile Browser. We're still suffering from the mobile browser fragmentation that web content developers have to deal with: Openwave, Obigo, Nokia, Opera (Mobile & Mini), Microsoft, Access, Blazer, Danger, Picsel, Thunderhawk, Novarra, etc... each with multiple versions, on multiple devices with a range of capabilities.
Today, WebKit is becoming the de-facto mobile industry standard: S60, iPhone, Motomajx (Linux smartphones), and soon several other mobile platforms and web content creation tools. A startup, Pleyo, is building a business around porting & supporting WebKit on mobile (they have it running on the Nokia N800). WebKit is small and fast. Nokia, Apple and others have invested a lot in adapting WebKit to mobile, and Nokia will support anyone working to port it to new platforms. We want to see one common, open browser engine in the mobile world.
So let's talk about how the whole open source browser community can work together to eliminate fragmentation on mobile devices. "Browser wars" are not going to help anyone. Making sure that mobile browsing is open and not proprietary is.
I'm sure my comments sound terrible to people working on Mozilla, but please step back and look at the big picture. Mozilla & Firefox are fantastic -- thank you! But how is it useful to compete on mobile devices, where fragmentation or proprietary solutions are a worse enemy than any particular feature or technology? Let's work to combine the best of WebKit and Mozilla, and get mobile right, for everyone's benefit.
--Franklin