Aliens or Micro-Organisms
Monday, January 25, 1999 by Dave Winer.
A funny thing happened last Friday as I was writing an email on my Windows NT laptop. The U key stopped working! I didn't know if it was a hardware glitch or a software problem, so I rebooted the machine. This was a mistake because my password has a U in it. So I can get at the files on my stinkin laptop (file sharing is a "service" and runs even if you're not logged on) but I am writing this on the old "Betty" server which is now my main machine.
Oh how it hurts my head! I had gotten so used to that little laptop. Oh well, I guess new braincells are forming and others are dying. I don't like it, but it's giving me a new perspective and I think it's making me smarter.
Over the weekend the Script Meridian community list sparked up. It had been quiet for a long time, I don't know why, but it's definitely not quiet now. I took this opportunity to tell the Script Meridians, who are mostly users of Frontier, what UserLand has been doing in the latter part of 1998 and early 1999.
Last fall was when *we* went quiet on our new direction. It's part of our slow-down-and-get-it-right philosophy. Well, some of the results are available now, and I outlined them for the Script Meridians and it occurs to me that DaveNetters might be interested. If so here's the link:
I'll be writing more about this for sure, some of it even in this piece!
Shortly after writing my Let's Get Technical! piece, Jeremy Allaire got in touch, as did Esther Dyson (thanks Esther!) and we're now moving forward on bridging XML-RPC and WDDX.
I don't know if this is the reason why, but shortly after this piece, our interchange format, XML-RPC caught fire, and now there are full client/server implementations for Python, Perl, Java and a client for ShockWave.
I have hopes that we'll get an endorsement from a major platform vendor shortly, we're working on it, so things keep moving in XML-Land, and that's good! And we're looking forward to working with our new friends at Allaire to build compatible bridges with Cold Fusion and the other environments they support with WDDX.
At the same time on the Script Meridian list, Lynn Siprelle, who's a great conversation starter, asked a question that piqued my interest. What I want to know is: HOW DID YOU LEARN TO DO THE COOL THINGS? Did you just wake up one morning and find you'd been injected with micro-organisms that implanted the information in your brain? Did a guy in a trenchcoat walk up to you at Starbucks one day and slip you a mysterious zip disk? Did you see the URL for the Super Secret Basic XML Cookbook written on a telephone booth wall? Are you married to an O'Reilly editor with inside information? WHAT?
Injected with micro-organisms! Man I love that idea. Know where I can get some?
Lynn, seriously, thanks for asking. I actually owe it all to Adam Bosworth at Microsoft. In 1997 he made two trips down to see me to show me what he thought XML was going to do. On the second visit we opened up the Frontier 5 object db outliner, and played around with building an XML tree in the database. It looked good. I made my decision right then and there.
As far as why it's important, and how I knew it would be (or why I believe it will be), it's simply that interchange formats are important. The first one I worked with was DIF, Data Interchange Format, which was the format that VisiCalc used. Then there was RTF, Rich Text Format, which was the format that Microsoft Word used. Then we did our own, called Dot-Head, which was the way of moving information between our outliners at Living Videotext.
Even HTML can be an interchange format. Early versions of Netscape stored bookmarks in HTML and parsed them into a menu when it booted. That was different from using HTML as a display format, although you *could* display the bookmarks in a browser if you knew how to trick it into doing it.
There's a long history of using text-based formats to represent information that's stored inside a program in binary structures. In a sense, this is what I do, take text and turn it into binary structures, and spit out text.
XML is a grand vision. It says that instead of having a billion incompatible text interchange formats, let's have just one. Did I understand the appeal of this immediately? Yes. Why? Because I know that users want to move stuff between programs. Did I believe in XML when I first heard about it? No. I thought it was going to fragment into a billion different dialects and that supporting XML was silly, because except for a few syntactic similarities XML was destined to be fragmented. Do I believe now that XML will unify into a single interchange format? Maybe. Human nature hasn't changed. People still like to blaze their own trails, and forget to look to see if anyone has gone down the path before them. Big companies think the world revolves around them, and little companies do too. This is how billions of incompatible formats come into being.
But there's cause for hope! What's amazing about XML-RPC is that it's catching fire *right now*, in a bunch of diverse communities. In the last week, Python and Java came on-line with both clients and servers. Yesterday a Shockwave client. And the Perl version was taken out of mothballs, and of course the Frontier version keeps on ticking.
What Bosworth showed me was that at least at part of Microsoft got the idea that they could take a back seat to defining the formats and support it with their software. He challenged me to overcome my objections and give it one more try. I decided to do it because I was 42 years old, and was pretty sure that in my career I wouldn't get another chance at doing this.
I see XML as potentially the Ice-Nine of the software world, that if it's properly supported and understood, that lock-in disappears. I know that many Frontier users will get what they want, for example, a way to deploy dynamic Frontier-managed sites on various flavors of Unix. I think it will suck the greed out of the software business, and allow users to have real choice, and make the big companies relevant only if they produce excellent software. I admired Microsoft's courage at being willing to operate in such a world.
At least we'll have a way to move stuff between Frontier, Perl, Python, Java and the other environments that get servers. So it was worth it. Will we get IBM, Oracle, Apple, Sun, Macromedia and Adobe to care about compatibility with Frontier, Python, Perl and Java? Well, maybe, you never know. It ain't over till it's over, right? We'll see.