François-René Rideau's Exscribe is “a document authoring tool programmed and programmable in Common Lisp.”
Now, there already exist a few other document authoring systems that are programmable; but the way they are programmed is always a gross kluge, in a mess of a language that was never designed, never selected, and lacks the basic features required of any serious programming language. Their programming capability capability stems from an overgrown collection of badly interacting “scripting” features, special-purpose “macro” languages, and exotic specialer-purpose virtual-machines. The most widespread programmable authoring tool, LaTeX, comes to mind; it is a collection of gross hacks, layered on top of each other, in a way hopelessly beyond any kind of salvation. Scribe, being programmable using a dialect of a real, decent programming language, namely Lisp, was a beacon of light in the dark chaos of authoring tools
Fare mentions some surprising performance implications of using an extended version of the host language, Common Lisp, as the document description language.
Where Exscribe spends over 98% its computation time (excluding the admittedly slow FASL loading), is compiling the Exscribe code. Indeed, the whole point of Exscribe is that your documents are Common Lisp programs, evaluated by your Common Lisp implementation. And here, the optimizing compilers will spend a lot of time trying to optimize code that is only going to be run once, whereas interpreters do the right thing of not wasting time optimizing it. That's why clisp is so good, and also why cmucl is good: cmucl includes an interpreter to be used in those situations, whereas sbcl dumped this interpreter away and its eval always calls the optimizing compiler.
I'm surprised OpenMCL didn't perform better; I've always thought of its compiler as being extremely fast.
Posted by jjwiseman at November 18, 2005 01:07 PMI'm not sure what that comment concerning LaTeX was about. Was he implying the whole TeX system is a collection of gross hacks? (That's what it sounds like when he refers to LaTeX as a collection of gross hacks layered on top of each other. I wouldn't ever want to imply that. Don Knuth is perhaps one of the greates computer scientists of the past century, and TeX is one of the most bug free non-trivial programs ever written.) Anyway, LaTeX isn't that bad, but even so, there are other authoring tools based on TeX that have a much better design than LaTeX, but being built on TeX, they have the powerfull typsetting capabilities of TeX. ConTeXt comes to mind. It has a much more simple design than LaTeX and has been used to produce several beautifully typeset books (here is a spread of a book typset in ConTeXt http://www.tug.org/texshowcase/6553-sample.pdf). Remember, typsetting is really hard, so unless Exscribe is only going to generate HTML, or unless it will output TeX code, it is unlikely that it will produce anything near the quality of TeX for quite awhile.
Posted by: Benjamin on November 18, 2005 07:45 PMBenjamin, did you actually look into the TeX source? While it surely is an excellent program and you probably are right with respect to the unmatched quality of its output, the TeX code is just horrible.
Just imagine how cool a tweakable and extensible typesetting core would be, that was technically up-par on TeX.
Still waiting for the "Scheme48 of Typesetting Engines"... ;-)
Posted by: Christian Neukirchen on November 19, 2005 03:55 AM