As is widely known, there has been a massive effort to vote for the New Seven Wonders of the World, an update to the classic list of antiquity.
A fun thought experiment is to list the 7 Wonders of Programming Languages.
Imagine someone is new to our planet, civilization, or computer science. You want to show them the definitive list of programming languages: 7 wonders. What do you pick?
Making a list is easy. Trimming a list is difficult, and that's the problem with Seven Wonders.
Especially when you consider all of the available languages. For a wonderful evolutionary map, see this photo from Wired.
My list is below. Roughly speaking, my criteria are:
- Proven track record and legacy. Sorry, Groovy, much too soon.
- Success either in terms of influence or outright usage. However, sheer popularity is not enough.
- Consideration for brilliance and innovation.
- Admittedly, there is some blurring of the line between pure syntax and the platform/libraries.
Assembly is older, the Turing machine is much older, but Fortran takes the prize as the grand-daddy of computing. It is arguably the "Proto-Indo-European" of procedural languages. Indeed, it was ugly, was not as influential as, say Algol, and had major problems, but it has a strong argument for being "first".
For decades, university profs have whipped out this functional language when they want to mess up students. After an initiation to the Algol-based languages, there is no preparation for a mind-trip without for loops or if statements. Massively influential in its space (i.e. non-procedural computing).
Though Smalltalk never seemed to break out of its cult-following, it pretty much nailed OOP right on the head in terms of execution. Smalltalkers are rabid fans and the general community spawned a stunning array of ideas, from OO concepts to library design and development methodologies.
Does this language need an explanation? Though the syntax is still a bit smelly, even after all these years, this is the definitive iron workhorse, the Lou Gehrig of languages.
Python is on the list for 3 reasons. One, it is an educator's dream. It is easy to learn and so friendly that the interactive window harkens back to a simpler time of computing. Second, it is extremely effective for handling the "currency of computing" -- strings. Finally, it is an excellent example of a language that "stays out of the way" even when projects scale in size (i.e. it can be used for newbie programming or high-end applications).
Some may sniff that Java has been a hype machine for 10 years. Wrong. The hype has been huge at times, but I think Java is actually under-rated. With a strong lineage to C++ and Smalltalk, Java got a lot of things right. Reflect on the JVM, packages, naming of classes/files, Unicode support, reflection... the list goes on. One day, historians will say that the pervasiveness of Cobol "was like Java, only smaller in scale".
There's the list.... let the flames begin!
What's your list?
ps. Honourable mentions to C++, Visual Basic, Cobol, Perl, and APL.