FORTRAN (FORmula TRANslation) is the oldest programming language still in serious production use, created in 1957 by John Backus at IBM, and responsible for computing approximately everything that matters: weather forecasts, climate models, nuclear simulations, particle physics, fluid dynamics, structural analysis, and the trajectories of every spacecraft that has ever left Earth.
FORTRAN does not trend on Hacker News. FORTRAN does not have a logo redesign. FORTRAN computes the universe.
The First Compiler
Before FORTRAN, programming meant writing machine code or assembly — direct instructions to the hardware, one operation at a time. Backus’s team at IBM proposed something heretical: a language that looked like mathematical notation, translated automatically into machine code by a compiler.
The idea was so radical that most programmers dismissed it. A compiler could never produce code as efficient as hand-written assembly, they said. They were wrong. The first FORTRAN compiler, delivered in 1957 for the IBM 704, produced code that was within 20% of hand-optimized assembly. By the 1960s, FORTRAN compilers matched or exceeded human-written assembly for numerical computation.
This was the beginning of programming languages. Not COBOL (1959). Not LISP (1958). FORTRAN. 1957. Everything since is a descendant, a sibling, or a reaction.
Why It Survives
FORTRAN survives for one reason: it is fast at numbers.
Not fast in the way that a startup means fast (“we deployed twice today”). Fast in the way that a physicist means fast: floating-point operations per second, vectorized loops, cache-optimal memory access, and numerical precision to fourteen decimal places.
FORTRAN was designed for scientific computation. Sixty-nine years later, it is still the best language for scientific computation. Not because alternatives don’t exist — C, C++, Python, Julia, Rust all compete — but because:
-
The compilers are extraordinary. FORTRAN compilers have been optimized for nearly seven decades. Intel’s FORTRAN compiler knows things about vectorization that most compiler engineers have never considered.
-
The code is proven. The LAPACK linear algebra library, written in FORTRAN, has been tested by every physicist, engineer, and mathematician on Earth. Rewriting it in Rust would produce a new library that might be correct. LAPACK is correct. The difference between “might be” and “is” is the difference between a simulation and a catastrophe.
-
The stakes are too high. Nuclear weapons simulations at Los Alamos have been in FORTRAN since the 1960s. Climate models at NCAR. Structural analysis at NASA. These codebases are not rewritten because the cost of a bug is not a 500 error — it is a bridge collapse, a missed hurricane, or worse.
The Aesthetic
FORTRAN is not beautiful. FORTRAN is correct.
SUBROUTINE DGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,
$ BETA,C,LDC)
C
C PURPOSE: MATRIX-MATRIX MULTIPLY C := ALPHA*A*B + BETA*C
C
DO 90 J = 1,N
DO 80 L = 1,K
TEMP = ALPHA*B(L,J)
DO 70 I = 1,M
C(I,J) = C(I,J) + TEMP*A(I,L)
70 CONTINUE
80 CONTINUE
90 CONTINUE
Six-character variable names. Column-sensitive formatting. GOTO statements. CONTINUE labels. Comments that begin in column 1 with a C. Continuation characters in column 6.
This is ugly by every modern standard. This is also the matrix multiplication routine that runs on every supercomputer on Earth, that has been benchmarked, profiled, and optimized by hardware vendors for forty years, and that produces results you can bet a space mission on.
A Rust developer would write a more elegant matrix multiply. A FORTRAN developer would ask: “Does your version run on 100,000 cores and produce the same answer to fourteen decimal places?” The silence that follows is FORTRAN’s entire argument.
FORTRAN vs. The World
| FORTRAN | The Replacement | |
|---|---|---|
| Age | 69 years | varies |
| Ugly | yes | less so |
| Fast at numbers | fastest | close |
| Proven at scale | decades | years (if lucky) |
| Runs nuclear sims | yes | not yet |
| Runs climate models | yes | partially |
| Has a package manager | no | yes |
| Needs a package manager | no | apparently |
| Developer pool | shrinking | growing |
| Code correctness | proven | assumed |
The FORTRAN Programmer
The FORTRAN programmer is not a software engineer. The FORTRAN programmer is a physicist, a meteorologist, an aerospace engineer, or a structural analyst who happens to write code. They learned FORTRAN because their advisor’s code was in FORTRAN, because their advisor’s advisor’s code was in FORTRAN, because at some point in the 1970s someone wrote a subroutine that computes eigenvalues correctly and nobody has had a reason to rewrite it.
The FORTRAN programmer does not attend conferences about FORTRAN. The FORTRAN programmer attends conferences about physics, climate science, or computational fluid dynamics. The FORTRAN is incidental. The science is the point.
This is why FORTRAN survives: it is not maintained by a community of language enthusiasts. It is maintained by a community of scientists who need their code to be right, and FORTRAN has been right for longer than most languages have existed.
Measured Characteristics
Year created: 1957
Age: 69 years
Supercomputers running FORTRAN: most of them
Weather forecasts computed in FORTRAN: all of them
Nuclear simulations in FORTRAN: all of them (that we know of)
Spacecraft trajectories computed: all of them
Variable name limit (FORTRAN 77): 6 characters
Column limit: 72 (plus 8 for labels)
Languages that tried to replace FORTRAN: dozens
Languages that succeeded: 0
LAPACK test coverage: decades of physics
GOTO statements in production FORTRAN: millions (they work)
Package managers: 0
Packages needed: 0
Conference talks about FORTRAN: rare
Software computed by FORTRAN: the universe
