After reading Alex’s post, I’ve thought about what chrome should be, and what tech editors don’t seem to get.
I think the point of Chrome is to really get some ideas rolling for the major browser vendors. Specifically, threads. Threads are great, and I really do think browsers should start using them. I’ve been wanting this for a very long time. Chrome will (hopefully) start getting the browser vendors motivated to try them out. But, when you use threads excessively, it adds un-needed overhead (which is exactly what Chrome is doing). The way they sandbox plugins using them is a good plus, because it takes the blame off the browser when a plugin crashes. Pages, however, should definitely let the browser take the blame. I feel that it makes fixing renderer and js engine bugs less important when you use threads, since their consequence isn’t as great. On top of that, using a thread for every page is just wasteful of resources. Think of what would happen if several popups opened up (all having some sort of “shoot the monkey” flash game). Yikes.
So, how would things work in a perfect world? Browsers could get the renderer, and the js engine on separate threads (either both on the same thread, or each having their own). This way, the browser will work well on a multi-core system, but it doesn’t become a “thread whore”. When you think about it, the user only uses one RIA at a time, and most RIAs don’t use the CPU when they’re not being interacted with (and if they do, they should really use worker pools). Epiphany, Gnome’s web browser, implements this behavior, and it works very nicely. All while avoiding the need to spawn a bazillion threads while doing so.
So, Not only is the press making crazy stories (as you can see from Alex’s blog), but Chrome isn’t what they’re making it out to be. It’s not “Google is taking over the earth”, it’s more like “Google is trying to bring their ideas to the table”. And quite frankly, I can’t wait to start seeing the browsers follow Google’s path, and implement threads (sparingly, of course).