Over on XML.com, David Peterson gives Microsoft some well-deserved thanks for implementing and popularizing the XMLHttpRequest object that’s so useful in modern web development. He also thanks them for not charging for it, but of course, if they had tried to charge it never would have become popular (from SAX, I know that paradox well).
Omissions
There are a couple of problems with giving thanks to inventors, though. The first is that you inevitably leave people out. David, for example, thanked Microsoft for all of AJAX and modern web development in general. AJAX doesn’t consist solely of XMLHttpRequest, however; it also needs JavaScript and a DOM (both pioneered by Netscape) to manipulate the client display, and something like XML (W3C) or JSON (Douglas Crockford) to encode the messages. Most modern web developers also want CSS (Håkon Wium Lie and Bert Bos). And then, of course, there’s HTML and HTTP (Tim Berners-Lee). To illustrate my point, I’ve certainly left out a lot more that I could have included here, and have likely misassigned at least some credit.
Death of the inventor
The second problem is that it almost never makes sense to assign credit to individual people or companies. Who should get credit for SAX? Me, because I coordinated it? James Clark, because I based many of the ideas on his earlier SGML interfaces (and he suggested many of SAX’s features)? Tim Bray, because he thought up a catchy name? The other dozens of other xml-dev members who contributed most of the core ideas? The major software vendors who actually decided to use SAX, giving it credibility outside of the xml-dev community?
The same applies to just about every other technology we use. Not only do they depend on other innovations (the Web without TCP/IP? SAX without XML?), but the successful innovations are almost always simple and obvious, so their main value comes not from any particular technical brilliance but from the brute-force fact that lots of people use them — in other words, community-building is more important than innovation. Microsoft imitated Netscape’s level-0 DOM, and then the W3C standardized it so that it would work across browsers, then browser developers agreed to follow along, then web developers decided it was safe to start using it. Microsoft initially failed to build a community for XMLHttpRequest (which was a proprietary ActiveX component), so it languished mostly unused for years, until other browsers like Mozilla/Firefox, Safari, and Opera decided to support it as well — it was only then that we started to see a real community grow, and high-profile sites like Gmail and Google Maps take off. Tim Berners-Lee’s original HTML would hardly have mattered if the early Mosaic browser hadn’t shown how to make it user-friendly. Etc., etc. While Netscape introduced some good ideas like the DOM and Javascript, they also introduced some that flopped (does anyone else remember CORBA in the browser?) — no community of users, no success.
Thank the users
The moral of the story is that technology success is not something that a person or company gives to the net, but something that comes back from it, as if you threw a stone at a tree without knowing whether an avalanche of silver or of bird dung would shower down from the branches onto your head. A complex, brilliant idea with no users is worthless; a simple, mediocre idea with lots of users is a treasure.
The post was made because of what seemed blatant disregard for the fact that it was Microsoft that originally developed the technology that the XMLHttpRequest Object specification was attempting to bring together the various implementations since then and make an after the fact specification to help bind them together. There were more than several posts before mine from folks at MS who were more than a bit upset by the fact that they didn’t even get so much as a mention for what they originally pioneered. Whether they blew it off because people weren’t using it all that much, only later to be brought back to life by Mozilla is not justification for suggesting they shouldn’t at very least be given credit for the development of the object that everyone else would later implement themselves, to then popularize.
Also, its DHTML that is of significance here. DOM is a W3C standard that MS had a part in developing and implementing. Netscape may have originally pioneered the original idea, but the original idea compared to its more modern day equivalent are not even comparable. DHTML goes beyond the DOM and brings together the events model that allows for all of what AJAX is capable of in the first place.
So whats your point, David? It’s okay to ignore those who pioneer technology because they decided that because nobody seemed interested it wasnt worth attempting to market it a bit more?
Credit IS deserved for what they brought to the table. They were left out of the credits, and as we have come to discover since then, this was a clerical error… Which in many ways was EXACTLY what I had hoped to uncover with the post in the first place.
Did I do that? Yep. Is attribution a reasonable request from those who pioneered a technology? Yep.
So whats the problem?
Thanks for the comment, David. Like you, I’m glad that the problem with the W3C spec was a clerical error — MS definitely deserves to be in the credits list — but at the same time, it’s very arbitrary how we choose who should get credit for innovations and inventions, whether it’s Tim B-L for the Web, Linus Torvalds for Linux, or (on a much smaller scale) me for SAX.
You pointed out nicely the problem with DOM — Netscape invented it, but you’d prefer to give the main credit to the W3C and MS for adding the events model. That’s fair enough, but it’s worth recognizing that others might just as reasonably prefer to give most of the credit for XMLHttpObject to the Mozilla, Safari, and Opera people, who took what was a proprietary, MSIE-specific ActiveX control that almost no one used and found a way to make it cross-browser, cross-platform, and reliable, while staying almost 100% compatible with MSIE. I’m neutral on both questions myself, because (as I mentioned in my posting) I don’t believe that it usually makes sense to give any individual or company the main credit for something like this — it’s always a shared process.