Timeline
Seven decades of general-purpose language design, grouped by the pressure that produced each wave. Dates are first public release or publication.
The shape of the record¶
Three views of the same dataset before the narrative: when entries appeared, how the index accumulated, and how long each period's concerns stayed live.
Periods¶
1950s
Escaping the machine.
1960s
Structure and abstraction.
1970s
Systems and reasoning.
1980s
Objects and scale.
1990s
The scripting and web wave.
2000s
Managed platforms and functional revival.
2010s
Safety without a collector.
2020s
Consolidation.
Period detail¶
Each period is followed by a note on the problem the wave was responding to.
| Period | Theme | Entries |
|---|---|---|
| 1950s | Escaping the machine | Fortran (1957), Lisp (1958), COBOL (1959) |
| The first languages that let a program be written in something other than the machine's own instruction set. Fortran established the compiler as a practical tool, Lisp established symbolic computation, and COBOL established that a language could be designed for a business domain. | ||
| 1960s | Structure and abstraction | ALGOL 60 (1960), APL (1962), BASIC (1964), Simula 67 (1967) |
| Block structure, formal grammar description, and the first object model. ALGOL supplied the notation that nearly every later language borrowed; Simula supplied classes and inheritance. | ||
| 1970s | Systems and reasoning | Pascal (1970), C (1972), Prolog (1972), SQL (1974) |
| C made a portable operating system possible and fixed the syntax of the next fifty years. Prolog and SQL demonstrated that useful programs could be written declaratively. | ||
| 1980s | Objects and scale | Smalltalk-80 (1980), Ada (1980), Objective-C (1984), C++ (1985), Erlang (1986), Perl (1987) |
| Object orientation moved from research to industry, driven by the need to organise programs too large for one author. Erlang answered a different question: how to keep running through failure. | ||
| 1990s | The scripting and web wave | Haskell (1990), Python (1991), Lua (1993), R (1993), Java (1995), JavaScript (1995), Ruby (1995), PHP (1995), OCaml (1996) |
| Networked deployment rewarded portability and fast iteration. Four of the languages that still dominate the web appeared within a single year. | ||
| 2000s | Managed platforms and functional revival | C# (2000), Scala (2004), F# (2005), Clojure (2007), Go (2009) |
| Virtual machines became platforms in their own right, hosting several languages each. Multi-core hardware renewed interest in immutability and message passing. | ||
| 2010s | Safety without a collector | Rust (2010), Kotlin (2011), Elixir (2012), Julia (2012), TypeScript (2012), Swift (2014), Zig (2016) |
| The decade's common theme is checking more at compile time: ownership in Rust, optionals and value semantics in Swift, gradual types over JavaScript in TypeScript, nullability in Kotlin. | ||
| 2020s | Consolidation | Swift 6 (2024), Rust editions, Java and C# release cadence |
| Rather than new general-purpose languages, the period is marked by established languages adopting each other's features: data-race checking, pattern matching, and structured concurrency became broadly available. | ||
Sources: language specifications, official histories, and release announcements. Grouping by theme is editorial; the dates are not.
Entries by decade¶
| Decade | Entries | Languages |
|---|---|---|
| 1950s | 3 | COBOL, Fortran, Lisp |
| 1960s | 4 | ALGOL 60, APL, BASIC, Simula 67 |
| 1970s | 4 | C, Pascal, Prolog, SQL |
| 1980s | 6 | Ada, C++, Erlang, Objective-C, Perl, Smalltalk-80 |
| 1990s | 9 | Haskell, Java, JavaScript, Lua, OCaml, PHP, Python, R, Ruby |
| 2000s | 5 | C#, Clojure, F#, Go, Scala |
| 2010s | 7 | Elixir, Julia, Kotlin, Rust, Swift, TypeScript, Zig |
| 2020s | 0 | — no entry meets the inclusion criteria |
Counts describe this atlas's 38 indexed entries and reflect its inclusion criteria, not the rate at which languages were created.
Longevity¶
Language adoption changes far more slowly than language creation. Of the entries here, those written in the 1950s through 1970s — Fortran, Lisp, COBOL, C, SQL — remain in production use, in most cases through successive standard revisions rather than replacement. The practical implication is that a language's design decisions outlive the hardware and the organisation that prompted them, which is the argument for recording them precisely.
The Swift version history shows the modern counterpart: a language whose syntax changed substantially through version 3 and then deliberately stabilised, first at the source level and later at the binary interface.