Ajax Performance
A blog by Ryan Breen of CloudFloor
Questioning Joel’s latest Strategy Letter
September 23, 2007 on 11:04 pm | In ajax | 10 CommentsLast Tuesday, Joel Spolsky offered up his latest Strategy Letter, arguing by analogy to an earlier era that software optimization in the Ajax world is wasted time:
The developers who put a lot of effort into optimizing things and making them tight and fast will wake up to discover that effort was, more or less, wasted, or, at the very least, you could say that it “conferred no long term competitive advantage,” if you’re the kind of person who talks like an economist.
The analogy that Joel makes compares finely tuned Ajax applications to a bygone version of Lotus 1-2-3, which took ages to ship and lacked critical features due to laborious optimizations in assembler world to compensate for inadequacies in the target platform. The developers failed because, in the time it took to develop the app, hardware costs dropped and made more featureful, resource intensive apps tenable. Joel posits that someone will build a new, resource intensive meta-library which compiles to JavaScript in a way that sounds very GWT like. Though performance will suck at first, these issues will be rendered irrelevant as “new versions of the browsers come out that support cached, compiled JavaScript.”
Since I can safely rely on Joel never reading this entry, I’ll say with confidence that this is a deeply flawed analogy. I think it misses by overstating or improperly characterizing two separate forces which serve to pull the current trends in very different directions than Joel expects.
First, the release cycles for new applications and libraries are much, much shorter in the hosted model. While Microsoft could afford to release a few incredibly slow versions of Excel before the hardware caught up, that would be a lifetime for a startup trying to hawk a new library in the Ajax world. For something to perform as poorly as Joel suggests, it would need to boast unfathomably amazing features to justify getting market share, and enough of our libraries are useful enough that it’s hard to imagine anything so unspeakably better.
Second, and far more importantly, Joel’s comparison hinges on updates to the development environment, such as improvements in processor speeds, that occur on roughly the same timescale as new releases of the software. As I just said, hosted software is released much, much more quickly than client apps, for a range of reasons. At the same time, the rate of change in the browser world is at least an order of magnitude slower than system performance improvements. IE6 to IE7 in 7 years versus Moore’s Law? There really is no comparison.
In fact, I would argue that we are in the exact opposite of the scenario he envisions. We are in a world where browser development occurs at an absolutely glacial pace, at least as far as the bulk of the installed base goes, compared to hosted application development.
If Joel wants to posit a gnarly new SDK to end all SDKs, how about one that allows novice developers to build applications that perform incredibly well on the crappy browsers we’ll have to support for the next 5-10 years? That is a vision more in line with our present reality.
10 Comments »
RSS feed for comments on this post. TrackBack URI
Leave a comment
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^
I must confess I agree (kind of) with both you and Joel, though I must also say I think two of your points are at least to some extend “far way from bulls eye”…
First of all you’re talking about startups, this new SDK doesn’t necessary have to come from a startup all though I realize Joel did mention it…
All though it is more likely that it emerges from s startup. Though not all startups are in trouble, we’re doing bootstrapping in addition to professional investors meaning we can basically go on FOR EVER without going Chapter 11. And we cover A LOT of ground EVERY DAY…!
The second assumption you’re doing is more crucial I think, since browser development has been slow the last 7 years you assume it’ll be slow the next 7 years. That is just plain wrong! The reason why browser development has been slow for 7 years was because IE crushed Netscape about 7 years ago which made them basically monopolize the browser market unless you count Opera’s 7 percent. This made the ROI on browser development for MS was basically evaporating, everyone HAD to use their “crappy monopolized browser” anyway…
Today the story is totally different, EVERYONE KNOWS that the browser is going to be the next “battleground for world domination” including MSFT…!
First of all you’ve got Opera with it’s 7%, second you’ve got Apple moving at the speed of LIGHT with Safari (7%), but most important of all you’ve got _FireFox_ which basically must feel like a Napalm bomb for the strategists at MSFT now adays…!
In fact the IE7 was started on as a “fire hose” ( funny
to stop FireFox from eating up their ENTIRE market and since the browser OBVIOUSLY is an extremely important part of MSFT’s dominance towards Ubuntu and Mac OS X they WILL continue developing it. In addition both Safari and FireFox are now fighting for world dominance on the browser market meaning that the “turtle race” we’ve seen for the last 7 years WILL emerge into a “cheetah race” for the NEXT 7 years…
In fact according to our weblogs FF is BIGGER than IE for developers. About 5-10 percent LARGER than IE is FF…
Now these are developers meaning not your average “grandma” but everybody “knows” that every developer brings 500 end users to the table…
Meaning FireFox WILL become larger than IE within some 2-10 months on average scale (if it isn’t already)
This will force MSFT into considering building a better browsing experience which again will force Apple and Mozilla to start moving even faster and so on…
A healthy competitive market (FINALLY!) again in the browser world after 7 years in the “dark ages”…
Just my 2cents…
Thomas
Comment by Thomas Hansen — September 24, 2007 #
Thomas,
Sadly I’m not as optimistic about browser competition. Even if there is a ton of browser competition, who cares? How long has it taken for Firefox to get even 15% market share in the US? We still need to support the crap browsers we have today for a long, long time.
Firefox has had developer mindshare for years, so I’m not sure where you are getting the ‘FireFox will become larger than IE within some 2-10′ months. Another way to look at it is that Firefox has already converted all users who are willing and capable to make the switch. Now we have to wait for everyone else to die or get new machines, and sadly that takes a long, long time.
Ryan
Comment by Ryan Breen — September 24, 2007 #
Brilliant rhetoric, unfortunately I still don’t agree with you
But that’s OK we can agree on disagree…
.t
Comment by Thomas Hansen — September 24, 2007 #
Thomas, the vast majority of browser users are completely unaware of any of the underlying technology. So why would they “upgrade” if things work when they click the big blue e on their desktop? They won’t because they aren’t interested
You are expanding the world of developers in your mind so that is much bigger than in reality and have cut out an immense number of people.
The only way to fast track improvements in browsers is if every influental products stop supporting last year’s browser, which will never ever happen in a competitive market. Backward compatibilty is a feature
Oh, and Joel is talking crap
Comment by ManGo — September 25, 2007 #
Word to ManGo.
Comment by Ryan Breen — September 25, 2007 #
Hi all,
I usually really like what Joel has to say, but in this case he is just wrong for several reasons.
There’s a factor in Web applications that is not going to change very much within the near future and that is the latency of the network. Shipping a number of javascript files (or doing a lot of requests in general) will make your web application to appear to be slow when someone how is a few thousand miles away uses your web application.
For example the latency from Europe to the US is usually between 100 and 200 ms (one way !) . It’s very unlikely that this latency will become much better because the speed of light is the limit at the end.
The latency even limits your up and download speed because TCP does handshaking.
Such an application would also never work very well on an device such as the IPhone. The latency on such a device is even higher and the bandwidth is very limited.
Also Moore’s law is coming to end and im not sure whether it ever was valid for the available bandwidth.
From a non technial point of view it’s also pretty clear that users will quickly go away from sites which are slow in the beginning. Those sites will never take off.
Regards,
Markus
Comment by Markus Kohler — September 25, 2007 #
Well, Joel’s answer is that new browsers would have magic caching technology to make all of the latency a guaranteed one time hit. I find that unconvincing for a number of reasons, with browser adoption lag being the largest. I’m also not a fan of the one time hit. By definition, that big performance hit occurs the first time a user experiences your app, so I don’t think it’s a great approach to expect all users to have a poor first impression of you.
Comment by Ryan Breen — September 25, 2007 #
I 100% agree with this article. I think Joel is wrong, and very obnoxious and arrogant. I think he is suggesting an approach, and a line of thought that is against the very fundamentals of all programming and development.
It seems to me that he appears to be new, and relatively unskilled.
I also think you’ve hit home with a key point here – “We are in a world where browser development occurs at an absolutely glacial pace, at least as far as the bulk of the installed base goes, compared to hosted application development.”
This is completely true and in a single line voids Joels entire idea.
Thanks for the article!
Comment by Gavin — September 25, 2007 #
Gavin,
Let’s not go crazy. Joel is anything but new or unskilled. In fact, if provoked, he can cloud our minds and haunt our dreams. Also, he is a shapeshifter.
Seriously, though, Joel may come off as a smarty pants from time to time, but he’s famous and widely read for a reason.
Ryan
Comment by Ryan Breen — September 25, 2007 #
[...] saw on the Ajax Performance Blog, where Ryan Breen was disagreeing with a Blog entry on how performance tuning is a waste of time. I [...]
Pingback by RockStarApps » Evaulate Low Level JavaScript Performance Characteristics — October 1, 2007 #