Landin’s seminal paper “The next 700 programming languages” considered programming languages prior to 1966 and speculated on the next 700. Half-a-century on, we cast programming languages in a Darwinian ‘tree of life’ and explore languages, their features (genes) and language evolution from the viewpoint of ‘survival of the fittest’.
We investigate this thesis by exploring how various languages fared in the past, and then consider the divergence between the languages empirically used in 2017 and the language features one might have expected if the languages of the 1960s had evolved optimally to fill programming niches.
This leads us to characterise three divergences, or ‘elephants in the room’, where actual current language use, or feature provision, differs from that which evolution might suggest. We conclude by speculating on future language evolution.