I am not a games programmer and do not know whether interpreted Lua is
good enough in this case.
In my opinion, having worked on Ravi and in my usage of it, Lua is not
a general purpose language that you would use to build a large scale
application. This is not because of any deficiency in Lua, it is more
that large scale development is better done in statically typed
languages like Java, C#, Go, Swift etc. The cost of developing complex
applications in a dynamic language is just too high. I know that many
folks on this list will probably disagree with this view, but leaving
aside your love for Lua and your wish to use Lua everywhere, would you
still use Lua as a general purpose application development platform?
We now use lua both in game client and server. For our game server, there are about 10K C loc (https://github.com/cloudwu/skynet
) for the framework , and more than 100K lua loc for gameplay.
For mmo game server, Lua is still the best choice rather than go,erlang, python or nodejs because we choose the actor model for the game server framework like erlang. We can run thousands lua vm in one process that python can't (because of GIL). LuaJIT is not suitable too because of 2G memory limit. I think our framework (skynet) has better performance than nodejs even nodejs use v8 JIT, because skynet can use all the cpu cores. I have tried luaJIT for my framework , only 10%~15% performance improvements.
And coroutine in lua can be a better solution for asynchronous programming than callback model in nodejs.
I agree lua is not suitable for large program, but a large scale application can be build with many small parts. We can run many lua vm in one process like skynet does.