[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: PUC Lua
- From: Lorenzo Donati <lorenzodonatibz@...>
- Date: Mon, 09 May 2011 06:50:46 +0200
On 08/05/2011 21.28, Henning Diedrich wrote:
I am frequently writing docs that discuss differences and similarities
between the original Lua and LuaJIT.
People like calling the original, 'vanilla' and all kinds of tender
names. Trying to write neutral stuff, I keep falling back to talk about
"Lua" and "LuaJIT", which technically makes no sense but intuitively
seems to be the least confusing and bloated way to make the distinction.
Maybe it's time for the makers to choose a name, even if it should hurt?
Or are "Lua" and "LuaJIT" fair labels, given how LuaJIT keeps moving
away from the original?
I am opting for PUC Lua, which is in all Copyright tags, but still not
immediately clear to everyone.
My 2 eurocent:
[!!! warning: long post ahead !!!]
I think Henning's doubts are legitimate, since it takes some time to get
accustomed to Lua's "ecosystem". On the other hand I think the solution
is not: as someone else already pointed out on this thread, Lua Team
already chose a name, and that's "Lua".
I admit there is some confusion on what normally is intended as Lua. I
myself use the term "stock Lua" to refer to PUC Rio source distribution
(but then there are official patches...).
It is true that the manual (Lua 5.1.4) clearly states that:
"The reference manual is the official definition of the Lua language."
(near the top), but this notice is not highlighted very much (like in
E.A.Poe's "the purloined letter", something under your eyes doesn't
always catch your attention!).
and from the introduction (section 1) of the manual(emphasis mine):
"_Lua is an extension programming language_ designed to support general
procedural programming with data description facilities.[...]"
"The _Lua distribution_ includes a sample host program called lua, which
uses the Lua library to offer a complete, stand-alone Lua interpreter."
"_The implementation described in this manual_ is available at Lua's
official web site, www.lua.org."
So Lua Team themselves make a distinction between "language",
"implementation" and "distribution".
Nevertheless, they also don't make a clear-cut distinction among the
three, nor they give the precise meaning of the three. For example, it
is not extremely clear at first sight whether the default libraries are
part of the "specification" or not (of course they are, but you have to
know Lua a bit - and read the whole manual - to understand it).
Sometimes it is necessary, if you want to be clear, to specify "Lua
core" to underline the difference from "Lua=core+libraries".
I find the manual in itself very readable on the whole, but this comes
at the cost of being less "bureaucratic" than other comparable documents
(Please, compare with XML specifications or Java Language
Specification, 3rd ed.). I find it more targeted at software
developers than at language designers (and that's good, for me at least).
Please, note that even other widespread languages suffer from the same
"naming disease" at times. For example, when you talk about Java
sometimes it's only the context that explains whether you are talking
about "The Java language", "The Java platform" (Language+API+toolchains)
or a generic Java distribution.
Probably the doubts arise also because there is no Lua international
standard: some ISO-something (like C89, C99, Cx00++, CXYZNM#?,
<put_your_line_noise_here>), or no legally enforced "test suite" (like
in Java - I don't remember the official name - but an implementation
must pass a very extensive test suite - from former Sun - to be given
the right to call itself "Java").
Usually all that "paperwork" arise whenever: (a) there is some big
commercial interest behind the "product" (standardization is good when
based on a strong technical basis, but too often it goes awry because of
commercial interests: see MS pushing its XML document format); and/or
(b) there are strong copyright/trademark issues (as for Java - which is
proprietary even if publicly available).
Lua has a very liberal license, so I doubt there is a so strong
commercial interest behind it. I read in HOPL article, It was
developed to support TECGRAF internal SW tools, but in itself is not
commercial in any way - as far as I know. I hope it stays this way,
because this allows Roberto, Luiz & C. to keep on doing that excellent
job (and maybe also keeps this list so friendly ;-) )!
To sum up: I think that the best strategy when talking about Lua in a
neutral way is to introduce the audience to the nature of Lua and its
ecosystem beforehand. Then you could introduce the terminology you deem
appropriate, but keeping in mind, and making your audience aware, that
some terms are not "mandated" by anyone, but only widespread in the Lua
community (and so the "bazaar" chaotic nature must be taken into account