This blog post by a Firefox developer is making the rounds in the techno-blogosphere. Firefox developer Jono Xia makes the point that constant updates to the open-source Firefox web browser is driving its devotees nuts. It has made me switch from Mozilla Firefox to Google Chrome for most of my browsing. In Xia’s opinion, the problem is that Firefox developers have become enamored with features, and keep adding bells and whistles to the browser. Most actual users (like me) mostly want high usability and for new features to be introduced gradually. In particular, we don’t like radical changes to our user interface.
This should not be hard to figure out. Imagine if once a month you went to drive your car and the ignition key moved to a different location or that the turn signal had moved from left of the steering wheel to right of it. That’s how it’s been with Firefox for a while. But now these changes occur stealthily. It used to be you were told when a new version was available, and then had the option of downloading it. With the latest versions of Firefox, new versions download quietly in the background and appear the next time you restart the browser. This has its strengths. If there has to be bug fixes and critical patches I’d largely prefer to be kept ignorant of them. What I don’t want is to start my browser and find new tools on my toolbar, or that suddenly some of my favorite add-ons no longer work because they were not upgraded to the latest stealthily upgraded version.
Yet if you use Firefox religiously, this sort of stuff feels like it happens all the time. To say the least, it is jarring. Many if not most of us spend much of our lives staring at content in our web browser. A consistent user interface is good. This means browsing requires less thought and becomes automatic. Add irregular but relatively frequent amounts of change to the user interface and it becomes annoying and at some nebulous point intolerable. It used to be that a year or at least many months would go by between a major version of Firefox. Now it can be weeks!
I use Firefox on a Mac. I noticed over a period of months that Firefox kept slowing down. It loaded slowly. Pages reloaded slowly. If I had a half dozen tabs open when starting up it would take a minute or more for the data in the tabs to be refreshed. Moving from tab to tab was often slow and full of latency, where the current tab just hung there for a while with an hourglass cursor. Sometimes the browser just hung and I had to do a Force Quit to kill it, or would not shutdown when I shut the computer down.
These sorts of problems don’t happen naturally. They are a result of poor software engineering. I speak with authority here because I happen to have a master’s degree in software systems engineering from George Mason University. Granted, building a web browser is hardly a trivial task. There are so many aspects to integrate correctly. In short, it is a complex engineering challenge to make it work on just one operating system, let alone the many operating systems that Firefox supports. Mostly these problems point to a process problem, rather than a programming problem. Just as you can build more cars if you speed up the assembly line, but those cars may suffer something in the way of quality, to keep up with the competition you can push out new versions of a browser more quickly if you cross your fingers and hope that current functionality is not compromised in doing so. It’s clear that a lot of current functionality is compromised by Mozilla’s current approach.
I don’t know exactly how the Mozilla project is run. I certainly like its goals: create a browser that is platform agnostic, that won’t make anyone rich, and that rigorously adheres to the latest web standards. It was this approach that lead to the rise of Firefox in the first place, including a glowing review by me a full eight years ago when it was not yet official. At the time, Microsoft had put its Internet Explorer browser on the back burner. At least you could say that IE did not change a lot. It was quirky, but it was consistently. You could go years between new versions of the browser.
With Firefox, what seems to be missing is good and frequent regression testing. Regression testing means automated testing that tests when you add in new functionality that the current functionality still works. Mozilla is hardly alone in having problems with regression testing. It is a decidedly unsexy thing to do, but vital for good software engineering. It’s also a hard thing to do. I know this from personal experience. The regression testing tools out there tend to be very pricey (Mercury’s suite, now owned by HP, comes to mind) and, for the most part, annoying to use. Most of them cannot handle tiny changes in canned tests, like the change of location of an image on a web page, without failing the test. You are expected to create whole new tests. I am looking into one testing suite that looks like it allows test cases to be reasonably fault tolerant. If so, we can gain a whole lot of productivity doing regression testing.
Doubtless Mozilla is doing some regression testing, but it should probably do a lot more and probably have a much more well thought out process for doing it. If satisfying users is truly their primary goal, they may need more testers and fewer developers. It sounds like it is the other way around.
So I have been seduced by the Google Chrome browser. I won’t use IE. I just loathe it and I can’t quite put my finger on why but certainly it’s not a good thing that it is developed by Microsoft, and its bright blue theme jars me. Chrome, like Microsoft, is a product of another empire, just not one quite as evil, at least not yet, but certainly one targeted to encourage you use all things Google. It’s clear after you run Chrome for a while that it is a slicker product overall than Firefox. It’s also faster and better engineered. For example, each browser tab has its own CPU process. This has lots of benefits; the primary one being it is much less likely to crash. Firefox is catching up here, but even so it is still buggy and slow on my Mac.
I don’t want to love Chrome, but considering how much time I spend in a browser I have to have a browser that works fast, reliably and consistently. Chrome has not been perfect here, particularly with its user interface, which has morphed faster than I would like. But it is standards based, multiple-platform, fast and reliable.
I really want to go back to Firefox. It is the reference implementation for browsers, although maybe not so much anymore the way they throw out new features so quickly. There are certain Firefox behaviors I really miss, like the Bookmark manager in a sidebar. For right now I simply cannot revert. I hope Mozilla gets its act together, and listens better to the needs of its users.
So will it be adios and goodbye forever for Firefox? Or can I say adieu for now, and I’ll be glad to come back when you have your act together? For right now, I say adieu, but pretty soon it is going to be adios.