HeadlinesBriefing favicon HeadlinesBriefing.com

Why Programming Languages Rise and Fall

Hacker News •
×

Andrew Oram's two-part series for the Linux Professional Institute examines why programming languages rise and fall. He categorizes languages as immortal (C, C++, JavaScript), maybe (Java), retired (COBOL, FORTRAN, BASIC, Perl), false starts (Pascal, Objective-C, PL/I, Ada, Tcl), and bubble (Ruby). Near the end, Oram quotes Simon Peyton Jones: language adoption is "very weakly connected to its technical merits," with social and economic factors deciding.

The series sorts languages by outcome, but the interesting sort is by cause of death. Programming is three things at once: a vocation, an art, and a job. A language that makes any axis unnecessarily difficult won't survive replacement. Pascal failed as a job (no usable string type), Tcl couldn't scale. Ada and PL/I failed as art (mandated, not chosen). Perl lost its job market to Python; Haskell famously avoided success.

Two kinds of difficulty exist: violin difficulty (chosen, rewarding) vs. friction (pointless). C++ and Rust have violin difficulty with sufficient return. Ada's compliance apparatus is pure friction. JavaScript survives despite art failures because it's the browser's language. Objective-C thrived only as the iOS gateway; Swift replaced it. COBOL persists only because replacement is too expensive.

The analogy extends to music: a sampler can replicate a violin, but playing the violin is the point. Code exists because describing behavior in prose costs more than notation. Languages don't lose benchmark fights—they lose people. They rise when they lighten all three axes and fall when something else carries the weight, because the only question left is: is it fun?