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.
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.
Anyways, Google Chrome *feels* wonderful so far!
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?
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?
<< 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

