February 20, 2026

When code size becomes a status symbol

Lil' Fun Langs

Programmers brag about their tiny “toy” languages… and it gets weirdly competitive

TLDR: A deep-dive list of tiny, experimental programming languages sparked a brag-fest as developers showed off their own mini-langs and debated what really matters: tiny size or real-world usability. The thread matters because it reveals how much serious thought and ego is hiding behind these “just for fun” hobby languages.

A simple list of tiny “just-for-fun” programming languages has turned into a full‑blown size war flex-off. The original post lovingly catalogs mini versions of serious languages, boasting how many features they cram into just a few thousand lines of code. Think “build your own baby Haskell in a weekend” energy. But the comments? That’s where it goes off the rails.

One developer strolls in like, “My little language Fluent is only 4,000 lines and it already has an app, tools, and examples,” dropping a GitHub link like a mixtape. Another basically says the real boss fight isn’t writing the language at all, it’s making it actually nice to use—with good error messages and helpful editor support—calling that the real engineering challenge. Translation: sure, your micro‑language is cute, but can a normal human debug it?

Then the nerd flexing escalates. Someone casually mentions their own 7,000‑line language Newt with self‑compiling, fancy type magic, and JavaScript output… and still calls it “just an exercise.” Another commenter ups the chaos by bringing in SectorLISP, a full programming language that fits in a computer disk sector—only 223 lines of assembly code. Finally, a user drops loon, a Lisp that looks almost cuddly, showing how you can define shapes and calculate area like it’s a kids’ coding book. The vibe: adorable, ultra‑niche languages, serious brainpower, and a community low‑key competing over who can make the smallest, weirdest computer language and still call it “just for fun.”

Key Points

  • The article compiles a list of small ML-style language implementations, detailing their source code size, implementation language, feature set, and compilation target (interpreter, native, bytecode, C, or WebAssembly).
  • ML-style languages are characterized as functional, statically typed systems rooted in lambda calculus, typically extending Hindley–Milner type inference with algebraic data types, pattern matching, and closures.
  • A feature table estimates the approximate lines of code required to implement various language constructs and optimizations, from basic arithmetic and type inference to advanced features like type classes, algebraic effects, linear types, and lazy evaluation.
  • Each feature entry is linked to one or more concrete reference implementations (e.g., MinCaml, HaMLet, Tao, Ante, MicroHs, Simple-sub), showing that sophisticated language features can be realized in relatively small, understandable codebases.
  • The article concludes with suggested further reading, pointing to resources such as *Write You a Haskell*, *Implementing Functional Languages*, and *The ZINC experiment* for readers interested in learning how to build functional language implementations in more depth.

Hottest takes

“The hardest part with small languages isn’t the parser, it’s the standard library and error messages.” — nimbus-hn-test
“My little language Newt is 7 kloc… mostly an exercise to learn how these things work.” — dunham
“Another crazy one is SectorLISP, 223 lines of asm.” — lachlan_gray
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.