"A programming language is for thinking about programs, not for expressing programs you've already thought of. It should be a pencil, not a pen"
About this Quote
The subtext is an argument against the macho ideal of programming as rigid correctness-first engineering. Graham is taking aim at languages and cultures that optimize for formality, ceremony, and compile-time gatekeeping, as if software emerges fully designed from the programmer's head. He is also implicitly defending the Lisp tradition (and, by extension, dynamic languages): they let you iterate in small, reversible steps, keeping the feedback loop tight enough that your understanding can evolve midstream.
Context matters: this line comes out of the startup-era mindset where speed of learning beats theoretical purity. A "pencil" language is valuable because it reduces the cost of being wrong. That is not anti-rigor; it's pro-discovery. In practice, it argues that the real bottleneck in programming isn't typing the final program, it's getting to the point where the program is worth typing.
Quote Details
| Topic | Coding & Programming |
|---|---|
| Source | Beating the Averages (essay), Paul Graham — contains the line: "A programming language is for thinking about programs, not for expressing programs you've already thought of. It should be a pencil, not a pen." |
| Cite |
Citation Formats
APA Style (7th ed.)
Graham, Paul. (2026, January 16). A programming language is for thinking about programs, not for expressing programs you've already thought of. It should be a pencil, not a pen. FixQuotes. https://fixquotes.com/quotes/a-programming-language-is-for-thinking-about-105288/
Chicago Style
Graham, Paul. "A programming language is for thinking about programs, not for expressing programs you've already thought of. It should be a pencil, not a pen." FixQuotes. January 16, 2026. https://fixquotes.com/quotes/a-programming-language-is-for-thinking-about-105288/.
MLA Style (9th ed.)
"A programming language is for thinking about programs, not for expressing programs you've already thought of. It should be a pencil, not a pen." FixQuotes, 16 Jan. 2026, https://fixquotes.com/quotes/a-programming-language-is-for-thinking-about-105288/. Accessed 13 Feb. 2026.








