It’s really funny how many of the things listed under “different” are things I’d consider just common sense.
A lot of the “bad” section has been addressed since this article was written in 2012, but a lot of it does still require 3rd-party libraries. I don’t think this is necessarily bad, for instance, not building luaposix functionality into the language itself means that the language can be ported to microcontrollers that don’t have an OS. Pulling in 3rd-party libraries is a lot easier than it is in many languages since they tend to have very shallow dependency trees.
The worst thing about the language semantics IMO is the way it does multiple values, which gets a very brief mention in the “ugly” section; this article explains it in a lot more detail: https://benaiah.me/posts/everything-you-didnt-want-to-know-about-lua-multivals/
I dislike only two things about Lua
Global scope by default
No trailing comma in function signature
) -- invalid :(
Is there any language that allow trailing commas in function signatures?
2 is a bit strange because I am pretty sure that trailing commas in table declaration are acceptable.