4 ms·
Just curious why Lua is frequently used as plugin script? I would like to use an already familiar one like Python instead of to learn a new one.
by pltnr 4y ago
Just curious why Lua is frequently used as plugin script? I would like to use an already familiar one like Python instead of to learn a new one.
- pimeys 4y agoIt is very easy to embed to C/C++ codebase, much faster than almost any other scripting languages (luajit) and adds a minimal amount to the binary size.
- nmz 4y agoMuch faster than C in some cases.
- capableweb 4y agoLua is so similar to Python that you could learn the basics in one afternoon since you already know Python. The official book is a great start: https://www.lua.org/pil/1.html https://www.lua.org/pil/1.html
- grumbel 4y agoLUA is essentially build as a plugin language. It's simple and well behaved, very easy to spawn when you need it and throw it away when you are done with it. It can also be isolated, if you don't want to give people access to file-io functions for example, you just don't load them into the interpreter and everything works as expected. Most other language are not like that, they rely on global state and want to take full control your program. The interpreter also tends to be full of functions you can't get rid of, so they are impossible to secure. Even simple things like spawning two independent interpreters are often not supported. A language like Python really wants you to extend Python with modules, not extend your program with Python. Long story short, writing a Lua interpreter is just a couple of lines of code: https://www.lua.org/pil/24.1.html https://www.lua.org/pil/24.1.html
- jamhan 4y agoAs an example, the MMORPG "Elder Scrolls Online" [1], uses Lua as the interface and plugin ("addons") language. This allows feature-rich, very useful UI modifications such as "Bandits User Interface" [2] [1] https://www.elderscrollsonline.com/ https://www.elderscrollsonline.com/ [2] https://www.esoui.com/downloads/info1643-BanditsUserInterface.html https://www.esoui.com/downloads/info1643-BanditsUserInterfac...
- nmz 4y agoPython is familiar because you already know it. Lua is much easier to learn than python. Also, you can look for a python transpiler to lua, or any that you like. Take your pick. https://github.com/hengestone/lua-languages https://github.com/hengestone/lua-languages