A personal view at Firefox vs. Chrome

10 minute read

So, really, now that the hype is over, what is the browser of choice? Well, the out of the box answer for me is Firefox but let’s have a deeper look at the contest shall we?

What plays in favour of Google Chrome?
I for one really enjoyed the looks. It has a clean and sleek interface without your regular toolbar menus and without a caption bar. I find this amazing. It’s the first browser that was designed with true usability in mind regarding the menu paraphernalia. The guys at Google really are being serious about seeing websites as actual applications, and proof of that is the fact that you can create “application links”. This also plays in Chrome’s favour in my opinion. There are pages that I simply have open at all times and ones that I have to be able to access quickly; Google Chrome with this feature allows me to run GMail (or any other website) as a separate window, simply by leaving an icon on my desktop. This separate window is also special, it has kind of usability on steroids since it has no menu whatsoever. It does have a caption, which in this case is good because I might want to move the window around while not maximized.

Ok, now that we’re done talking about the user interface, we go on to the actual features. For starters, let’s face it: Google Chrome is fast. Actually, it feels faster than Firefox as far as browsing is concerned. How do they achieve it? I’m not exactly sure and if my suspicions are right, you can probably achieve the same effect with FasterFox or with a properly configured Opera, but I’m dealing with the facts here and that is that Chrome feels fast.

There is also a technical choice in Chrome that pleased me greatly, in part I’m amazed that such a big open-source project like Mozilla Firefox, packed with paranoid security people let something like this go through on Firefox. The choice I’m talking about is the fact that Chrome spawns different processes for each tab whereas Firefox uses a threading system instead. It is common programming knowledge that when it comes to security, processes are by far much safer than threads, not to mention the advantages regarding memory management. Why, you ask? Memory leaks. This isn’t just some buzz word that came with Firefox, this is an actual problem that Firefox and many more applications suffer from. What is a memory leak? Again, to put it simply, it’s memory of your system that was reserved but that wasn’t marked as free when it was no longer needed. So if a browser eats 100Mb of your RAM, and when you, say, close a tab it does not free the resources that belonged to that tab, then the more tabs you open, the more memory the browser will be using, and it can only use ever so much. How does multiprocessing help prevent this? It’s simple: since each tab runs in its own process, when the process dies (i.e. the tab is closed), the memory that was assigned to it gets released automagically. So even as far as plugins are concerned (to name a few: Flash, Silverligh, Acrobat Reader…the list goes on), even if those are leaking memory, which has happened in the past, it will all be contained as soon as the tab is closed.

In practical terms, you open up Firefox and note down how much memory its using. Then browse for 6 hours in a row without closing and reopening the browser. Still, you open tabs, browse in those tabs, close some tabs, open up new ones and do some browsing following this procedure. Also, do visit some Flash-powered websites, and do view some PDF documents in-browser. In the end, close all the tabs but one, it can even be a blank, newly opened, tab. Now open your Task Manager and check how much memory Firefox is using. Note it down and do the same with Google Chrome. See what I’m talking about? I’m no future teller but Firefox will be using much memory after the 6 hours than it was in the beginning, and that is memory leaks plus memory fragmentation kicking in (which is also tameable by using processes instead of threads).

Something else that I find great about Chrome is its OmniBar. I had loved Firefox’s Awesome Bar but OmniBar throws us to a completely different level of browsing. For instance it cuts off the need for two input boxes like Firefox has, since this address bar can do both automatic searching and regular browsing. Way to go Google. As of yet, I’m still trying to find a Firefox plugin that perfectly mimics OmniBar’s behaviour.

The incognito mode is also a neat little feature, specially when you are on public computers (or visiting sites that you should not be visiting…..). This is something that has also been included on Internet Explorer 8 (InPrivate) but apparently is yet to be announced on Firefox, even if I’m pretty sure that there’s already some addon out there that serves the same purpose.

Lastly there’s the download management. Chrome’s way of handling downloads is far from perfect, but I still like it better than that of Firefox. I really dislike having a separate window in my task pane just for downloads. It’s a real pain in the rear when you’re using the feature on Windows that allows you to group windows of the same application. I think there is still some work needed on this.

Now, for the not-so-good things about Chrome.
The spell checker. For God’s sake, I still cannot believe that you cannot change the spell checker language without having to restart the whole browser! And even more, you have to crawl through the menus to achieve that. Thank you Firefox for allowing me to do that on the context menu.

The lack of extendibility. Unfortunately, Google Chrome still does not support plugins or addons, nor does it support themes. A shame really, specially because it doesn’t seem like it’s something that it’s being worked upon, since their policy seems to be simplicity. This is kind of both good and bad.

It’s still very beta. There’s features missing (print selected text anyone?), it’s still kinda buggy and well, it still needs a lot of work. As an advantage is the fact that it’s an open-source project, meaning that if there are bugs, there’s a high likeliness that the community will find and report them, and when those bugs are security-critical, this is a massive advantage over closed-source projects.

I also feel that Chrome’s password management is less intuitive and neat than Firefox’s. Maybe I’ve just grown used to the way Firefox handles things. I don’t really know.

I believe I have in one way or another, covered out everything on both browsers, at least the things that affect me directly. There is a specific addon for Firefox that I cannot go without, that is Foxmarks. This addon allows me to share bookmarks across several computers, and I simply cannot get anything like it on Google Chrome, which is sad really. I keep a toolbar with my neatly organized bookmarks and if they aren’t coherent across all my computers, then it defeats the purpose of having it there.

There’s another topic on the «browser-war» that I would like to address here: memory usage. No, I’m not going to show screenshots or make videos of how Firefox uses less or more memory than Chrome, or anything like it. For ages, we’ve been living on the edge of a good program translating into a program that uses little memory. Nowadays this is a VERY wrong concept. In the early days, the RAM memory available was scarce and sometimes we had to make the craziest juggles to even play certain games. Today, we typically have more RAM memory than we can handle; memory which just sits there on our computer, idling. Now, think for a minute: what good is it to have free memory? Yeah, sure it prevents the computer for using the swap file since there’s always free memory for that one application you’ve just started but hold on for a second. The RAM is extremely fast when compared to your hard drive, so populating the RAM with data that might be handy in the near future is a measure that will for sure make your computer feel faster. If resources for a certain application are being loaded from the RAM rather than from the hard-drive, you will notice that the application runs faster.

So I think you see where I am getting here? I don’t really mind if browser X uses more RAM when compared to browser Y, as long as that RAM is being put to good use. That is, as long as that memory is being used to make the application run faster.

Firefox actually has a go at this but the Mozilla guys kind of failed. Firefox does use a ton of memory but it’s far from being used to enhance speed, it’s basically memory that gets left over and forgotten about. Since Firefox runs in one single process, this also builds up memory fragmentation within the process, which just adds up to the RAM being wasted mindlessly. The idea of fragmentation is as follows: say that you have 3 tabs. The first is using 20Mb of your RAM, the second is using 5Mb and the third is using 15Mb and also assume that they were opened by this order, thus they are ordered like that in the process’ memory space (it’s much more complex than this, but for this purpose we can simplify it like that). Then you decide that the second tab (the one with 5Mb) is no longer needed and you close it. Tada, you just have created a hole in your memory. Firefox won’t reorganize the memory assignments just to fill the gap with the existing tabs, set aside the operating system doing that.

Now there are two scenarios:
– You open a tab that by default uses up 10Mb and therefore it won’t fit the gap. (You are wasting the 5Mb that despite being free, they can’t be used by whatever else that requires more space)
– You open a tab that starts up at 2Mb, and as you browse on it, it grows to 15Mb. Then you’ll have fragmentation. Part of your tab’s data will be on that gap, and the rest will be somewhere else.

Either scenario is undesirable and also avoidable with processes instead of tabs.

But hey, I’m going to stop hitting the same key, it’s just that apparently Mozilla has pushed this notion way down on their priority stack and this is just foolish. I’m sure it will take a lot of work to switch from threads to processes, but it will be really worth it in the end.

The last remark on the two browsers
There’s a new fight going on right now which is the Javascript fight. Google and Mozilla seem to be going head-to-head trying to make their Javascript engine be the fastest one. Truth is that when you compare Google Chrome (any version) to Mozilla Firefox (up until 3.1.0 which is still due to be released), Chrome simply is much faster as it is shown by many reviews out there. However, Mozilla is working on a completely new Javascript engine, TraceMonkey, which at first sight will put a hell of a fight with Chrome’s V8. Who benefits from this? Us, users, of course. The more they fight, the better served we are 😉 .

To finish off my post, I just would like to clarify the reason I stick with Firefox. The point is that Firefox has been out there for quite a while now, and despite its security flaws here and there that have happened throghout time, it is pretty rock solid and secure. Google Chrome still has a lot to prove, it’s still embrionary and it has a lot of growing up to do. Firefox also allows me to use addons that allow me to extend its features and I value this deeply, specially the possibility of using Foxmarks and of changing dictionaries quickly. These are practical things that I cannot go without, hence choosing Firefox for my day-to-day tasks. However, if what you do isn’t exactly mission critical and if there aren’t any extensions for Firefox that you use, then by all means, stick with Google Chrome. Only with a good userbase a piece of software can be improved.