Cameron Laird's personal notes on scripted documents


Jean-Claude Wippler invented scripted documents and deserves considerable credit for pursuing them despite the initial indifference of others. His paper for the year 2000 Tcl/Tk Conference is the best introduction: over 7000 words of lucid, informed, and enthusiastic exposition. Among its highlights:
... they make deployment fun!

Scripted documents rely on a simple mechanism ...

Scripted documents retain the installation advantages of conventional wrapping technologies, but also solve the nightmares associated with configuration conflicts and upgrades, while greatly simplifying multi-platform deployment for the application vendor.

One of the paper's benefits is a compact comparison of the range of Tcl wrapping methods. Moreover, "compilers are doomed".

Laird and Soraiz on scripted documents

We've mentioned scripted documents in "Regular Expressions" three times: Although the first of these is devoted exclusively to scripted documents, it still leaves much unsaid. It's useful, for example, to compare scripted documents not just with normal scripts, compiled languages, and scripting compilers, but also with Java's .JAR-s. While JAR-s have been around longer, they lack scripted document's orientation to data persistence, so they generally don't encapsulate the configurational data that is part of an application. They certainly don't embed a fully-capable data management engine. JAR-s also show no ambition to include compiled extensions, in the sense this is generally understood among scripters. In regard to the latter, Jean-Claude so far has done an impressive job of maintaining portability even with the complication of compiled extensions; again, this is far beyond the uses made of JAR-s. In summary, then, scripted documents are like JAR-s in being portable and dependent on external run-times, but differ from them in wrapping up more of what a successful application truly needs. [Explain transactional capabilities.] [Explain compression.]

Our mention in this same article of "primitive transactional capability built-in" intended "primitive" in the sense of "low-level". In retrospect, it would have been better to write of "fail-safe commit/rollback capability". MetaKit itself has always been a very safe data manager, robust against any power loss or user programming fault. Jean-Claude's commitment to a complete transactional model for scripted documents is evident in, for example, his notes on New MK Transaction Modes.


This document will eventually include pointers to:

Scripted documents currently require TclKit. While it's possible to imagine implementations in Python, Lua, or other languages, I know of no projects likely to yield these on a definite schedule.
Cameron Laird's personal notes on scripted documents/