I've worked at some point on a commercial game engine written in C++ at the core but with many Lua components and API, for convenience.
The reasoning wat the same, all the heavy lifting done with fast native code, and everything written in Lua was mostly glue code without real performance impact.
Turns out the engine was slow and difficult to maintain because of the many interfaces. They ditched it a few years later...
I think you could say the same thing about javascript on the web, this is mostly glue code, all the heavy lifting is done by optimized C++ or Rust code in the browser. And yet it is difficult to run a web mail client if your computer is a bit old...
Because the problem is not the scripting, but how it is done.
I imagine that the engine you mention did not use any kind of compiler for Lua, e.g. LuaJIT, nor batch calls across the marshalling layer.
Same happens on the Web, JavaScript JIT can outperform WebAssembly if one keeps switching all the time between layers, instead of doing batch requests.
The reasoning wat the same, all the heavy lifting done with fast native code, and everything written in Lua was mostly glue code without real performance impact.
Turns out the engine was slow and difficult to maintain because of the many interfaces. They ditched it a few years later...
I think you could say the same thing about javascript on the web, this is mostly glue code, all the heavy lifting is done by optimized C++ or Rust code in the browser. And yet it is difficult to run a web mail client if your computer is a bit old...
This is probably related in some ways to Amdahl's law https://en.wikipedia.org/wiki/Amdahl%27s_law