Lua
ProgrammingWhat is Lua?
Lua is a lightweight programming language developed in 1993 at the Pontifical Catholic University of Rio de Janeiro (Brazil). The name means “Moon” in Portuguese.
Developed: 1993 at PUC-Rio
Current version: Lua 5.4 (2020)
License: MIT (Open Source)
What makes Lua special
- Extremely small: The interpreter is exceptionally compact, requiring only a few hundred kilobytes depending on the platform and build.
- Embeddable: Designed to run inside other applications.
- Fast: LuaJIT is among the fastest scripting language implementations available.
- Simple: Small, easy-to-understand syntax with only a few core concepts.
- Independent: Developed at a university without corporate funding.
Typical use cases
Game development:
- World of Warcraft (entire user interface)
- Roblox (more than 200 million users) – uses Luau, a Lua-derived dialect
- Angry Birds
Infrastructure:
- nginx (via OpenResty)
- Redis (server-side scripting)
- HAProxy (load-balancing logic)
Embedded systems:
- NodeMCU (ESP8266/ESP32)
- OpenWrt (router firmware)
Desktop applications:
- Adobe Lightroom (plugins)
- VLC Media Player (extensions)
Strengths
True independence: No corporate control—developed at a Brazilian university with modest but stable funding.
Minimalism: Only essential features are included in the core language. “Power of Simplicity” instead of a “kitchen sink” language.
Long-term stability: Lua 5.1 is nearly twenty years old and is still widely used. There are no disruptive breaking changes every few years.
Relatively easy to learn: Thanks to its small language core, Lua can be learned comparatively quickly.
Weaknesses
Small ecosystem: Significantly fewer libraries than Python or JavaScript. Many tasks require writing your own solutions.
Small standard library: The language intentionally includes only a compact standard library (string, table, math, io, os, coroutine, utf8, etc.). Functionality such as HTTP, JSON, or database access is not part of the standard distribution.
Limited job market: Lua positions are relatively uncommon outside game development.
Versions
Lua 5.4 (2020): Current version
Lua 5.1 (2006): Still widely used after more than two decades because of its exceptional stability and LuaJIT compatibility.
LuaJIT: An alternative implementation by Mike Pall that is typically 10–50 times faster than standard Lua. It is used in projects such as nginx, Redis, and OpenResty.
The Dragons@Work perspective
Dragons@Work uses Lua for:
- furt (API gateway): Complete server-side logic
- sagjan (comment system): Business logic
- All new services: Lua instead of Go or JavaScript
Why?
No corporate dependencies: Lua has no venture-capital funding, no corporate foundation, and no control by large technology companies.
Minimal footprint: A perfect fit for a low-tech philosophy and resource-efficient servers.
Proven and stable: More than thirty years of development and an exceptionally mature implementation.
Readable and maintainable: Lua code is straightforward to read and understand, without unnecessary complexity or hidden magic.
For beginners
Lua is worth learning if:
- You like a low-tech philosophy.
- You prefer simple and well-structured languages.
- You want to develop games or embedded systems.
- You value control over your dependencies.
Lua may not be ideal if:
- You need a very large ecosystem of ready-made libraries.
- You are looking specifically for Lua jobs (outside game development they are relatively rare).
- You want to stay with mainstream programming languages.
Sources
Community
Sources archived on: 2026-08-02