XML has many advantages for an ASCII standard for code interchange. One is that it is easy to extend. More important, it is a standard that is already important and will be increasing in importance. If Smalltalk code is in XML then it will be easy to find it with web search engines. Ensuring that every version of Smalltalk can read and write Smalltalk code in XML will help ensure that they all can handle other forms of XML, as well.
Several of the dialects of Smalltalk already have a way to read and write code in XML. Of course, these are probably all incompatible; just using XML is not magic, you've got to have a common DTD (schema). The dialects that have a way of reading and writing code in XML are:
- VisualWorks 5i (here is some sample code)
- SMIX is for Squeak but is supposed to be portable
The ASCII standard for code interchange (SIF) project is trying to get something up quickly that we can use for Camp Smalltalk. The purpose of this project is to provide for the future of Smalltalk. XML is quickly becoming as standard as ASCII, and so it makes sense to use it for any ASCII standard.
Although not (yet) an official Camp Smalltalk project, Rosetta does all of this - and more - already. Joseph Pelrine
XML does have its costs. An XML parser will be more complex (and more likely slower) than a specific system like SIF to represent Smalltalk code. The XML parser in VW 5i contains about 50 classes! Even if all versions of Smalltalk had an XML parser it still may be easier to use SIF. Roger Whitney
I would be interested in this but will not be able to come to the camp. FrankGerhardt, fg@acm.org.
I'd love to work on this. I know only some basic things about XML, but working on what has to be in the DTD, I think I could contribute to that.
Peter van Rooijen
A simple design for code interchange
A DTD for Smalltalk
A model of Smalltalk programs
If you want to work on this, sign up for the Smalltalk Program Model for Interchange and then make sure that you write an XML reader/writer before the end of the week. The projects are 90% the same.