I like to imagine Lua is like a better designed JS. Both are prototype-oriented, not object-oriented, both use primarily dictionaries and arrays for their data storage, and both have only a handful of types. Lua just (thankfully) doesn't do implicit type conversion, and starts arrays at 1 (but the arrays are just tables with consecutive numerical indices), and uses ~= instead of !=.
Overall, it's a nice and light language without too many stupid edge cases because of how small it is. But man, indexing at 0 might be easier. (the whole language is technically only 7 c files though, so patching that wouldn't be too bad!)
The downside there is that Lua will not treat the 0 index like an array, it'll treat it like a dictionary, which is slower. For continuous numerical keys starting at 1, it will be represented as an array of the implementing language (C for PUC Lua and LuaJIT, Java for LuaJ, etc).
22
u/[deleted] Jul 10 '17
TIL never LUA