When writing CTM I was struck with how many of the good ideas in programming languages were discovered early on. The decade 1964-1974 seems to have been a "Golden Age": most of the good ideas of programming languages appeared then. For example:
- Functional programming: Landin's SECD machine (1964)
- Object-oriented programming: Dahl and Nygaard's Simula (1966)
- Axiomatic semantics: Hoare (1969)
- Logic programming: Elcock's Absys (1965), Colmerauer's Prolog (1972)
- Backtracking: Floyd (1967)
- Capability security: Dennis and Van Horn (1965)
- Declarative concurrency: Kahn (1974)
- Message-passing concurrency: Hewitt's Actor model (1973)
- Shared-state concurrency: Hoare's monitors (1974)
- Software engineering: Brooks's mythical man-month (1974)
It is a sobering thought that not much new stuff has come since then. Hindley-Milner type inferencing in 1978, constraint programming in 1980, CCS (precursor of pi-calculus) in 1980. What revolutionary new ideas came since 1980? Most of the work since then seems to have been in consolidation and integration (combining the power of the different ideas). Right?