Ming the Mechanic:
XML pipelines

The NewsLog of Flemming Funch
 XML pipelines2004-01-04 11:06
2 comments
by Flemming Funch

Jon Udell talks, also in an article in InfoWorld about how the Unix way of doing things might at some point merge with more user-friendly the way normal users expect to do things. Through XML.
"I've always blended the geeky, command-line-driven Unix style with the mom-friendly point-and-click Windows approach. To borrow a Microsoft slogan, the two approaches are "better together." Each has strengths that complement weaknesses in the other. However, we've yet to achieve real synergy."
Now, Jon Udell happens to be particularly good at making things fit together. He wrote an excellent book, Practical Internet Groupware which outlines the approach of using stuff that already exists and works well, and which can be linked together modularly. So, in terms of making groupware, instead of suggesting starting from scratch and building a huge monolithic piece of software, he suggests connecting together rather ancient, but well-functioning, protocols like SMTP (mail), NNTP (newsgroups) and IRC (chat), and doing rather low-tech things to make an integrated system with them.

So, for those who haven't ever used it, let me explain briefly what the original Unix philosophy was. Lots of small programs would do small specialized tasks very well. To do more complicated things, one would connect them with each other. Like, you'd have a program called 'sort' which does nothing but sorting text files. And it doesn't have any fancy interface or anything. You just connect some text to its input pipe and the result comes out its output pipe. Which you can connect up to something else. So any Unix guru worth his salt can make a one-liner that takes the contents of some file, finds all lines that include some particular word, split off a couple of different columns from those lines, sort them all alphabetically, zip up the results in a compressed file, and mail it to somebody. That's one line, and not a very long one.

That's quite a splendid way of doing things. But almost a lost art, and not for any terribly good reason. I have it running under the hood in my OSX of course, so it is there. But why don't we expand the same idea to more areas? Why don't I have a bunch of modular lego bricks to do all the things I could think of doing with the net and with my information? Are there new ways we should accomplish something equivalent today?
"It's clear that that the future of the Unix-style pipeline lies with Web services. When the XML messages flowing through that pipeline are also XML documents that users interact with directly, we'll really start to cook with gas. But a GUI doesn't just present documents, it also enables us to interact with them. From Mozilla's XUL (XML User Interface Language) to Macromedia's Flex to Microsoft's XAML, we're trending toward XML dialects that define those interactions.

Where this might lead is not so clear, but the recently published WSRP (Web Services for Remote Portals) specification may provide a clue. WSRP, as do the Java portal systems it abstracts, delivers markup fragments that are nominally HTML, but could potentially be XUL, Flex, or XAML. It's scary to think about combinations of these, so I'm praying for convergence. But I like the trend. XML messages in the pipeline, XML documents carrying data to users, XML definitions of application behavior. If we're going to blend the two cultures, this is the right set of ingredients. "

Now, I don't understand WSRP, XAML or XUL. And I have sort of a problem with most things done in XML. That it usually ends up being very complicated, and it takes days of study to do anything. XML is simply a uniform way of structuring data. That's a good idea of course. But doesn't magically make all XML talk with each other. Maybe because there are some other tools with strange acronyms that I don't yet know. Maybe because I'm not smart enough to understand the whole point. It seems like it all should be as simple as the Unix pipes. Connect the output of one service to the input of another, and string a few together and you can do anything. But, despite that I'm a techie and have read books about XML and use some XML based protocols in some of my own programs, there's nothing I can think of that I can do quickly that comes remotely close to the simplicity of the Unix command line. Seems like most of the interfaces that use XML do their own different thing, and you have to study for a while to figure out what is available before you can access it. Anyway, maybe I'm just revaling my own ignorance. But I hope that he's right, and that some kind of convergence will happen. I want to use all programs I have access to as modular building blocks, and of course data should be able to pass from one to the other without having to write big complicated conversion programs.


[< Back] [Ming the Mechanic]

Category:  

2 comments

7 Jan 2004 @ 16:59 by Seb @156.34.16.232 : Feed algebra
Ming, have you had a look at my post on RSS feed algebra? I think that was inspired by the same philosophy.  


7 Jan 2004 @ 17:06 by ming : Feed Algebra
Ah, indeed, I missed that one. Cool. Let me say something about that.  


Other stories in
2014-11-01 17:33: The conversation of work
2007-02-24 14:20: Writing books in HTML/CSS
2007-02-05 15:21: Software is hard
2006-11-19 21:30: Thingamy
2005-12-14 15:15: Ruby on Rails
2005-03-19 16:04: Comment and Refererrer Spam
2005-02-23 21:34: Wikipedia
2005-02-22 17:32: Mail
2005-02-10 16:00: More Google wizardry
2005-02-04 15:14: The Six Laws of the New Software



[< Back] [Ming the Mechanic] [PermaLink]? 


Link to this article as: http://ming.tv/flemming2.php/__show_article/_a000010-001027.htm
Main Page: ming.tv