Print

Print


Will Robertson <[log in to unmask]> writes:

> On 23/02/2009, at 7:00 PM, Joseph Wright wrote:
>
>> I've had some interesting comments to my latest blog post:
>>
>> http://www.texdev.net/2009/02/22/latex3-as-a-low-level-language/
>>
>> where, amongst other things, I've suggested a "LaTeX3 microkernel".  I
>> wonder how other people see the issues raised.
>
> Well, I did already comment :)
>
> All of this apparent conflict between expl3 and LuaTeX is getting a
> bit tiring. Nothing much we can do about that, I suppose.

Encourage Jonathan and Taco to converge, or at least Jonathan to try
integrating essential programming parts of LuaTeX into XeTeX.

TeX's inherent limitations as a programming language are a major pain.
They will both cause performance and maintenance issues for a
"microkernel", to a degree where one will tend to code bypassing this
kernel for efficiency reasons.

Being able to write controlling algorithms for typesetting in Lua rather
than a complex macro system with performance issues will make LaTeX
programming and extensions much more attractive: LaTeX packages nowadays
usually come in two flavors: classes and their supporting ilk, stuff
that gets away mostly with calling LaTeX functionality.  And more
intricate packages that solve problems with more or less heavy TeX
programming.

Having a Lua programming interface where the control logic is mostly
written in Lua, controlling the execution of LaTeX stuff more or less at
the class complexity level, will do quite a bit for more people working
on LaTeX.

As it stands now, writing even simple algorithms require a skill set not
commonly available.

Jonathan was, as far as I remember, quite sympathetic to considering
putting Lua into XeTeX as an extension language.  The extensive opening
up of TeX data structures and code that is happening in LuaTeX is
certainly intriguing, but the main point of it is the ability to write
algorithms and control functions in an extension language that does not
suffer from the weird expansion/execution/group chaos of TeX's macro
system.

If the proposed microkernel would default to hook into Lua as its
algorithmic interface and we can get Taco and Jonathan to converge to a
common functionality subset that we can base this on, I think that the
benefits could be worth the decision to ditch all other engines.

Who of those on the team have already taken a look at Lua as programming
language?  It is really quite minimalistic and at the same time powerful
and expressive.

-- 
David Kastrup