Original β†—
Technology
The Hundred-Year Language
paulgraham.com
Technology
20 min read β†’ 70 sec
An essay on what programming languages may look like in 100 years, arguing that small cores, flexible semantics, and optimization added later will outlast efficiency-first designs. It predicts faster hardware will make programmer time the real scarce resource.
A usable hundred-year language could be designed now
Lisp already designed much of its core in 1958
2 / 18
Programming languages evolve slowly because they are notation, more like mathematical notation than transportation technology
3 / 18
Languages will evolve in branching trees. Java will likely be an evolutionary dead-end like Cobol.
The strongest long-term languages will have small, clean cores with few fundamental operators
4 / 18
If Moore's Law continued for 100 years
74 quintillionΓ—
faster computers would be
5 / 18
Most extra computing power will be wasted, because each generation spends gains on simpler, more wasteful designs
6 / 18
Good waste spends more resources to get simpler designs. Bad waste solves the wrong problem.
Faster hardware will make programmer time more valuable than machine time
7 / 18
Separate string types are premature optimization. Strings are semantically a subset of lists.
Arc dropped strings, and recursive functions handled some tasks more easily than regular expressions
8 / 18
Future languages may flatten data structures further, possibly treating arrays, hash tables, and numbers as optimizations
9 / 18
Future languages should separate program meaning from implementation, with optimization advice added later
10 / 18
10Γ—
speed cost per interpretation layer
Layered systems buy flexibility and easier change
11 / 18
Bottom-up programming builds layers that act as languages, producing smaller, more flexible, more reusable software
12 / 18
Object-oriented programming persists because large organizations can accrete patches with it, not because it ensures reuse
13 / 18
Parallelism will usually stay optional and late-stage, except in special applications where optimization demands it
14 / 18
Profilers will matter more than faster compilers, because they guide programs from acceptable to maximal performance
15 / 18
Open-source languages like Perl, Python, and Ruby show language design shifting from researchers to working hackers
16 / 18
Static typing blocks true macros, and without macros no language is worth using
17 / 18
Read the full source
The Hundred-Year Language
paulgraham.com
18 / 18
Carouse
Turn any article, video, or podcast into a carousel you can browse in 30 seconds.
Carouse any link