Saturday, September 20, 2008

Real World Browser Performance

The last few months have witnessed the resurgence of a browser arms race - Google launched Chrome, IE 8 is now in its second Beta, Mozilla is about to release an update to Firefox, and Apple is making waves with its changes to Webkit (and Safari). With the emergence of blogs, anyone who is someone on a product's team is waxing eloquent about "a" differentiating feature they worked on. For some reason, one of the most talked about aspects of the new breed of browsers is Performance; all this time I thought the user interface is what people cared about most.

Performance is not a bad metric to talk about. This post is not decrying the performance improvements per se; it's a critique of the lack of a holistic approach to performance. The Javascript engine gets the most attention, and the geeks are going to town writing about the nifty engineering miracles they have performed by "Native Runtime Code Generation" or by "JITting Java-script" - all great intellectual stimulation but Javascript performance is just one facet of the Performance cube.

At first, I was closely following the Javascript battle, and all the marketing speak clouded my judgment. An article from an unlikely source, the IE Blog, set me straight; here is the link I am referring to: Performance Consideration in IE: To summarize the article, every browser has unique performance challenges, and the overall performance can't be improved by overcoming a subset of the challenges. For instance, if the bottleneck is the rendering engine, improving the Javascript engine's performance by 200% will not translate into a 200% performance boost for the user. In some cases, the improvement will not even percolate through to the user.

This kind of insight doesn't require you to be a rocket scientist, but the idea is so fundamental, it is often overlooked. Software today is complex with many interacting pieces; fixing one of them doesn't necessarily fix the problems of the whole - the whole is greater than the sum of its parts! Don't get me wrong - a re-ignited browser war is great for me as a web surfer/developer. The emergence of cloud computing, of online productivity applications, of web mail, of facebook and myspace, et al have translated into me spending more time in my browser than most other applications. I foresee a day when code development will also be done in a browser client; for us developers, that's the final desktop bastion.

My request to Mozilla, Microsoft, Apple and their ilk is to keep their innovation engines running. If they are to attract new users, it behooves them to provide the complete story behind their innovations instead of a one-dimensional perspective. Eventually users smarten up, and if they realize they have been lied to, the browser landscape is vast enough for them to defect to another product with impunity.

No comments:

Post a Comment