By Andrew J. Wozniewicz
Milwaukee, June 18, 2007
I have been very busy lately (like for the last year-and-a-half) with
completely non-related, work- and personal stuff, but I want you all to
know that WANT is very much on my mind these days. Here is what is
happening with it.
I must admit that I finally got tired of editing XML. It's a wonderful way
of transmitting structured information, and it works remarkably well as a
human-readable medium, but in the end, it is too cumbersome to use as a
scripting language. Part of the original attraction of XML was that it is
"standard" and relatively easy to parse, but the size and sophistication
of the scripts that I have to deal with is increasing, and I am starting
to feel like I should be programming in something approaching a civilized
programming language, not assembling XML nodes. As much as the idea of
executable XML is appealing, I think my scripts have outgrown it.
I looked into the current implementation of the "execution engine" in
WANT, and came to the conclusion that it is beyond minor repairs. Let's
just say that it has reached maturity and is ripe for a replacement. Lest
you think that I am just idly criticizing what others have done, let me
point out that this is precisely the sentiment that Juanca himself
expressed in these newsgroups some time ago, indicating that - had he had
the time or inclination to do it - he would replace the scripting engine
with something else, and salvage all the bits and pieces that are valuable
in WANT, of which there are many (integration with Delphi, integration
with DUnit, lots of different libraries, etc.) At the time, I was the one
objecting, saying that executable XML is kind of cute and
borderline-usable. Well, it turns out that Juanca was right (again), and I
am ready to embark on the very project he suggested, and I rejected.
I need the ability to properly evaluate expressions inside the script, to
call subroutines, pass parameters, and generally have the script look more
like a programming languge than like an XML document. While at it, it
might as well look more like a Pascal-like language, than something else.
There are several avenues that one might want to pursue at this juncture.
I was first thinking of maybe converting WANT into a COM-automation
object, which would open up the way to using Windows Scripting Host - with
its array of supported scripting languages. I think that this would be a
very powerful combination, but I am personally somewhat allergic to
COM/ActiveX/OLE/etc. I also realize that part of the attraction of WANT is
that it is a single executable that doesn't even need to be "installed"
(beyond being copied into a folder somewhere). So, I want to continue this
tradition - no install, no cumbersome auxilliary files, DLLs, no need to
configure anything. It Just Works.
Another idea that I was toying with was slapping a scripting engine on top
of WANT. There are several free implementations of various flavors of
"Pascal Script", for example, out there, and it should be possible to
incorporate one of them into the project. That's always an option, but I
have ultimately decided that I am going to re-invent the wheel (hey, I am
a programmer, after all), that is, create a scripting engine specifically
For lack of a better name, I call the new language WANTScript, an easy
scripting language that will replace the current XML "scripts". Now,
before you panic, I would like you to know that - if I do end up creating
it - I will also provide a tool that translates the current XML stuff into
WANTScript, so that you can seamlessly port your existing XML scripts. I
think that this should be possible.
To conclude, WANT is in for a major overhaul. The current version, which
has somehow never reached the 1.0 release stage, is no longer going to be
enhanced or further developed. Instead, hopefully under Juanca's watchful
eyes, and maybe even with his help, I will be working "full-speed" (this
is a personal, after-hours project for me, so, please, be patient) on WANT
2.0. Wish me luck.
P.S. There is an active discussion of the direction WANT 2.0 should take at news://news.optimax.com/sdforum.want