So I’m wading through this book Perspectives on Web Services, which is a crash course in SOAP and XML and WSDL and so forth. There’s some annoying biz-verbiage up front that tries to sell the book to the Pointy-Haired Ones and the drooling consultants that are probably the book’s target market, but other than this the book is fine. Well, the writing is clear and they managed to find an editor who understands how to typeset code (use a tt font, don’t wrap lines, don’t have five pages of code that you could just grab from the web anyway). So in physical form and delivery it’s a fine book.
But I can’t fucking stand what they’re doing to computers.
SOAP starts out bad and gets worse; it’s like a joke gone too far. “Let’s see how inefficient we can make RPC. Would a GUID-per-call be over the top? How about we translate everything to . . . UTF-64 and down-convert to Morse code! Wait, wait, we use these GIF photographs of people waving flags at each other from hilltops, one for each datagram bit, and for the checksum we have them do an intepretational dance of the packet payload. Each side does image recognition, and on top of this we layer the Esperanto spoken equivalents of ASCII. With an optional MP-3 encoding for the blind, of course.”
“What is that other side saying?”
“Um … BACK … LATER … OUT … BUYING … FASTER … COMPUTERS.”
“Yeah, baby! Our protocol f-ing rocks!”
That’s cozy, abstract and flexible interoperability for you; typical of protocols designed by Java-heads who have never seen a machine instruction in their entire careers (“What do you mean, add-with-carry? Don’t the magic arithmetic fairies handle all that stuff?”) But after reading various XML-related resources on the web, I get really, really frightened. I want to go curl up in a corner with my copy of K&R and a PDP-11 instruction set. These people have no clue about what something costs.
There are people out there who think that XML is a fine vehicle for a scripting language.
<add argument="3"><times argument="4"><value value="5"/></times></add>
Look, people. Smalltalk-76 ran fine on a 256K machine in the mid 70s, including the whole stupid bitmapped display. Today, most systems can’t find their way to print “Hello, scumbag!” to a window in that amount of space.
As I write this I have a toddler on my lap who has the same level of understanding about what’s going on under the hood of all this stuff (the meshing gears down there in parsing, memory management, network traffic and so forth) as the folks who write at this level (“Ooooh, pretty pixels”). Okay, I know you’re not supposed to get bent out of shape about how many bits and bytes things are taking (the last time I had to truly worry about that was an embarrassingly long time ago). On the other hand, it’s just wrong to pretend that this stuff is free. Abstractions are supposed to buy you something, an abstraction that you pay for that doesn’t give you measurable benefit is a rotten deal.
The Portable Curmudgeon