lua-users home
lua-l archive

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


To add my own thoughts on this.

IMHO, ActiveState could potentially help Lua's wider acceptance (and, therefore, their own business as a percentage of that) if they can provide the following as a minimum:

A single executable (static build -- no DLL hell) of the latest Lua version with all patches already applied, and one that also includes some can't-do-without core libraries on which to build upon with only pure Lua libraries. One that requires zero installation (other than to copy it somewhere in your path).

The inclusion of a 'mix' of core libraries will allow Lua to be used for Web related apps, e-mail, telnet for IoT device configuration, and databases, etc as a minimum. (They might also provide a 5.1 equivalent version if they feel the audience for that version is -- or going to remain -- too big, but I don't think they should be stuck in just that version -- a dead-end.)

I already have a build of Lua (both for Windows and Linux) that, unfortunately for now, at least, includes just two libraries -- LFS and SQLite3 (lsqlite3). What it lacks is some networking capability (and that makes me use Python for those apps that need it). Although Python is a very powerful language, I believe Lua is equally powerful with less syntax to remember.

Why did I not include networking? Because all of the available network modules I found on the net (e.g., luasocket) are either too time consuming to figure out how to correctly integrate (statically, not as DLL) into my single executable Lua, or are not even compatible with Lua 5.3, insisting on a 5.1-only compatibility, or always being too late to catch up with the latest version. If Lua 5.4 comes out tomorrow, I would like my whole system to follow -- instead of some modules forever keeping me back to an older version. And, I'm not willing to invest too much time trying to solve this problem when there are alternative tools to do the job (i.e., Python).

Although not my top priority, it would also be nice to include some core UI API (at for least for Windows, and hopefully also for Linux) so that one could create simple UI forms for those who do not like command-line only interfaces in their apps.

Some people may call what I describe a Lua with batteries included. But, the trick is to figure out just which 'mix' of batteries is enough to keep the 'core' usable for a variety of applications without unnecessarily bloating it. The criterion (in my view) is very simple: if whatever functionality is required for one's app can be achieved with just pure Lua code, this functionality should be left out from the Lua binary, and provided (or left for the end user to provide -- if not popular enough) as pure Lua code -- source or compiled (if one does not wish to release the source).

Ideally, the Lua binary should not require any external non-Lua modules to be able to do with just Lua code pretty much anything Python can do with just Python code.

If ActiveState could provide such a version, it would be a winner in my eyes.

Thanks for listening.