LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
David Kastrup <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Mon, 23 Feb 2009 16:54:47 +0100
text/plain (165 lines)
Will Robertson <[log in to unmask]> writes:

> Hi David,
> On 23/02/2009, at 10:04 PM, David Kastrup wrote:
>> 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.
> I totally agree; and I think this will happen whether the LaTeX team
> does anything about LaTeX3 or not. We've never talked about what
> engines that we want to base LaTeX3 upon, and as far as I can see
> that's because it's too early to say. Will LuaTeX completely replace
> pdfTeX in TeXLive within the next few years? (I'd say probably, but do
> we know for sure?)

IIRC Han Thế Than is pretty adamant about not feature extending PDFTeX
anymore because he considers LuaTeX the principal successor.

However, we still have the "stable" Knuth TeX for reference in TeXlive
(though only for the plain format).  It is certainly conceivable that
PDFTeX will remain as a point of stability as well.  I am not all too

> Joseph has repeatedly expressed his own opinion that we will support
> LuaTeX in time, and I see no reason that this won't end up happening.

It is quite different whether one "supports" LuaTeX, meaning that
incompatibilities to TeX are worked around in order to support an
unmodified LaTeX, or whether one actually makes use of it.

The ability of LuaTeX to execute scraps of Lua rather than scraps of TeX
in the inner loops may be nice, but it does not reduce complexity.  The
gains come only where one can use an algorithmic language to express the
basic control structures.

As an example: In Emacs, the basic control structures of what happens
when and where are written in Lisp.  Of course, in the end C code gets
run at the bottom level of everything.  But the C code basically
provides primitives and Lisp building blocks.  One does not tie together
stuff in C.  And that's the sane way.  If one considers that expression
applicable to the case of Emacs, that is.

> Furthermore, LaTeX2e+LuaTeX still has the same problems as LaTeX2e --
> frozen development, by design, and frozen class functionality.

Sure.  With LaTeX2e, the main goal will be to have this just work as
previously, never mind Lua.  I _think_ that Heiko created some LaTeX
class for managing LuaTeX resources: that seems like a good idea.  But
it manages Lua as an afterthought within the context of LaTeX2e.

> Either someone else writes a LaTeX successor or "you"/we do. (I
> hesitate to include myself in this because I'm clearly much less
> qualified to be a member of this group.) The point I was trying to
> make originally is that I consider current work on expl3 to be the
> precursor to working on "LaTeX3", whatever that happens to be.

My impression is that we[please don't take offense at the use of this
pronoun] have no connection to a community with the work on LaTeX3.  It
appears as finger exercises for experts, to some degree.  At some point
of time, we need to regain traction with a larger set of people rather
than work in our own vacuum.

I have no recipes or useful advice to offer.  I just don't have the gut
feeling that the current fine-polishing of semi-primitive names is what
will break out LaTeX3 to a larger audience.

To some degree it feels like we have a chaotic workshop with make-shift
crafted tools all over the place and lots of shoestring and duct tape
and stuff.  And we are trying to turn this into a factory by discussing
the most systematic labels for shoeboxes that we are going to sort the
tools into, trying not to break too many contraptions in the process of
sorting into separate pieces.

> And whether some feel more comfortable writing more TeX-like code or
> more Lua code shouldn't distract from the fact that a lot of thought
> has gone into how LaTeX could be improved and I hope, dearly, that
> something comes from that.

A lot of thought has fone into how Omega could be improved, too.  And
something came from that, but not necessarily where you would have
expected or hoped for it.

> Stumbling along loading package after package after package on top of
> LaTeX2e isn't sustainable in the long run, I think. Surely we have to
> make a clean break at some stage?

Sure.  The question is what to have behind the break.

> I have no doubt that Lua is great, but I see LaTeX3 as more than a
> programming problem -- design of the user interface and what
> functionality should exist within it is just as important or more so.

The functionality does not arise in a vacuum.

> Of the LaTeX Team members that are not involved with expl3, I am very
> interested what you think of the possibility of LaTeX3. If it's
> possible, or if it will never catch on, or if LaTeX2e is all we need,
> if LaTeX3 will work if we drop expl3 and use Lua, ... ?

I don't know what LaTeX3 will be comprised of, so there is not much I
can comment on.

>> 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.
> Well, if LuaTeX plus some glue code becomes powerful enough, I see
> little reason to continue even with XeTeX. I'm just not sure what's
> going to happen :)

LuaTeX is more and more becoming a construction site.  Core features of
TeX are ripped apart and reassembled on a continuous base.  Many of
those changes are very desirable and "long due".  But there are few
people working on LaTeX support (recently, some packages have been
contributed, so that is no longer as true as once), and the manpower of
the LaTeX project would be hard put to keep pace just keeping stuff
working and tested.

Were I assigned the post of almighty project coordinator, I'd probably
order Jonathan to abandon XeTeX and instead set out to establish a
stable branch/fork of LuaTeX where he would provide existing XeTeX
functionality, preferably with most add-on work done in Lua/TeX rather
than in Pascal or C.

It appears plausible to me that somebody would have to feel responsible
for an underlying stable engine fork.  Assigning Jonathan to the task
would kill a few birds with one stone: for one it would remove the
engine competition, for another, it would make one quite capable
programmer eager to get back the functionality and interfaces he is used

Obviously, one can't switch people around like that and replace their
personal projects with something else.  I probably should try offering
some Lua programming workshops in TeX conferences and make sure that
Jonathan is on the participant list (willingly or not).

>> 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.
> For me, no --- only so much time in the day, and all, but do you have
> any recommendations about where to get started? For example, how
> about: <> ?

Very good book, quite inspirational.  A real eye-opener because there
are a lot of conceptually simple problems which are then also tackled
simply and straightforwardly.

And by "conceptually simple" I mean the kind of stuff that you can state
in a few sentences, and which will usually take wagonloads of code to
actually do (particularly in TeX).

"Programming in Lua" is one of the best books I've read for programming
in any language.  Because it does not suggest the line of thought "to
tackle larger problems, expect a larger mess".

David Kastrup