lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

On 08/05/2011 21.28, Henning Diedrich wrote:
Hi list,

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)[1] 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"[2], something under your eyes doesn't always catch your attention!).

and from the introduction (section 1) of the manual[3](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,"

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[4] or Java Language Specification, 3rd ed.[5]). 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[6], 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 :-) ).