Thoughts on the new browser wars

Disclaimer: I work for Microsoft but these opinions are mine alone. And I work far, far away from anything resembling browser technology :-)

Google's Chrome has got the usual suspects all in a tizzy. My take? It'll be *really* interesting to watch if Google distributes this with their toolbar.

I was also fascinated by the depth of technical detail in the comic. It is not often that you see a description of conservative and precise GCs in marketing material. You see some common patterns emerging in the browser world.

Websites as processes

One direction the browser world seems to be moving to is 'one url - one process'. One thing I haven't seen in all the blog coverage is any mention of IE8 implementing the same design (announced several months ago). I do like Google's twist on this idea of implementing a task manager within the UI (in IE, you would probably have to look it up in the task manager yourself). By doing this, users will now start to blame the true culprits of bad browser behavior - websites and the plug-ins they use. Have a website running a Flash ad hogging up CPU? You'll be able to spot it instantly instead of frantically closing tabs trying to see who the culprit is.

imageimage

The interesting side-effect is that, for the first time, web applications will be first-class processes to the underlying operating system and will be treated as such. However, there are downsides to this approach. You're going to use more memory as there will be code+data duplication across processes. Threads (which IE used for individual tabs) are much more lightweight to launch and in terms of memory usage. It just won't be possible (atleast on NT processes) to launch with the same speed as a thread.

Javascript VM advances

All of the major browsers are speeding up their JS implementations. However, each is taking a different approach. If you're a VM person, there's a lot of interesting work being done here to study and learn from. Here's a quick reference list.

Google's V8

For several months now, there have been rumors flying around of a super fast dynamic language VM being implemented by Lars Bak and his team. Lars is well known in the VM world for his work on Self, StrongTalk and the Java HotSpot VM. Some of the v8 optimizations we know about

- Hidden class transitions
- a fast JIT (presumambly supports x86. My guess is that ARM support will come soon, if not already present)
- incremental garbage collection

Lars has a talk at the JAOO conference where we'll probably find out more.

Mozilla

The Mozilla folks seem to be focusing on integrating Adobe's Tamarin with Spidermonkey. From Brendan Eich's recent post

- Bigger bytecode cache
- Polymorphic property cache
- A tracing JIT based on trace trees

Internet Explorer

I know that the folks who work on the Javascript runtime in IE have been hard at work. Here's the work for IE8 that they've shared publicly *so far*

- Adaptive GC
- Treating sparse arrays and dense arrays appropriately
- Optimized string concatenations

The bleeding edge of VM technology seems to have shifted somewhat from VMs like Java and CLR to the ones that run dynamic languages - be it the new Javascript VMs or getting existing VMs to run dynamic languages. This should be interesting to watch.


Comments:
"Chrome" was also the code name for a Microsoft browser project whcih was trashed just before shipping. Guess google do have some humour sense. :) (from Scoble's Blog)
 
I thought Google adopted the word 'Chrome' due to Mozilla's terminology.

Anyways, Google Chrome *feels* wonderful so far!
 
Sriram - I found your comment on TechCrunch and felt you made a good defense of bloggers and their independence from their corporate employers. We do need to be able to separate work from personal expression.

I too was very impressed by the Chrome comic. It was highly technical yet expressed the ideas that should be manageable by anyone with a decent understanding of tech.

Are you in Redmond or the Bay Area?
 
I work out of Redmond
 
Your take on browsers is interesting, informative, yet not so technical that someone like me, who hasn't a detailed grasp of the concepts, can't understand it.

Will you please take a look at the latest Opera & Safari/Konqueror and share your thoughts on those, in the same vein as this post?
 
Post a Comment



<< Home

Archives

November 2004   January 2006   June 2006   July 2006   August 2006   September 2006   October 2006   November 2006   December 2006   January 2007   February 2007   March 2007   April 2007   May 2007   June 2007   July 2007   August 2007   September 2007   October 2007   December 2007   January 2008   February 2008   March 2008   April 2008   May 2008   June 2008   July 2008   August 2008   September 2008   October 2008   November 2008