Wednesday, September 3, 2008

google's chrome is hot

This is my first blog posting from google's chrome.  There's been a lot of chatter about whether this is a good idea, so here is my two cents:

Q: Firefox is already a great browser AND it's open source.  Why didn't Google just invest changes into this browser?

A: Chrome isn't simply another Mozilla-fork, it has new low-level system features and architecture.  Firefox is a great browser, and it's pushed Web 2.0 far enough to expose some serious problems in the underlying design of Web 2.0 and the browsers that support it.  Changing Firefox just isn't practical when there are this many changes... it's better to start over.

Q: "Separate Processes" per tab?  Why is that necessary?

A: The browser and web based applications are hostile territory.  You can't trust that applications developers are going to write friendly, clean, compatible code, so don't trust them.  This sounds counter-intuitive until you realize that all the rock-solid architectures do this: IP works because it fundementally assumes that communication failure is NORMAL.  Likewise, modern operating systems believe in process isolation.  It's a "good thing"(tm) that Google is now doing the same for the browser.  

Q: Do we really need another browser?

A: Yes.  Application developers demand more of the web.  We should have a fully integrated debugging stack.  We should have protection against rogue or errant processes.  We should give the user visibility into what happens on their machine.  The current browser architectures address none of this.  The closest extension out there is FireBug (and FireCookie)... but this is only a start.  There are limits to what you can do within a poor javascript environment -- Google knows this because they are also web developers -- our pain has been their pain as well.  So yes, it's absolutely necessary that someone with the resources step up and help solve this mess.

By the way, people have said the same thing about Opera for a long time, but the truth is that Opera pushed both IE and Firefox towards better CSS 2.0 compliance when it beat them badly on the ACID2 tests.   Likewise, there are serious problems with current browser architectures that have not been addressed that Google is now addressing.  

More competition is never a bad thing because it motivates exactly these kinds of changes.

Q: So great, now I have to design for another browser as well?

A: Unfortunately that particular problem will never go away anyway anytime soon-- we already have at least 3 major browsers (IE, Firefox and Safari).  The truth is that a certain segment will always push the latest browsers and gradually the rest will either move towards compatibility or lose market share as those sites become popular.

Q: So why use it before it becomes popular?

A: Stability.  With blogs, online banking, web mail, intranet portals -- it becomes very important that the browser not crash in the middle of edits.   If browsers were stable this wouldn't be nearly as compelling.  We rely on a nightmare of javascript to run our sites now -- shouldn't that be based on a stable VM and multiprocess model in-line with modern operating systems, not 1980's technology?


Bill said...

You failed to mention their little EULA snafu. Already fixed and old news, but my company warns against using it and will be doing the same for our clients....for now.

Larry Kyrala said...

Yes, I heard about that after posting... they did respond to it fairly quickly, but yeah, I'm not sure it's ready for prime time. open source projects are easy to check for malicious invasive code, and if google is found to be abusing their privacy claims, I'm sure the code will be forked quickly to provide a standalone build. At this point it isn't really about a single vendor anyway -- the point is that Google is giving the industry a needed shove -- most of my optimism about this browser comes from the fact that the ideas in it will ultimately help web app developers build a more stable web. Your company is perhaps playing it safe because admittedly some of the plugin and browser features aren't fully baked yet (it is beta after all).