They're back! Just when you thought the "browser wars" were over, with the two camps -- Microsoft and Mozilla.org -- settling in for a kind of intransigent détente, along comes Google to stir things up all over again. Clearly Google is unhappy with the current state of browser geopolitics and feels it needs to roll its own in order to ensure a robust base for its myriad hosted applications (e.g. Gmail, Google Docs, etc.)
To that end, Google has designed an almost completely new Web browser. In fact, other than the core rendering engine -- which is based on the open-source WebKit standard of Safari fame -- everything in Google Chrome constitutes a rethinking of how you engineer a browser application. For example, with the current versions of Mozilla Firefox and Internet Explorer, individual Web page tabs are hosted in a single process -- a model that is efficient (in terms of memory and resource consumption) but also prone to catastrophic failures: A single crashed tab can easily take down the entire browser application.
Chrome seeks to eliminate this problem by isolating each tab within its own application process and then leveraging the built in memory protection capabilities of modern, preemptively multitasking operating systems to keep code and data in a failing tab from stomping on other processes. So now, when that buggy Flash applet on your favorite humor site goes belly up, it won't necessarily take down the entire browser -- the processes running in other tabs will keep chugging along.
This is a big deal for Google, which is banking on wider adoption of its hosted application offerings and battling the perception that browsers are unreliable, especially when you start running multiple Web applications in a tabbed format. Nobody wants to trust their line-of-business applications to an unstable environment, so Google hopes that Chrome will provide the kind of robustness that can assuage customers' fears.
Double Stuff Browsers
Of course, few technology ideas are truly original, and the case of the multi-process, tabbed browser is no exception. In fact, Google can't even claim to be the first to market with this model -- Microsoft beat them to the punch by a week when it released its own take on multi-process browsing in the form of Internet Explorer 8 Beta 2.
Like Chrome, IE 8 uses multiple, discrete processes to isolate and protect each tab's contents. However, while Chrome takes a purist approach and literally launches a new process with each opened tab, IE 8 uses more of a hybrid model: It creates multiple instances of the iexplore.exe process but doesn't specifically assign each tab to its own instance. Thus a look at Task Manager under Windows will show an equal or greater number of Chrome instances than running tabs, whereas IE 8 will generate a fewer number of instances -- for example, six copies of iexplore.exe to support 10 discrete tabs -- and share them among the running tabs.
How these two variations on a theme will hold-up in the real world remains to be seen. My take is that Google's purist approach will ultimately prove more robust, but at a cost in terms of resource consumption. In fact, both Chrome and IE 8 stretch the limits of current PC hardware by gobbling up enormous amounts of RAM while saturating the system with lots of concurrent execution threads.
This new development -- browsers chewing-up more memory than their host OS -- is something I documented in my Enterprise Desktop blog earlier this week. At the time, I was shocked by how bloated IE 8 had become, consuming 332MB of RAM to render a simple 10-site/10-tab browsing scenario. Then I evaluated Google's Chrome and my expectations were reset yet again. Not only did the "fresh start" Chrome use nearly as much RAM (324MB) as the legacy-burdened IE 8 during peak browsing loads, it actually "out-bloated" IE 8 over the duration of the test, consuming an average of 267MB versus. IE 8's 211MB (you can read more about these test scenarios at the blog).
Clearly, these are products targeted at the next generation of PC hardware. With nearly 20 percent of a 2GB PC's memory consumed by Web browsing, and with IE 8 spinning more than 170 execution threads on Vista to complete the same aforementioned 10-site scenario (Chrome spins a much more conservative 48 threads), we'll need to rethink our ideas of acceptable minimum system requirements. At the very least, you're going to need multiple processing cores and many gigabytes of RAM to support this new, more demanding take on Web-centric computing.
To be fair, I must mention that both IE 8 and Google Chrome are still in the Beta stages of development. Chrome, in particular, is in its first public test release cycle, while IE 8 is only now being made available in a "feature complete" form (previous IE Betas were notably short on innovation). And it's also important to consider all of the non-architectural changes that these browsers bring to the table -- most notably, enhanced rendering performance and usability.