# Lua

186 Hacker News commenters recommended Lua and 62 criticized it, November 2025 to November 2026. It was recommended in 12 of 13 months; owners who said how long report a median of 10 years (5 owners). It meets the Hacker Approved badge rule.

**Verdict:** A tiny, simple language you can hold in your head, widely chosen for embedding and configuration; critics dislike 1-based indexing and its table-everything, dynamically typed design.

## Why people recommend it

- Small, simple, easy to learn (8 comments): "Maybe because you can fit the whole language spec on a single sheet of paper and adding more advanced features is pretty easy." ([source](https://news.ycombinator.com/item?id=47653625)) "You can learn a clean & fun language (lua) and its JIT is maybe/probably running laps around something like GDScript" ([source](https://news.ycombinator.com/item?id=49899066)) "small and focused and well-organized enough to (at least roughly) understand what's going on at the various layers" ([source](https://news.ycombinator.com/item?id=47654412))
- Easy to embed in applications (5 comments): "embedding Lua with support for user supplied libraries is less effort than embedding a whole Python/JS runtime" ([source](https://news.ycombinator.com/item?id=47663046)) "Lua is intended to be a embedded language, so good for Interop, but also also high level and easy to use." ([source](https://news.ycombinator.com/item?id=48339468)) "Lua is just a small C library so the style remains very friendly to those who like C with classes." ([source](https://news.ycombinator.com/item?id=47580157))
- Good for configs and DSLs (3 comments): "if your config typically has some logic in it, it makes sense to go for an embedded scripting language" ([source](https://news.ycombinator.com/item?id=48345395)) "Lua syntax is pretty good for DSL (domain specific language) cases / configuration definitions." ([source](https://news.ycombinator.com/item?id=46376892)) "it's simple to learn and I can use that knowledge for things other than just configuring my editor" ([source](https://news.ycombinator.com/item?id=49705870))
- Stable and highly portable (3 comments): "It's good to have a simple, stable language that works and that you can depend on to remain sane for the forseeable future." ([source](https://news.ycombinator.com/item?id=46374245)) "incredibly niche (but otherwise make-it-or-break-it) fact that PUC-Rio is and likely always will be strict C89" ([source](https://news.ycombinator.com/item?id=46376605)) "You can compile and run pretty much any version of Lua on XP with VS 2010 or lcc and it works just fine" ([source](https://news.ycombinator.com/item?id=46643517))

## What people warn about

- 1-based indexing causes issues (3 comments): "The only thing I dislike about Lua is the 1-indexing. I know they had reasons for it but it always caused issues." ([source](https://news.ycombinator.com/item?id=46371499)) "Conflation of arrays and maps, conflation of `nil` and empty (both in tables and in function arguments), and the perennially-unpopular 1-based indexing." ([source](https://news.ycombinator.com/item?id=46406885)) "Because you are constantly shifting across the C/Lua barrier, 1-based indices becomes a disaster" ([source](https://news.ycombinator.com/item?id=46373218))
- Everything-is-a-table design frustrates (2 comments): "I ran into enough issues with it's "everything is a table" design that I stopped using it." ([source](https://news.ycombinator.com/item?id=49904434)) "Conflation of arrays and maps, conflation of `nil` and empty (both in tables and in function arguments), and the perennially-unpopular 1-based indexing." ([source](https://news.ycombinator.com/item?id=46406885))
- Dynamic typing and weak tooling (3 comments): "Lua is good for embedding but the language itself is terrible for LLM usage (too much dynamic typing)" ([source](https://news.ycombinator.com/item?id=49144348)) "Lua is garbage collected, dynamically typed, strays far from standard syntax patterns, and has less existing tooling than C." ([source](https://news.ycombinator.com/item?id=47654705)) "But I think it's rather infuriating, all those points could be less relevant if the tooling for "real" programming languages was better." ([source](https://news.ycombinator.com/item?id=47220602))
- Small ecosystem and libraries (3 comments): "I think the problem with lua was that there is a lack of libraries & projects regarding it so this might actually help it" ([source](https://news.ycombinator.com/item?id=46710450)) "Which is imho the superior scripting language just constrained by a smaller userbase." ([source](https://news.ycombinator.com/item?id=46853434)) "I avoid a language without JSON parsing officially supported because I need that frequently" ([source](https://news.ycombinator.com/item?id=47893750))

## Alternatives hackers recommend

- [awk](https://hackerapproved.com/p/awk.md): 67 recommend
- [AutoHotkey](https://hackerapproved.com/p/autohotkey.md): 44 recommend
- [GDScript](https://hackerapproved.com/p/gdscript.md): 22 recommend
- [AppleScript](https://hackerapproved.com/p/applescript.md): 19 recommend
- [Starlark](https://hackerapproved.com/p/starlark.md): 16 recommend

## Cite as

Hacker Approved, "Lua", https://hackerapproved.com/p/lua/ (counts from 1,795,640 Hacker News comments, November 2025 to November 2026).
