← technical essays
[ESSAY]
No. 5.219 Aug 2, 2026 short essay

Lua Is Small on Purpose

Embed it, give it tables, leave. The smallness is the feature.

[ essay ]

Lua is small on purpose. You embed it in a host that already exists — a game, an editor, a device — and you give the script tables. Tables are the one data structure: arrays, maps, objects, all the same shape. The language stays small so the host stays in charge. I do not ship a Lua product. I meet it in other people’s configs and in the way games and tools expose a programmable seam without adopting a second JVM.

They keep trying to grow it into the application. That misses the design. Roberto Ierusalimschy’s bet is a tiny language with a C API, coroutines, and metatables, not a replacement for the host.1 You write a config that can loop. You write a boss AI that the engine ticks. You do not rebuild the engine in Lua unless you enjoy pain. Cursor will complete a framework. The point of Lua is that you can read the whole manual and still have afternoon left.

If the script needs a package graph that looks like Node, you wanted a different language. Keep Lua small. Tables, embed, leave. The host does the rest.

— JV · Dark Heart Labs.

  1. Roberto Ierusalimschy, Programming in Lua. The language designer’s book: embedding, tables as the unified structure, smallness as the point. ↩

№ 5.219 — JV · Dark Heart Labs.