Succinctness is Power
Paul Graham’s essay Succinctness is Power argues that the primary purpose of high-level languages is to compress meaning.
The Core Thesis
Succinctness equals power in programming languages. The measure of a language’s effectiveness is how small it makes your programs.
A language failing at this is “like a knife that doesn’t cut well, or printing that’s illegible.”
Measuring Code Size
Rather than counting lines, Graham proposes measuring “elements”—distinct nodes in a program’s abstract syntax tree. This metric better captures conceptual complexity.
Language Design Principle
The succinctness test serves as a practical guide for language designers. By asking “what can I do to make programs shorter?” designers naturally discover useful abstractions.
The Restrictiveness Connection
Restrictive languages feel confining because they force longer detours around limitations. A language feels free when it allows naturally short expressions.
Readability Nuance
“Total effort = effort per line × number of lines.” Individual readability can mislead programmers into accepting unnecessarily verbose languages.
My Takeaway
Fred Brooks observed that programmers produce similar code volumes regardless of language. Succinctness is therefore the key differentiator in development speed.
What’s your experience with succinct languages? I’d love to hear at persdre@gmail.com.