lua-users home
lua-l archive

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


Following the discussions on Lua modules/Packages, binary distributions and Lua popularity (or lack thereof) as a language, and believing these things are all related, I did some research. Here are some preliminary notes and findings:

 

1. As a general comment, it is hard to navigate the very fragmented Lua ecosystem. The Community WiKi ought to be the starting point, but you'd be hard pressed to find important parts of the ecosystem starting there or to navigate what is salient today rather than being of historical interest only.

 

2. wxLua: This is a great cross-platform GUI LUA IDE, written in Lua, although that is not how it is sold! It provides a binary distribution of both Lua 5.1 and Lua 5.2, but for Windows only (even though the source code is cross-platform). There is an outdated binary for OSX, but none at all for Linux. It does not address package management.

 

3. LuaRocks: A non-GUI command-line system. Binary distribution for Windows (but stuck at Lua 5.1) and instructions for Linux, hints this should work on OSX, but no specific information. A "rockspec" was kindly provided for me for my "bitfield" C extension, but so far I have failed to get this to build on Windows. I just get a very unhelpful error message on the command console.

 

4. LuaDist: Again strictly command-line. Binary distributions for the three major platforms, but these do not include a distribution of Lua itself, only the system for handling modules/packages.

 

5. Lua.App (Luiz Henrique de Figueiredo): Graphical (very basic) runtime for OSX with a binary distribution of Lua 5.2 and a selection of binary modules. The C modules could be easily added to, but only if you have them in appropriate binary form (are Linux .so files the same as OSX ones?) as it does not address building them from C.

 

The ideal: wxLua's IDE extended to support package management (LuaRocks and/or LuaDist) from the GUI. It should be able to compile C source modules at least for the native platform, but preferably also cross-compile for the other platforms. The GUI should also support packaging of applications and here 5 shows the way - package the runtime, the binary C modules and the Lua scripts as a folder with a bootstrap in the root directory. This will work natively in OSX, pretty well on Windows and ought to be doable on Linux (though execution permissions are a knotty problem to be solved). There need to be binary distributions for all platforms of both Lua 5.1 and Lua 5.2.

 

Everything needed for a good beginner experience is there - it is just horribly fragmented and difficult to find. The problem is this: beginners discover a lovely, minimalistic but powerful language ideal for learning programming, but in order to put it to practical use they find they have to first master C (or at least building from C sources) and in order to achieve that they have to learn baroque build languages and command line interfaces. Unsurprisingly most just give up and settle for an ugly, bloated language like _javascript_, which they can use 'out of the box'.