I like to read Joel's stuff. But sometimes I disagree wildly, and this is one of those times.
He makes several points, one of which makes a bit of sense.
just build cool stuff, and wait for the hardware to catch up...we don't care about performance or optimization much anymore.
There's something to that. Remember when people cared about html page size?
Then Joel goes straight off the deep end.
So if history repeats itself, we can expect some standardization of Ajax user interfaces to happen in the same way we got Microsoft Windows.
His supporting arguments for this are:
There are a buncha-buncha ajax frameworks out there, all of which do the same basic stuff
An anecdote about Lotus and their 3D spreadsheet.
The lotus analogy is stupid as hell. Lotus went down because they pursued a terrible idea. 3D Spreadsheets?! Are you kidding me? The only connection with Moore's law was that it prevented them from seeing how bad the idea was. The bad idea itself was to blame.
If GMail ever tries to do 3D email, they deserve to lose all their users. If some ajax framework decides to focus on 3D widgets, it will quietly be abandoned.
A more interesting point is the observation about lots of ajax frameworks. Joel is right, but he's needlessly anxious.
I've done real work with 3 of the frameworks (Mochikit, Prototype and YUI), and I've learned they really are doing basically the same stuff. You can port things between them rather fast.
Joel spends a lot of time talking about a super-framework, a "newSDK", which would make all others obsolete by ushering in a new era of beautiful interactivity.
Won't happen. Such a hypothetical uber-SDK will remain hypothetical.
It's true that the dream of effortless interactivity could be realized by such an uber-API. But too many people are doing too many different things in too many different ways. And new stuff gets invented all the time that falls outside the limits of prior understanding.
Not that it stops people from trying for the uber-API gold ring. Adobe and Microsoft (and Sun, ha ha) all have a horse in that race, with AIR, Silverlight (and JavaFX, ha ha ha).
Ironically, it's the very desire for such an uber-API that creates the competitive forces which block its adoption. I can imagine the folks at Adobe saying "you microsoft SOBs, could you just for once not try to eat everyone's pie and leave us alone with this AIR thing? We just want all the users to enjoy a nirvana of interactive bliss!"
I think the best hope for progress (slow, incremental progress) toward the glorious dream is by defining simple ways for non-uber APIs to communicate and do common things. Not-so-exciting stuff, like XML. Like MySQL. Like svn. Like unicode. Not very profitable either - at least, not directly.
I think compelling standards will emerge. But they'll be the kind of standards that javascript frameworks evolve to support - not the kind of standards that replace javascript frameworks.
It's also worth remembering the hardest problems are human, not technical. For a brief period of time, there was awesome interactivity in MS Outlook. And then people started writing email viruses, so we turned that interactive stuff off real quick.
The biggest reason we don't have automatic great stuff is that we don't want automatic bad stuff. Yin and Yang, balance of the universe, etc.
"Lotus went down because they pursued a terrible idea. 3D Spreadsheets?! Are you kidding me? The only connection with Moore's law was that it prevented them from seeing how bad the idea was."
Yeah. Nobody wants pivot tables.