Mozilla released Firefox 5 yesterday. I upgraded on one of my systems already, but haven’t done so on all of my systems due to some Extensions that are lagging behind in compatibility. These days I mostly use Chrome as my default browser, so I’m less apt to notice what might have changed between FF4 and FF5, and looking at the change list it doesn’t look like a huge release, which is another way of saying that Firefox is mature and can be expected to undergo minor refinements rather than major uhpeavals — this should be a good thing. FF4 seemed like a pretty good quality release. I’ve been a Firefox user since the early 0.x releases, and have been more or less satisfied with it, whatever its present state was at the time, since about 0.9.3. And before that I used the full Mozilla suite, IE4-6 for a few dark years when it actually was the best browser available on Windows, and before that Netscape 4. I actively shunned and ridiculed WebTV ;-). And I’d been a Netscape user since 1.1N came out in ’94. So, yeah. I knows my web browsers.
These are pretty exciting times for the WWW. HTML5 and CSS3 continue slowly becoming viable for production use, and have enabled new possibilities for web developers.
Browsers have matured and become rather good, and between Mozilla, Chrome, Opera, Safari, and IE, it appears that there’s actually a healthy amount of competition going on to produce the best web browser, and pretty much all of the available choices are at least decent.
It seems like a good time to survey and assess the “state of the browser”. So I did that. This is going to be more off the cuff than diligiently researched, but here’s a few thoughts:
After some reflection, I’ve concluded that we seem to have pretty good quality in all major browsers, but perhaps less competition than the number of players in the market might seem to indicate.
Hmm, “Pretty good quality”: What do I mean by this, exactly? It’s hard to say what you expect from a web browser, and a few times we’ve seen innovations that have redefined good enough, but at the moment I feel that browsers are mature and good enough, for the most part: They’re fast, featureful, stable. Chrome and Firefox at least both have robust extensibility, with ecosystems of developers supporting some really clever (and useful) stuff that in large part I couldn’t imagine using the modern WWW without.
Security is a major area where things could still be better, but the challenges there are difficult to wrap one’s head around. It seems that for the forseeable future, being smart, savvy, and paranoid are necessary to have a reasonable degree of security when it comes to using a web browser — and even then it’s far from guaranteed.
There has been some progress in terms of detecting cross site scripting attacks, phishing sites, improperly signed certificates, locking scripts, and the like. Still, it seems wrong to expect a web browser to ever be “secure”, any more than it would make sense to expect any inanimate object to protect you. It’s a tool, and you use it, and how you use it will determine what sort of risks you expose yourself to. The tool can be designed in such a way as to reduce certain types of risks, but the problem domain is too broad and open to ever expect anyone but a qualified expert to have a hope of having anything resembling a complete understanding of the threat picture.
That’s a can of worms for another blog post, not something I can really tackle today. Let’s accept for now the thesis that browser quality is “decent” or even “pretty good”. The WWW is almost 20 years old, so anything other should be surprising.
In terms of competition, we have a bit less than the number of players makes it seem.
Microsoft only develops IE for Windows now, making it a non-competitor on all other platforms. Yet, because its installed userbase is so large, IE is still influential on the design of web sites (primarily in that IE forces web developers to test for older versions of IE’s quirks and bugs). By now, we’re really very nearly done with this, one would hope the long tail of IE6 is flattening as thin as it can until corporations can finally migrate from Windows XP. Even MS is solidly on board with complying with w3C recommendations for how web content gets rendered. It seems that their marketshare is held almost exclusively due to IE being the default browser for the dominant OS. Particularly in corporate environments where the desktop is locked down and the user has no choice, or the hordes of personal computer owners who own a computer but treat it like an appliance that they don’t understand, maintain, or upgrade. I suspect that the majority of IE users use it because they have no choice or because they don’t understand their computer enough or have the curiosity to learn how to install software, not because there are people out there who genuinely love IE and prefer it over other browsers. I’m willing to be wrong on this, so if you’re out there using IE and love it, and prefer it over other browsers, be sure to drop me a comment. I’d love to hear from you.
Apple is in much the same position with Safari on Mac OS X as MS is with IE on Windows. Apple does make Safari for Windows, but other than web developers who want to test with it, I know of no one who uses it. Safari is essentially in the inverse boat that IE is in on its native platform: a non-competitor on every other platform.
This leaves us with Opera, Mozilla, and Chrome.
Opera has been free for years now, though closed-source, and has great quality, yet adoption still is very low, to the point where its userbase is basically negligible. There are proud Opera fanboys out there, and probably will be as long as Opera sticks around. But they don’t seem like they’ll ever be a major player, even as the major players always seem to rip off features that they pioneered. They do have some inroads on embedded and mobile platforms (I use Opera on my Nokia smartphone rather than the built-in browser, and on my Wii). But I really have to wonder why Opera still exists at this point. It’s mysterious that they haven’t folded.
The Mozilla Foundation is so dependent on funding from Google that Firefox vs. Chrome might as well be Google vs. Google. One wonders how long that’s likely to continue. I guess as long as Google wants to erode the entrenched IE marketshare and appear not to be a drop-in replacement for monopoly, it will continue to support Mozilla and, in turn, Firefox. Mozilla does do more than just Firefox, though, so that’s something to keep in mind. A financially healthy, vibrant Mozilla is good for the market as a whole.
Moreover, both Chrome and Firefox are open source projects. This makes either project more or less freely able to borrow not just ideas, but (potentially, from a legal standpoint at least) actual source code, from each other.
It’s a bit difficult to be able to describe to a proverbial four year old how Mozilla and Chrome are competing with each other. If anything, they compete with each other for funding and developer resources (particularly from Google). Outwardly, Firefox appears to have lost the leadership position within the market, despite still having the larger user base, they are no longer driving the market to innovate. Firefox largely has given that up to Google (and even when they were given credit for it, much of what they “innovated” was already present in Opera, and merely popularized and re-implemented as open source by Mozilla. And with each release since Chrome was launched, Firefox continues to converge in its design to look and act more and more like Chrome.
It’s difficult to say how competing browsers ought to differentiate themselves from each other, anyway. The open standards that the WWW is built upon more or less demand that all browsers not differentiate themselves from each other too much, lest someone accuse them of attempting to hijack standards or create a proprietary Internet. Beyond that, market forces pretty much dictate that if you keep your differentiating feature to yourself, no web developers will make use of it because only the users of your browser will be able to make use of those features, leaving out the vast majority of internet users as a whole.
Accelerating Innovation
After releasing Firefox 4, Mozilla changed its development process to accomodate the accelerated type of release schedule that quickly lead to Google becoming recognized as the driver and innovator in the browser market. Firefox 5 is the first such release under the new process.
This change has met with a certain amount of controversy. I’ve read a lot of opinion on this on various forums frequented by geeks who care about these things.
Cynical geeks think that it’s marketing driven, with version number being used to connote quality or maturity, so that commercials can say “our version number is higher than the competitor, therefore our product must be that much better”. Cynics posited that since Chrome’s initial release put them so many versions behind IE/FF/Opera that this put Google into a position of needing to “make up excuses” to rev the major version number, until they “caught up” with the big boys.
While this is something that we have seen in software at times, I don’t think that’s what’s going on this time. We’re not seeing competitors skipping version numbers (like Netscape Navigator skipping 5 in order to achieve “version parity” with IE6) or marketing-driven changes to the way a product promotes its version (a la Windows 3.1 -> 95 -> 98 -> 2000 -> XP -> Vista -> 7).
Some geeks, I’ll call them versioning “purists,” believe that version numbers should “have integrity”, “be meaningful”, or “stand for something”. These are the kind of geeks who like the software projects where the major number stays at 0 for a decade, even though the application has been in widespread use and in a fairly mature state since 0.3 and has a double-digit minor number. The major release number denotes some state of maturity, and has criteria which must be satisfied in order for that number to go up, and if it ever should go up for the wrong reasons, it’s an unmitigated disaster, a triumph of marketing over engineering, or a symptom that the developers don’t know what they’re doing since they “don’t understand proper versioning”.
From this camp, we have the argument that in order to rev the major number so frequently, necessarily this must mean that the developers are delivering less with each rev, which thus necessarily dilutes the “meaningfulness” of the major version number, or somehow conveys misleading information. So much less is delivered with each release that the major number no longer conveys what they believe it ought to (typically, major code base architecture, or backward compatibility boundary, or something of that order). These people have a point, if the major number indeed is used to signify such things. However, they would be completely happy with the present state of affairs if only there were a major number ahead of the number that’s changing so frequently. In fact, you’ll hear them make snarky comments that “Firefox 5 is really 4.1”, and so on. Just pretend there’s an imaginary leading super-major version number, which never changes, guys. It’ll be OK.
Firefox’s accelerated dev cycle is in direct response to Chrome’s. Chrome’s rapid pace had nothing to do with achieving version parity. In fact, when Chrome launched in pre-1.0 beta, in terms of technology at least, it was actually ahead of the field in many ways. Beyond that, Chrome hardly advertises its version number at all. It updates itself in about as silently a manner as it possibly can without actually being deceptive. And Google’s marketing of Chrome doesn’t emphasize the version number, either. It’s the Chrome brand, not the version. Moreover, they don’t need to emphasize the version, because upgrading isn’t really a choice the user has to make in order to keep up to date.
Google’s development process has emphasized frequent, less disruptive change over less frequent, more disruptive. It’s a very smart approach, and it smells of Agile. Users benefit because they get better code sooner. Developers benefit because they get feedback on the product they released sooner, meaning they can fix problems and make improvements sooner.
The biggest problem that Mozilla users will have with this is that Extensions developers are going to have to adjust to the rapid pace. Firefox extensions have a built-in check which tests an Extension to see if it is designed to work with the version of Firefox that is loading it. This is a simple/dumb version number check, nothing more. So when version numbers bump and the underlying architecture hasn’t changed in a way that impacts the working of the Extension, the extension is disabled because the version number is disqualified, not necessarily because of a genuine technical incompatibility. Often the developer ups the version number that the check will allow, and that’s all that is needed. A more robust checking system that actually flags technical incompatibilities might help alleviate this tedium. But if and when the underlying architecture does change, Extension developers will have to become accustomed to being responsive quickly, or run the risk of becoming irrelevant due to obsolescence. Either that, or Firefox users will resist upgrading rapidly until their favorite Extensions are supported. Either situation is not good for Mozilla.
Somehow, Chrome doesn’t seem to have this problem. Chrome has a large ecology of Extensions, comparable to that of Firefox. Indeed, many popular Firefox Extensions are ported to work with Chrome. Yet I can’t recall ever getting warned or alerted that any of my Chrome extensions are no longer compatible because Chrome updated itself. It seems like another win for Chrome, and more that Firefox could learn from them.
I have to give a lot of credit to Google for spurring the innovation that has fueled browser development in the last couple years. The pace of innovation that we saw when Mozilla and Opera were the leaders just wasn’t as fast, or as influential. With the introduction of Chrome, and the rapid release schedule that Google have successfully kept up with, the entire market seems to have been invigorated. Mozilla has had to change their practices in order to keep up, both in terms of speeding up their release cycle, and in adopting some of the features that made Chrome a leader and innovator, such as isolating browser processes to indivual threads, drastically improving javascript performance. Actually, it feels to me that most of the recent innovation in web browsers has been all due to the leadership of Chrome, with everyone else following the leader rather than coming up with their own innovations.
In order to be truly competitive, the market needs more than just the absence of monopoly. A market with one innovator and many also-rans isn’t as robustly healthy as a market with multiple innovators. So, really, the amount of competition isn’t so great, and yet we see that the pace of innovation seems to be picking up. Also, it’s strange to be calling this a market, since no one at this point is actually selling anything. I’d really like to see some new, fresh ideas coming out of Mozilla, Opera, and even Microsoft and Apple. As long as Google keeps having great ideas coupled with great execution, and openness, perhaps such a robust market for browsers is not essential, but it would still be great to see.