Like many others, I have downloaded Google's Chrome Browser (using it to write this blog), and gave it a try. Of course, the first thing people are focused on is the UI and visible features... After reading the comic book explanation (the team did an awesome job at describing the architecture via a comic book - very unique idea), I think people need to look at what this browser really is - it’s not just a browser, it’s a web execution client.
First, they went away from launching a bunch of threads and went to processes, they are extending a well know operating system fundamental, making the browser similar to a sub OS of your OS (one that does not have to care about drivers and such). They went for the overhead of the process model to focus on scalability and stability. Both of these have to be fundamentals if Google Gears is to provide content to this web execution client, as who wants to run a cloud application and have your browser crash, run out of memory, or suffer from many of the other common limitations of browser-based applications (very few truly rich applications run purely in a browser).
Other features that seem to be radically different for this web execution client are the virtual machine manager used to execute Java script, the garbage collection method, the scalable user interface, and the way they are doing the developer testing. They have really taken a different approach here, an approach more focused on how things execute over being an web page rendering engine. The developer testing concept is very neat, they are leveraging the core of Google to test their builds against the most commonly viewed sites, this gives instant feedback about real world usages (but no testing is ever enough, right?).
Now how does a new browser release get into blog on compute models? The way I look at it, this is really a prime time client for executing cloud programs, Google Gears or others. The way they made the browser to not be limited in its processing capabilities and coupled that with common computer science stability models, the browser (even if not launched as a browser) is a prime candidate to become our interface to the rich application capability to cloud computing.
However, my biggest worry with this model is how the application verifies that the virtual machine manager and the other core services of the browser integrity have not been compromised. Is their a TXT style measurement of this browser? If cloud is going where people think it is, I am going to want my client execution engine to be trustworthy as possible.
From my first look, great job Google team. What are your thoughts?
-Jason A. Davidson