I’m going to argue for something unpopular in this post: Firefox has been lagging too far behind the curve for too long. When it comes to web standards, Firefox has not been fit to compete for years. Firefox’s high adoption rate is hindering the progress of the web, which is being led currently by other browsers, like Google Chrome.
Let me explain why the above argument is unpopular in the open source community.
Back in the early 2000s, one of Firefox’s main goals was to combat the stagnation of web standards for which Internet Explorer was responsible. I began using Firefox way back when it was called Phoenix, and back then, the browser was a truly necessary, awesome revolution that helped shape the web into what it is today. It was an ambitious project to create a revolutionary, open, responsibly developed web browser and it became an example to be followed by all open source projects. Firefox helped found web standards.
Many people who grew up using Firefox today develop for it, in the spirit of furthering the open web, of pushing forward the dream that eventually led web technologies past the atrocious limits set by Internet Explorer and Netscape. Those developers, who defend Firefox today because they intend to defend its necessity when it replaced Internet Explorer, do not realize that Firefox has long since stopped being the at the front of the race when it comes to the web frameworks and technologies. They get very passionate when I complain against Firefox helping with the stagnation of web standards, not realizing that Firefox has been holding the web back since at least 2011.
I have been a third-party developer for Chrome, Firefox and Safari for almost two years. I write code that has to be seamlessly interoperable between all three browsers, and that is deployed to tens of thousands of users. Most of my users use Firefox and install the Firefox version of my browser extension. However, Firefox’s stagnation is so ardent that it has been the platform that requires by far the greatest effort and special attention for my project. It has been the platform that requires, without exaggeration, twice if not three times the effort I spend when compared to Chrome or Safari.
The release schedule for my browser extension can be held back for almost a month due to Firefox’s painfully slow addon update review process. While I’ve had Apple (a far more closed, developer-unfriendly company) review my updates on average within five days to a week, this same review process takes an average of three weeks just for a preliminary review in the case of Firefox. Last February, I submitted a detailed request to Mozilla’s Bug Tracker asking for changes to the review process, possibly introducing a “trusted developer” program — my request hasn’t received any responses. Some of my updates include critical bug fixes, and even when they don’t, I am faced with the choice of either letting Firefox users lack almost a month behind other platforms, or just delay update launches altogether.
In terms of engine and codebase, problems run far deeper. Here are just some very few examples: Code that runs fast through Chrome’s V8 engine runs almost twice as slowly on Firefox. Myriad HTML5 features that are fully available in Chrome are only partially available in Firefox or are just starting to become fully available. The implementation of a secure random number generator, which has been available in Chrome, Safari and Opera for years, took more than three years for Firefox to implement, and only became available in Firefox 21. Packaged, local web applications, which have been the standard in Google Chrome for years, remain inaccessible in Firefox (except for Firefox OS), leaving developers stuck with the almost satirically archaic XULRunner framework. On top of all of this, Firefox is replete with CPU hogs and memory leaks that I cannot, for the life of me, reproduce on other browsers while developing my extension, and still lacks proper sandboxing.
This is just an incomplete summary of the problems that run down to Firefox’s very nature, and that make it require possibly a total rebuild in order to be able to compete with a browser like Google Chrome. I am not a Google employee, and not a Chrome fanatic. It’s just that much of my frustration lies with just how stark the difference is between developing for both browsers. When I’m developing for Chrome, code runs quickly. Developer tools work. I don’t get surprise CPU or memory issues that I can’t reproduce in other browsers. On top of this, Chrome offers so many APIs that in many cases you’re left to cherry-pick which one is better for your project (a packaged app, a native Chrome app, an extension?), and uses modern, simple structures, much to the opposite of XULRunner, to tie everything to the browser. Code-signing your extension isn’t a weakly documented process. Updating your extension doesn’t force you to run into three-week delays. Chrome is leading the way forward, and Firefox is at this point just a popular platform I am starting to wish I never had to account for in the first place.
While Firefox almost single-handedly revolutionized the web in the Internet Explorer era, the era of Firefox being the harbinger of web standards has ended, and it’s about time developers got out of their nostalgia and realized it. Firefox cannot keep up with the advancements being made in the current Google Chrome era, and is therefore, through its large user-base (28% as of April 2013, according to one statistic) holding web development back. If Firefox wants to compete, it must first realize that it is currently failing to compete.