Despite its prevalent use in games, I feel in a sense that Lua hasn't ever escaped its
academic roots. That could be because it is still led by a small number of university
professors at a (single?) academic institution, who probably bring a more academic
mindset to the table. There isn't necessarily anything wrong with that, but I suppose
it might bring tradeoffs. In particular, I think the stringent focus on adherence to principle
together with a lack of emphasis put on fleshing out a standard, robust package eco-
system to support standalone applications may have prevented Lua from reaching
critical mass.
From a language standpoint, I think some of Lua's selling points in the minds of more
advanced programmers (coroutines, first class functions, mechanisms over policies,
etc.) are probably not so for non-programmers/beginners. I realize that non-programmers
have successfully used Lua in restricted scripting environments, but when such an
individual is tasked to build a standalone application that does something practical,
I can't envision any scenario where using Lua would not be harder than using Python.
All of that said, it might have just come down to luck and happenstance, as I have
definitely not cracked the code of what makes languages successful. In any case,
at this point, now that we do have Python occupying the niche that it occupies, I think
it's probably best for Lua to just remain on the course that it has always been on,
namely, focusing on being small, embeddable, principled, etc., which I assume are
probably at odds with it reaching critical mass in the same sense as Python.