lua-users home
lua-l archive

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

On Tue, May 10, 2016 at 11:58 Viacheslav Usov <> wrote:
On Tue, May 10, 2016 at 6:32 PM, Dirk Laurie <> wrote:

> This is like asking a famous chef

If you use Lua for fun, that might be a valid comparison.

I use Lua to get things done. So in my case the comparison would be more like asking the manager of my plant's canteen: is there a major reason our plant needs to suffer from massive outbursts of profuse diarrhea every so often? Why can't we have basic food safety measures in place?


To answer your question:

One of Lua's main use cases is as a configuration language. That is:

Window_x = 5
Window_y = 100 a very useful syntax for a configuration file that you might employ in your application. Adding "global" or "local" to the front of each declaration would be ugly and detract from this simplicity. Hopefully, in this context, we can agree that "global by default" makes some sense.

Given that, we should keep in mind that Lua's simplicity is another primary objective. Since "strict.lua" (already mentioned) is able to provide a way to guard against accidental globals, the case for providing a language-level mechanism is more or less rendered redundant. In Lua, when something is identified as redundant, it is removed, unless there is an overwhelmingly convincing case to include it and replace the old mechanism and so here we are.

I like using Lua to solve real-world, big problems. Its primary use cases put design limitations on it that sometimes run counter to what I would otherwise want. It's part of its charm.

That is how I've come to accept these sorts of questions, anyway.