Tiny programs attract attention because they feel approachable: a few dozen lines or bytes seem possible to understand, even when the code is dense or unfamiliar. Examples include a 25-line JavaScript diffing library, a 46-byte Forth, a one-page C interpreter for J, and a compact Lisp evaluator. Their value goes beyond entertainment. A business-card ray tracer or a garbage-collected Lisp in 436 bytes demonstrates a lower bound on how much machinery a concept can require. Such miniatures offer evidence that an idea can fit in a person’s head, even if a readable implementation is better for learning than an aggressively compressed one.
The same interest applies to programming languages. Forth, Lisp, and Tcl have tiny syntactic cores yet offer unusual flexibility; Lua and JavaScript are presented as relatively small, practical languages, while assembly and C illustrate different forms of compactness. The central design tension is size versus expressiveness: extra features can make a language more capable but also harder to understand, so simplicity may be preferable to power that behaves unpredictably. Small, self-contained learning environments also depend on good documentation and beginner-friendly error messages, not merely a compact language. Libraries matter too, since a language’s effective size includes the functions and data structures programmers must learn. The broader case is that smallness can make systems easier to approach, reveal essential complexity, and encourage careful design.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.