Revolutions are not imposed from above.

by Charles Miller on April 2, 2003

XML, WSDL, UDDI, but mostly BS.

—with apologies to the Disposable Heroes of HipHoprisy.

I'm engaged in a running battle with my father over web services. He believes in them. I don't.

As anyone who has received an e-mail from me recently can see, I was born in 1975. My consciousness, as far as the universe of computing goes, was born in the early 80's. When I was born, my father was working for IBM. Since then he's been through several computer companies, big and small. For a while, around the time MS-DOS 6 was new and interesting, he was managing director of Microsoft Australia, but that's another story.

I admit I'm young, but I've never seen a computing revolution imposed from above.

The revolution will not be load-balanced by Akamai
Across huge server farms to maintain the proper bandwidth.
The revolution will not bring you .jpgs of Bill Gates
Giving a Powerpoint presentation with Steve
Ballmer, Jeff Raikes, and Craig Mundie to demonstrate
How .NET will change your computing experience.

The revolution will not be webcast.

The Revolution Will Not Be Webcast, a Slashdot comment.

The personal computer? The Internet? The web? Trace the threads back, and in each case you find a bunch of enthusiastic nerds. You find a technological base that made people think “Wow, cool!”, and on top of that wonders were created. It doesn't work the other way, of course, you can't just bet on any “Wow, cool!” technological base and bet you'll be the next Marc Andresson.

In fact, it'd be unfair of me to list the failed attempts at industry giants to impose revolution simply because each could be countered with an underdog, grass-roots technology failing to achieve the same thing.

Even Apple, who are ultimately responsible for the popular adoption of many of the major advances in personal computing (while they didn't invent the GUI, WYSIWYG, desktop publishing, or more recently, stylish hardware, they've introduced each to the general public), have always done so from the underdog's position.

P2P came from a bunch of people who wanted to send messages to each other, and was cemented by people copying music. Grid computing arose from a bunch of nerds who wanted to boast about how fast their computers were.

What I'm yet to see, is a revolution imposed from above. I'm yet to see the big companies that control the industry saying “this will be the next big thing”, and have them be right. I've seen them occasionally muscle their way in on the next big thing post facto, but they've never been there a priori. Revolutions always solve the problems of implementors. People trying to impose revolutions are always looking to solve their own problems first, which are generally out of step with the people they want to use their products.

Look at Java, recently described on Bruce Eckel's weblog thusly, citing Paul Prescod (Update although it seems that the speech was actually given by Paul ‘If it's not LISP, it's not a real language’ Graham): “He called COBOL and Java neanderthal languages that have no descendents on the evolutionary tree.”. Java has great libraries and right now, great momentum, but it's a dead-end. It has no future. It has nothing to evolve into. Its only likely long-lived descendant is C#, a language that, if it survives, will do so for the same reasons that Visual Basic survived so far beyond BASIC's use-by date.

This is the source of my disquiet about Web Services. Microsoft are telling me they'll be big. IBM are telling me they'll be big. Some very respected developers are enthusiastic, but most are sitting back wondering what the fuss is, and have been for three or four years now. The momentum just hasn't gathered. SOAP and XML-RPC are both great solutions to a particular range of problems, but we're just going to have to face the fact that the chance of them becoming a revolution, as promised, are slim.

Shortly, some technology is going to appear and blow my socks off. But it's more likely to appear in some experimental corner of JBoss 4.0 than it is in J2EE 1.4 or in .NET. And it's quite likely going to appear in Python or Ruby, or even coded in C by some college student or lab assistant who has thought of a really neat way to solve a real problem in the real world, and wants to share that solution with the rest of us. And we'll take it, and use it in ways the inventor never dreamed of. That's where revolutions come from.

Previously: Thread.run()

Next: Quote of the Day