Perl and XML
Monday, March 23, 1998 by Dave Winer.
Today I have a technical tale to tell.
Early in the 90s, Apple had a good idea called the Open Scripting Architecture.
It was a good idea for two reasons. First, it said that scripting would play a large role as the Mac OS went forward. And second, it said that script writers could have a choice of syntax.
History has proved them right, on both counts. The Internet is built around scripting. And choice of syntax is an even bigger issue today than it was in the early 90s.
But Apple's OSA didn't catch on because it's very much a Mac thing. It built on the Apple Event Manager and the Component Manager. I think this stuff became part of OpenDoc, and was lost when OpenDoc was cancelled. I'm not sure. But one thing's for sure, if these protocols have been implemented elsewhere, they are not popular outside the Mac.
Therefore, just as the push to do RPC over HTTP via XML has the potential of getting COM, CORBA and Apple Events to talk to each other, an open cross-platform scripting architecture holds the promise of bringing together cultures from every nook and cranny of the software business, from mainframes to handhelds, from graphics people to the folks who keep the Hubble telescope humming.
I think the benefits are obvious.
I want Perl to run in Frontier!
I want it the same way Homer Simpson wants donuts.
My eyes roll to the back of my head.
My tongue wags out of my mouth.
I lose consciousness for a moment.
Now the Perl guys, our friends at O'Reilly, are talking about making Perl the ideal scripting language for XML. I support that, because I want XML to be everywhere, and Perl already is in a lot of places.
But I wonder if there isn't some way they can leverage our ground-breaking work in XML databases, and get the Perl community up the hill as soon as possible, as strongly as possible, instead of waiting for them to reinvent what we already have working.
We're in a unique position because we already have a database that's well-suited for storing XML structures, and it's integrated with our scripting environment and tool and verb set and multi-threaded runtime.
There's one problem that could neatly be solved by an open OSA. Our environment only runs our own language on Windows, and Apple OSA languages (a very small set, mostly Frontier and AppleScript) on the Mac. We want to offer a choice of syntaxes everywhere.
The answer is one I think the Perl guys can support. Let's get together a group of the best designers and developers of scripting languages and environments and work out a common protocol that works on and across all popular OSes (HTTP based?) that allows script interpreters to hook into all flavors of tools and runtimes.
Our motive should be clear -- we want all the popular languages to run in our world, and we want to do as little work as possible. In return for not having to do a lot of work, we're willing to invest in an open standard, so our software can be replaced by others who wish to compete with us.
I think the answer is an open cross-platform scripting architecture.
What do you think?
It's a fast pace these days.
But there's barely a chance to mention it.
Gotta get back to work.