SpaceScript appears to be a way of getting XML data out of a SpaceServer and into an HTML page. Is that right?
DW: SpaceScript is a template based scripting language, as opposed to a programming language. That means the author of a template can embed a SpaceScript sequence into a variety of types of documents. Right now that includes HTML and e-mail, but there will be more soon. That makes it easier for the author because they can work in an environment they're familiar with. An HTML author can embed SpaceScript in HTML, somebody who works in MS-Word, can embed the SpaceScript to fill in a template written in Microsoft Word. That also means the author can get straight to the end product.
What challenges did you face in the creation of SpaceScript?
DW: Probably the biggest challenge was designing SpaceScript and the Builder API as general as possible and yet still maintaining performance.
What do you mean by 'general'?
DW: SpaceScript needs to be able to deal with any arbitrary XML hierarchy that it encounters. Let's say I want to get the company name out of an XML hierarchy. I can't just search through the whole datastore for that information. The datastore is huge; it would take forever to find a company name that way. So when we parse the XML we need to build structures that will allow the search to happen quickly.
And that process needs to be hidden from the user?
DW: Yes, hidden from the user, and the system needs to be general enough that it could apply to any kind of datastore.
What kind of enhancements do you expect will be coming to SpaceScript in the near term?
DW: We are continuing to work to improve performance. The present version of SpaceScript is a factor of three to ten times faster than our first prototypes. I think we can get speed improvements of a factor of five to ten times better yet in the near future.
In terms of functionality, we're working now to broaden the array of templates, to make SpaceScript available in more application environments. We have just added an e-mail package which, when imported, allows sending of e-mail from SpaceScript. We're doing Microsoft Excel now and are working on Microsoft Word as well.
So it'll be possible to embed SpaceScript in a Word document and get information from an XML base source displayed in a word processing environment, on the fly?
DW: Yes, that's the idea. Any destination format is possible, really, if there is a need.
What kind of people did you envision as SpaceScript authors? And how did that affect your design decisions in developing SpaceScript?
DW: We wanted to make SpaceScript to be as simple and as natural as possible. We wanted to work with concepts that were already familiar to people who would be authoring in SpaceScript.
We assumed a working knowledge of HTML and JavaScript. And because SpaceScript is an XML based scripting language, we had to assume a basic knowledge of XML. I mean, if you don't know XML, you're going to need to learn about it.
Could you compare the philosophy behind SpaceScript with JavaScript?
DW: JavaScript is much older and more mature. It started out as a scripting language, just to let you do a few things in HTML. But now it has its own object model and its really getting very big. It seems to be evolving into a language. SpaceScript is template based and is intended as a scripting language. It's a little bit more like how JavaScript looked when it originated than what it looks like today.