I (finally) read Paul Graham’s The Hundred-Year Language over today’s lunch. In short, he says that there’s an evolutionary tree for programming languages, where some languages are dead branches, which means that they won’t influence future languages (for instance, Cobol – and Java, according to Graham, and I think I agree). What’s interesting when thinking about programming languages one hundred years into the future, he writes, is the “main branches”, because they “pass through the languages that have the smallest, cleanest cores.”
The smallest, cleanest core means that the language has the smallest possible set of fundamental operators. Paul Graham writes, “Any programming language can be divided into two parts: some set of fundamental operators that play the role of axioms, and the rest of the language, which could in principle be written in terms of these fundamental operators.” Graham thinks that “the fundamental operators are the most important factor in a language’s long term survival” (and I hope he’s right).