Just sat down and watched Alex Russell's talk at Google I/O (from the end of last month) on the state of the browser, entitled Can We Get There From Here? As always, Alex did a great job of weaving the disparate factors in play (and the weird, tweaky specifics that come along with them) into an interesting and understandable whole.
A few comments I thought worth jotting down -- maybe nits to pick.
Where is "there"?
In the talk, as in previous blog posts, Alex talks about all of us Web devs wanting "new stuff in the browser," and wondering who we need to bug to get it in there. He rightly points out that we can't count on the standards bodies to drive the process of innovation forward.
I'd like to qualify the Christmas wish-list desire for "new stuff" in the browser by pointing out that what we all really want is "the same new stuff, in all the different browsers the users actually use."
The competition from multiple browsers is messy -- and granted, the standards bodies are an actual drag on the innovation process -- but they force the various players to decide together which "new stuff" goes in, and what that new stuff looks like.
The alternative is the monoculture like Microsoft gave us in IE (and, one could argue like Adobe/Microsoft are trying to do with Flash/Silverlight), that lets us do a lot of cool stuff really quickly and conveniently -- until the last credible shred of competition is killed off, and we see years pass with no new features appearing.
In the talk, Alex mentions in passing that he wonders what such a monoculture would look like if it were an open-source browser.
I wonder if such a thing is even possible, given the openness, and the freedom (or, some might argue, the constant urge) to fork inherent in the open-source development paragdigm. All it takes is a couple of really smart guys with an opinion to create credible competitive pressure -- and we all know there's no shortage of those guys in open source. GNOME or KDE? Ubuntu or Fedora? Suse? Everybody's got a slight variation of the idea that they think is better than the others.
How fast are we getting there?
We all feel the need for speed -- that satisfaction of taking advantage of a cool new feature we haven't gotten to use before in our apps. "Oooh, look at the shiny!"
But it's worth pointing out that one of the reasons Web development has become so ubiquitous, and gathered such momentum behind it, is paradoxically because of that weirdly long period of statis after Microsoft squashed Netscape, when IE stagnated.
I was building browser-based app UIs during the initial round of browser wars, and it was kind of confusing keeping up with the browser revs and their competing, kind-of-overlapping, non-standard new features.
I don't exactly get all misty-eyed at the thought of all those "document.layers vs. document.all" branches in the code, and I'm a even a guy who's actually excited to get the "new stuff." Think about the corporate IT types -- in large organizations, change is expensive, no matter if some guy is telling you there's a big load of awesome in that change.
In some big companies, even rolling out a new version of IE is a huge deal (Hey Oracle, are y'all still sticking with IE6?) -- back in my days at KnowledgeWire I can remember dealing with the inevitable surly corporate IT types who balked at the idea of even rolling out a new version of the Shockwave plugin. Not a whole new frigging browser, just a plugin.
Auto-update is great and all, but behind a big corporate firewall, all bets are off, because change is a pain in the ass for these guys.
Again, the standards bodies aren't exactly playing Prometheus of Innovation, bravely bringing the fire of "new stuff" to mortals, but they provide a safe, measured rate of change that the IT guys can point their bosses to -- "Hey look, this 'JSON' thing is an IETF standard." With that to point to, the likelihood is lower they'll get shitcanned if something horrible and unforeseen happens during the change.
View Source as the signifier
Alex mentioned the idea of Ctrl/Cmd+U for viewing the document source as a possible benchmark for conformance with the idea of "Webishness," contrasting that with Flash/Silverlight apps that are basically big ol' binary black-boxes.
I think it's worth being a little more specific and possibly replacing the simple View Source benchmark with the idea of "decomposability."
Even Ajax-heavy Web apps with nothing but "head, script tags, body" are stlll put together out of plaintext, and can be taken apart pretty easily to see how they tick, using either normal text editors, or freely available browser extensions like Firebug or the Web Developer Toolbar.
Sure, there's View Source -- but there's also View Generated Source. Nothing like that exists in Flash/Silverlight Land. (Okay, so it's really a continuum with stuff like decompillers way, way, way at the other end, but those aren't things you can expect normal humans to use.)
That kind of decomposability is actually another thing that fosters the development of that bustling bazaar of workaday devs that Alex talks about, making all that noise at the base of the ivory tower and irritating all the hardcore-developer dudes inside.
In fact, the simple fact of being able to take stuff apart with free tools gives any of those workaday dudes with half a clue and some persistence (okay, and the ability to read and follow instructions) entre into that tower.
That's right, you don't have to have a degree, or know the secret handshake or anything, to do this stuff (douchebag comments from disgruntled drama-queen developers notwithstanding). In fact, you can even have an English degree, or something stupid like that.
So the real importance isn't whether there's a lot of stuff right on the page to look at when you do Ctrl/Cmd+U -- sure, that's an easy and obvious indicator of the height of the barrier to entry -- but a more meaningful question is "can you take it apart?" and "how much do the tools cost?"
Alex really did an incredible job of distilling a bunch of really complicated stuff down into something digestible. If you have about an hour, and are interested in where we're headed with browser-based apps, you owe it to yourself to check out his talk.
A final quibble
NT4 actually shipped with IE2, not IE3. I don't remember anyone actually using it, but that's what was on the installation CD.