PicassoCT
A UI is for those who first access a software. And it has to provide instant understandable access to basic features without reading the manual. Every advanced feature can be hidden (clicks away), but the basics must be there.
If that is not the case and you have to learn the hotkeys or diggest a dozzen tutorials - well then there is no GUI.
lua sets the type depending on the value assigned at run-time. There are a lot of non-dynamic lanugages who pretend to have dynamic types (var)but actually just let the compiler deduce at compile time the assigned valuetype
You gain the most from this, if you stay lua-native for the entire time- doing all calculations in the lua-vm, and are not depending to much on calls into the underlying c-programm (happy cache misses :( ).
Is there a optimization, that starting from the calls, creates dependancy trees, which allow to bundle away the calculation and calling of the call into seperate (pre-existing Tasks), in such a way, that the Result for simple-calls is in when the programm reaches the call?