Lua

Programming
Also known as: Lua Programming Language, Lua 5.1, LuaJIT
Lightweight embeddable programming language from Brazil, developed at a university without corporate funding

What 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

Sources archived on: 2026-08-02