% content=tex language=uk engine=luatex
%
% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa

\usemodule[pre-61,abr-01]

\definetypeface[mainface][ss][sans][kurier][default][encoding=texnansi]
\definetypeface[mainface][rm][sans][kurier][default][encoding=texnansi]
\definetypeface[mainface][tt][mono][modern][default][encoding=texnansi,rscale=1]

\definefontsynonym[MainTitleFont][SansBold]

\setupbodyfont[mainface,14.4pt]

\definecolor [textcolor] [yellow]

\starttext

\TitlePage{Howling\\to the moon}

\Topic{A few observations}

\StartSteps

\startitemize
\item Occasionally we reach the boundaries of \TeX\ and programming then
becomes kind of cumbersome. \FlushStep
\item There is much macro code around and there are many documents that
depend on \TeX's longliveness so we cannot drop|/|change things. \FlushStep
\item Quite some applications demand more advanced programming features
than \TeX\ can (conveniently) provide. \FlushStep
\item It's mostly some of the subsystems that we'd like to extend and|/|or
replace. \FlushStep
\item Access to the internals, features and possible extensions makes it
possible to delegate activities to other programs. \FlushStep
\item Every now and then I need a new challenge. \FlushStep
\stopitemize

\StopSteps

\Topic{How it started}

\StartSteps

\startitemize
\item I use SciTE as main editor for documents and programs. This editor is
built on top of the Scintilla framework. \FlushStep
\item Being mainly a program editor it lacks some features that you need for
text editing and processing.  \FlushStep
\item However \unknown\ it has a scripting engine that gives access to the
user interface and the editing component. \FlushStep
\item This scripting language happens to be Lua. \FlushStep
\item For a while I was hesitant to use \quote {yet another programming
language} but \unknown \FlushStep
\stopitemize

\StopSteps

\Topic{Lua}

\StartSteps

\startitemize
\item Where the Perl, Python and (my favourite:) Ruby languages are heavy||weight
languages, Lua is a simple but nevertheless powerful language.\FlushStep
\item P, P and R come with a constantly growing amount of libraries and users
expect the whole lot to be present.\FlushStep
\item Lua can interface to libraries but its main application is to be embedded
in an application and present the user with an interface to the parent
application.\FlushStep
\item Lua has a small footprint; it adds some 50--100K to the parent binary,
but one can add additional functionality, for instance support for
sockets and reading from zip files. \FlushStep
\item The more I looked into it, the more I liked it.\FlushStep
\item And, after positive experiences with integrating \METAPOST, integrating
Lua didn't seem that strange. \FlushStep
\stopitemize

\StopSteps

\Topic{And so \unknown}

\StartSteps

\startitemize
\item I managed to trick Hartmut into implementing a \type {\lua} command. (We
share a passion for experiments in pdf\TeX\ and he knows how to implement
them.) \FlushStep
\item I got back a (linux) binary within a few days. \FlushStep
\item After we had this proof of concept, it was time to involve Taco, who
knows more about \TEX\ the programs internals than I'll ever know. \FlushStep
\item Another few days later we had the first interface to some of \TeX's
internals. \FlushStep
\item And since we recognized the potential we decided to continue this
effort and the Lua\TeX\ team was there: Hartmut Henkel, Taco Hoekwater
\& Hans Hagen. \FlushStep
\item We will discuss, meet, develop and finaly present the first working
stable versions somewhere in 2007. \FlushStep
\item The binary will start of as a fork of pdf\TeX, and in
the end will replace pdf\TeX\ since Thanh and Martin like the idea as well. \FlushStep
\item The project may get a push from the oriental \TeX\ project and the
\TeX\ open type font project. \FlushStep
\stopitemize

\StopSteps

\Topic{Potential}

\StartSteps

\startitemize
\item Remove some of the fuzzy parts of pdf\TeX. \FlushStep
\item Replace some subsystems and|/|or prototype new subsystems
(fonts, file io, kpse, input parsing, etc). \FlushStep
\item Provide an interface to plugins, like for instance paragraph
building components like the ones Karel Skoup\'y has demonstrated. (We
had already discussed this possibility at Euro\TeX.) \FlushStep
\item Provide a playground for all kind of features, like for instance
language|/|script specific font handlers and paragraph builders for
instance for Chinese. \FlushStep
\item Replace (or extend) parts of macro packages by alternatives in
a higher level language (\ConTeXt~4). \FlushStep
\item Add functionality to macro packages that until now was beyond reason
to implement. \FlushStep
\item And this is just the start \unknown \FlushStep
\stopitemize

\StopSteps

\stoptext
