WANT 2.0 Requirements

WANT is currently undergoing a serious overhaul. Here are the goals of the WANT-refurbishing project that will result in a release of WANT 2.0:

  1. I WANT the full power of a programming language behind WANTScript. This means, at the very minimum, support for loops, conditionals, and subroutines. This is currently completely lacking.

  2. I WANT to decrease WANT's reliance on declarative mode of programming, in favor of plain old procedural mode. I am a Pascal programmer, with a passionate dislike of functional languages and style of programming , even though I do recognize their power in some applications. Consequently, I don't WANT to waste mental energy when having to switch to another mode of thinking (declarative) when writing and maintaining build scripts. WANT is a tool that should not stand in my way.

  3. I WANT the scripting language of WANT to resemble Pascal in spirit, but also be an improvement that makes it easier to write build scripts than it is to write Pascal programs. Otherwise build scripts should be written in Pascal. This requirement rules out using Pascal itself as the scripting language.

  4. I WANT the scripts written for WANT to be easily readable and maintainable. I WANT them to be easily readable and intuitively maintainable by Pascal programmers. This rules out a language that requires lots of squiggly-braces or weird symbols. The Pascal-style assignment operator ":=" is as weird as I'm willing to get.

  5. I WANT to make WANT Scripting uniformly consistent and intuitively understandable to a programmer, especially a Pascal programmer, so that it does not take much thought at all to make extensions to even a non-trivial script. I WANT a Pascal programmer, who has never seen WANT Script before in his life, to be able to maintain and extend a non-trivial build script after looking at it for all of 5 minutes.

  6. I WANT to make WANT easy to extend for a moderately competent Pascal programmer, making possible the adding of new tasks and elements without having to consult extensive manuals, the original author, or gobbles of source code to decipher how it works. Once a programmer knows how one task works, it should be possible to extend WANT either by incorporating a new task into its code base, or by hooking up to an external resource, with minimal coding.

  7. I WANT WANT to be able to easily bind to scriptable COM objects within Windows directly from the script, without having to create custom wrappers in Pascal.

  8. I WANT WANT to remain a single executable for distribution, but to enable it to hook up into external DLLs containing functions and objects.

  9. I WANT to improve the readability and structure of the WANT code-base itself, in order for any programmer-user to be able to easily extend and tweak it, if needed, without having to consult Juanca or me before each change. This would probably involve freeing WANT from dependency on some of the libraries it currently uses.

  10. I WANT to have fun while refurbishing WANT, and even more fun using it "in production" afterwards.
Andrew J. Wozniewicz
Milwaukee, June 18, 2007

Last updated August 5, 2008 (cleaned up spelling and made a few minor edits)