I really like Firefox. Despite the new slew of browsers showing of some very impressive competing technology, Firefox is still my browser of choice. I love it because it offers a consistent experience across platforms and the large ecosystem of extensions makes it a snap to bring parts of the web (Twitter, email) directly into the browser, cutting down on time spent and tabs used. Until some other browser grows a similarly impressive set of extensions I’ll keep to Firefox. With the Portable Apps versions, you can even take your personal, fully tricked-out Firefox with you wherever you may go.
Despite its general awesomeness, the one thing that continues to irritate me is the fact every now and then I have to stop work and restart. It’s probably not as bad as I make it sound, especially with the session management which makes it very easy to pick up where you left off. Of course, the restarts are for legitimate reasons: there’s a security update or I installed a new extension. Firefox is otherwise rock stable. However, even the once in a while restart can be very irritating, especially if like me, you are prone to the occasional bout of extension shopping. I went extension shopping when I started using Twitter a lot (to look for a good Twitter extension) and I went theme shopping to find something minimal when I got a netbook. There’s a lot of interesting stuff out there, but the problem was that every time I installed something I had to restart. That made browsing new adds-on a slow and rather painful experience.
I like the progress Firefox is making and commend the developers for making an awesome piece of tech but I really think that they should buckle down and just spend one point release on getting rid of the need to restart every time you install something. Some other extensible platforms (Emacs in particular and I think Eclipse too, to some extent) have support for installing extensions on the fly. Admittedly, Emacs is essentially a Lisp machine with a bunch of text editing primitives and I have no idea how Firefox is actually built. For all I know it could be a very difficult problem and might involve a significant rewrite and redesign. But difficult problems can be solved and I’m pretty sure much harder rewrites have been done in the past.
There is the possibility that I’m a lone minority and this restart problem doesn’t really bother anyone else. But I feel that this is more a result of people having gotten used to restarting than not really caring about the problem. Back in the day when I actually ran a Windows machine, frequent restarts were a part of everyday life. Things got considerably with Windows XP which wouldn’t suddenly freeze up at irregular intervals, but I still had to restart every now and then for a variety of reasons (mostly related to installing or updating software). Having been a full time Arch Linux user for the past 3 years, I’ve gotten used to not being forced to restart. I’ll only seriously considering rebooting my Linux laptop after doing a kernel upgrade and even then, I’ll wait for things to start not working right before I actually do restart. It’s far more likely that I forget to plug in my laptop and the battery slowly dies. Similarly, I often put off updates on my Mac Mini because I can’t stand the thought of waiting around for it download, install updates and then restart.
I will admit that things are probably easier to do when you have the freedom to tell the user to stop doing something and then restart. It means that you don’t have to worry about things getting overwritten or conflicts happening from trying to run the program while rewriting. As a developer, that peace of mind is something you’d be willing to pay a high price for. But that doesn’t change the fact that it is a nuisance to the user. And nuisances to users are by and large a bad thing. As developers I think we have a responsibility to give the user the best possible experience. Solving the problem of restart-free installs and updates is certainly a hard problem, but I think it’s one that is worth solving.