Why does NIL block out 'goto' - jpbubble/NIL-isn-t-Lua GitHub Wiki

First of all, I wanted to minimize version conflicts. In Lua 5.1 and before "goto" can be used as an identifier, and from 5.2 onward it would be a keyword, and I don't like that. By blocking it out, NIL scripts can not get bugged because of that. Doesn't solve all issues, but at least one of them are out of the way.

Second, NIL was set up to get cleaner code, and the first thing you should learn to write cleaner code is to accept that there is no proper excuse to use "goto", and I don't even understand why Lua has brought it in. I can understand why C still supports it (backward compatibility with older source code, so pre-historical code does not have to be re-written simply because of the removal of goto. Also C should only be used when speed really matters, and then a 'goto' can sometimes be the fastest approach. Those two reasons are justified as far as C is concerned, but not a scripting language like Lua).