Lua
Hacker ApprovedThe most recommended of 14 scripting languages
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.
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.
248 people gave an opinion
- recommend it
- 186
- criticize it
- 62
- approval share
- 75%
Recommended in 12 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Owned for 10 years
Median of the 5 owners who said how long they have had it.
Each square is one year.
Why it carries the badge
- 186 people recommend itNeeds 10 or more, met.
- 3 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 12 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Small, simple, easy to learn
“Maybe because you can fit the whole language spec on a single sheet of paper and adding more advanced features is pretty easy.”
Comment from 5 Apr 2026 in “LÖVE: 2D Game Framework for Lua” “You can learn a clean & fun language (lua) and its JIT is maybe/probably running laps around something like GDScript”
Comment from 29 Sep 2026 in “Using any C++ library in Godot” “small and focused and well-organized enough to (at least roughly) understand what's going on at the various layers”
Comment from 5 Apr 2026 in “LÖVE: 2D Game Framework for Lua” - Comment from 14 Sep 2026 in “NEO Emacs – GPU-Accelerated Emacs Powered by Rust”
- Comment from 6 Apr 2026 in “LÖVE: 2D Game Framework for Lua”
- Comment from 6 Apr 2026 in “LÖVE: 2D Game Framework for Lua”
- Comment from 6 Apr 2026 in “LÖVE: 2D Game Framework for Lua”
- Comment from 1 Feb 2026 in “The history of C# and TypeScript with Anders Hejlsberg | GitHub”
Easy to embed in applications
“embedding Lua with support for user supplied libraries is less effort than embedding a whole Python/JS runtime”
Comment from 6 Apr 2026 in “LÖVE: 2D Game Framework for Lua” “Lua is intended to be a embedded language, so good for Interop, but also also high level and easy to use.”
Comment from 30 May 2026 in “Zig: Build System Reworked” “Lua is just a small C library so the style remains very friendly to those who like C with classes.”
Comment from 30 Mar 2026 in “C++26 is done ISO C++ standards meeting, Trip Report” - Comment from 28 Jul 2026 in “Build Systems Discussion”
- Comment from 29 Sep 2026 in “Tcl/Tk 9.1”
Good for configs and DSLs
“if your config typically has some logic in it, it makes sense to go for an embedded scripting language”
Comment from 31 May 2026 in “One year of Roto, a compiled scripting language for Rust” “Lua syntax is pretty good for DSL (domain specific language) cases / configuration definitions.”
Comment from 24 Dec 2025 in “Fabrice Bellard Releases MicroQuickJS” “it's simple to learn and I can use that knowledge for things other than just configuring my editor”
Comment from 14 Sep 2026 in “NEO Emacs – GPU-Accelerated Emacs Powered by Rust” Stable and highly portable
“It's good to have a simple, stable language that works and that you can depend on to remain sane for the forseeable future.”
Comment from 24 Dec 2025 in “Lua 5.5” “incredibly niche (but otherwise make-it-or-break-it) fact that PUC-Rio is and likely always will be strict C89”
Comment from 24 Dec 2025 in “Fabrice Bellard Releases MicroQuickJS” “You can compile and run pretty much any version of Lua on XP with VS 2010 or lcc and it works just fine”
Comment from 16 Jan 2026 in “Go-legacy-winxp: Compile Golang 1.24 code for Windows XP”
What people warn about
Each mark is one comment
1-based indexing causes issues
“The only thing I dislike about Lua is the 1-indexing. I know they had reasons for it but it always caused issues.”
Comment from 24 Dec 2025 in “Fabrice Bellard Releases MicroQuickJS” “Conflation of arrays and maps, conflation of `nil` and empty (both in tables and in function arguments), and the perennially-unpopular 1-based indexing.”
Comment from 28 Dec 2025 in “Mruby: Ruby for Embedded Systems” “Because you are constantly shifting across the C/Lua barrier, 1-based indices becomes a disaster”
Comment from 24 Dec 2025 in “Fabrice Bellard Releases MicroQuickJS” Everything-is-a-table design frustrates
“I ran into enough issues with it's "everything is a table" design that I stopped using it.”
Comment from 30 Sep 2026 in “Tcl/Tk 9.1” “Conflation of arrays and maps, conflation of `nil` and empty (both in tables and in function arguments), and the perennially-unpopular 1-based indexing.”
Comment from 28 Dec 2025 in “Mruby: Ruby for Embedded Systems” Dynamic typing and weak tooling
“Lua is good for embedding but the language itself is terrible for LLM usage (too much dynamic typing)”
Comment from 2 Aug 2026 in “Cyberscript” “Lua is garbage collected, dynamically typed, strays far from standard syntax patterns, and has less existing tooling than C.”
Comment from 5 Apr 2026 in “LÖVE: 2D Game Framework for Lua” “But I think it's rather infuriating, all those points could be less relevant if the tooling for "real" programming languages was better.”
Comment from 2 Mar 2026 in “Making Video Games in 2025 (without an engine)” Small ecosystem and libraries
“I think the problem with lua was that there is a lack of libraries & projects regarding it so this might actually help it”
Comment from 21 Jan 2026 in “Skip Is Now Free and Open Source” “Which is imho the superior scripting language just constrained by a smaller userbase.”
Comment from 2 Feb 2026 in “MicroPythonOS graphical operating system delivers Android-like user experience” “I avoid a language without JSON parsing officially supported because I need that frequently”
Comment from 24 Apr 2026 in “Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain”
Other scripting languages people recommend
The four most recommended other scripting languages, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| LuaThis page | 186 | 62 | 75% | 12 | 10 yrs5 owners | Approved |
| awk | 67 | 18 | 79% | 12 | — | Approved |
| AutoHotkey | 44 | 5 | 90% | 11 | — | Approved |
| GDScript | 22 | 16 | 58% | 9 | — | — |
| AppleScript | 19 | 18 | 51% | 10 | — | — |
What people said
40 of the 311 comments that mention it, newest first. Each links to the original comment.
“I've used Lua very successfully in many commercial projects, so I'm quite convinced of its power”
“I ran into enough issues with it's "everything is a table" design that I stopped using it.”
“if I were in the market for an extension glue language today, I'd reach for Lua first”
“You can learn a clean & fun language (lua) and its JIT is maybe/probably running laps around something like GDScript”
“it's simple to learn and I can use that knowledge for things other than just configuring my editor”
“Lua is good for embedding but the language itself is terrible for LLM usage (too much dynamic typing)”
“Lua is a very small language though and sandboxing it to specific global functions is trivial”
“For readability, `then` allows splitting with newlines very long conditional expressions”
“if your config typically has some logic in it, it makes sense to go for an embedded scripting language”
“Lua is intended to be a embedded language, so good for Interop, but also also high level and easy to use.”
“If you drop-in replaced JS today with Lua, you'd have a conceptually similar language with a lot of warts chopped off.”
“I avoid a language without JSON parsing officially supported because I need that frequently”
“its really quite unfair on the language and those who have used it quite well to do big things”
“embedding Lua with support for user supplied libraries is less effort than embedding a whole Python/JS runtime”
“It's a design choice to have a language as small as possible while still offering cool tools.”
“It offers just enough functionality while not making it overly complicated to make basic things.”
“Lua is so small and simple (but not simplistic) that you can keep it completely in your head.”
“Lua is garbage collected, dynamically typed, strays far from standard syntax patterns, and has less existing tooling than C.”
“small and focused and well-organized enough to (at least roughly) understand what's going on at the various layers”
“Maybe because you can fit the whole language spec on a single sheet of paper and adding more advanced features is pretty easy.”
“Lua is just a small C library so the style remains very friendly to those who like C with classes.”
“But I think it's rather infuriating, all those points could be less relevant if the tooling for "real" programming languages was better.”
“lua is #2 behind javascript/typescript's #1 when it comes to scripting language LSP stuff”
“Which is imho the superior scripting language just constrained by a smaller userbase.”
“The language is very minimal, memory safe, and has Pascal-like syntax just like Delphi.”
“I think the problem with lua was that there is a lack of libraries & projects regarding it so this might actually help it”
“You can compile and run pretty much any version of Lua on XP with VS 2010 or lcc and it works just fine”
“Conflation of arrays and maps, conflation of `nil` and empty (both in tables and in function arguments), and the perennially-unpopular 1-based indexing.”
“Lua syntax is pretty good for DSL (domain specific language) cases / configuration definitions.”
“incredibly niche (but otherwise make-it-or-break-it) fact that PUC-Rio is and likely always will be strict C89”
“It's good to have a simple, stable language that works and that you can depend on to remain sane for the forseeable future.”
“Metatables are pretty powerful, and "everything is in a table" made it super easy to do hot reloading.”
“it makes sense as an optimization within the context of Lua's design goals of being lightweight and fast”
“Because you are constantly shifting across the C/Lua barrier, 1-based indices becomes a disaster”
“The only thing I dislike about Lua is the 1-indexing. I know they had reasons for it but it always caused issues.”
“The first language I learned was Lua, and because of that it seems to have a special place in my heart”
“Lua only departs from norms if you’ve had a very narrow experience with other programming languages.”
“that was surprising to me in Lua. I adapted to it, but it did cause a little bit of awkwardness”
“good thing about lua is you avoid the headache of people asking for NPM package support”
“Lua does it--exceptions at the language level, and either setjmp/longjmp or C++ exceptions in the VM implementation.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.