I have been using Google’s new browser for about three weeks now, and so far have found it to be very good. I have also found that Chrome makes a very good argument as to why we need to get away from browsers for delivering Web applications.
Before I go any further, let me mention some of the things that make Chrome really good for browsing websites. Perhaps most important is the way it isolates each tab, so that if one tab crashes the others aren’t affected. This feature has proven to be beneficial on a number of occasions, as JavaScript-heavy sites have crashed their tabs while allowing me to continue working with the sites that were open in other tabs.
Next in importance is the way each tab swallows its own pop-ups, so that when you close the tab the pop-ups go with it. The third most important feature is its speed - it appears to me to be even faster than Firefox for most sites. This is just an impression, as I have not performed any timed experiments, but Chrome is clearly faster than IE7.
Chrome also has some little convenience features that I like. For example, my current project forces me to use three different webmail clients during business hours, so I like Chrome’s combination of the thumbnails of recently visited pages with the little plus-sign button for opening new tabs: I can eat my breakfast with one hand and open all of my webmail clients with the other in just a few clicks of the mouse.
On the other hand, I do not like the way Chrome handles downloads, because it does not give me a choice as to where to save the file; it automatically puts it in My Documents/Downloads, which is a folder I never use on my own initiative. So after I download a file I need to move it to where it belongs, which is a nuisance because I need to download a lot of files in a typical work day.
I have also found Chrome to be fairly buggy with certain Web applications. For example, one of the webmail clients I need to use every day is CommuniGate with the LookOut skin. This application works great in Firefox, but it periodically crashes in Chrome. At other times it doesn’t exactly crash, but it decides I’ve looked at enough email messages and won’t show me any more till I log out and log back in. Also, I am not able to attach files to messages in Chrome about 50% of the time; the rest of the time Chrome just scoots the message window to the lower right corner of the screen and ignores my request - almost like it’s having a tantrum. Again, I’ve never experienced any of these issues in Firefox.
This difference between Firefox and Chrome leads me to the main thrust of this article: Web browsers are great for surfing the Web, but they do not make great containers for Web applications. Do not misunderstand me - I freely and enthusiastically acknowledge that many great applications have been built to run in Web browsers. However, I also believe that the browsers prevent these applications from being as great as they could be.
The aforementioned bugginess in Chrome is a case in point. You can build a fabulous application that works great in all major browsers until a new browser version comes out - or a giant like Google releases a completely new browser - and suddenly your application is crashing for a significant percentage of your users. Very ugly.
Another issue with browser dependence is that it takes control away from the developer. You cannot guarantee that your application will look the way you want it to look or work the way you want it to work, because you cannot control your users’ choice of browsers.
One example of this problem can be seen in the different ways that Google Maps works in different browsers. In planning a recent family vacation to Canada, I looked up an address on Google Maps in Chrome, and I got a map of North America: not very useful. I entered the same address on Google Maps in Firefox, and it pinpointed the exact location on a close-up street map: exactly right. Click on the thumbnails below to see full-size screen shots of this phenomenon. (Depending on your browser, you will either get new browser windows or new tabs in your current window.)


Another example of the discrepancies between browsers is shown by trying to attach a file to a Gmail message. In Firefox and other browsers, when you click on the “Attach a file” link you get an input text field with a “Browse” button to the right of it.

In Chrome, you get an input text field that says “No file chosen” and a button to the left of it that is labeled “Choose File”. Some might argue that Chrome’s way is better, but it is certainly not standard, and it is significantly different from the way other browsers do things.

My third and final example may seem trivial to some, but it is near and dear to the hearts of many: different browsers vary widely in the ways that they interpret CSS. One example of this is the footer of my website. The markup is very simple and standards-compliant, but the browsers don’t agree as to how it should be rendered. Chrome is the biggest offender here; it renders the font much taller and somewhat narrower than the others. While this difference is merely aesthetic in my footer, it could throw off the entire layout of a more complex user interface. Click the thumbnail below for a full-size comparison.

While Chrome represents an improvement over other browsers in several respects, it also highlights some of the main reasons as to why Web browsers are suboptimal as application containers. Plugins (most notably the Flash Player) represent a step in the right direction, because they provide a measure of cross-browser consistency. However, the best option is to get out of the browser altogether. This may require users to install a runtime such as AIR, but the potential benefits far outweigh this trivial inconvenience.