Nicely written up but superficial analysis and trite conclusions. It would be nice if someone took this comparative analysis of programming languages a little more seriously and go beyond the tiresome "should a semicolon be a separator or a terminator" or the naive imperative-functional distinctions.<p>Take for example ML (prototypical high-level functional) vs C (prototypical low-level imperative). What makes them essentially different? In ML you have the common imperative features (assignment, references) and in C you can write functions including higher-order (via pointers). The answer you are looking for is "memory management", automatic in ML versus manual in C. Everything comes out of this distinction, down to the fact that in C you don't have lambdas and currying (because no garbage collection means no closures).<p>What makes ML and Algol 60 different? Both have a strikingly similar set of primitives, imperative and functional. The difference is call-by-value in ML vs. call-by-name in Algol 60, which leads to global effects in ML vs. local effects in Algol 60.<p>What makes Lisp different from Scheme, the misunderstanding of alpha conversion in Lisp versus its correct implementation in Scheme.<p>And so on. It would be fun if someone who actually know programming languages beyond the naive and the trivial took time to write a proper potted history and/or comparative analysis.
This entire piece seems to have a bit of a fallacy running under it, that there exist ideal computer languages, and that we should treat all of them equally.<p>Rather, I'd argue that there are ideal computer languages for specific problems, and most of the holy wars he mocks have their roots in people working on different problems rightly concluding that their language X is ideal and language Y is inferior. The flame wars are peripheral.<p>That said, there are solid reasons for Dijkstra's critiques of BASIC and in lesser degrees Pascal and friends. Almost all the dialects of BASIC deserve to die.
The programming world isn't as balkanized as natural languages. If Tiobe is to believed, the top 20 programming languages account for 85% of "use". By contrast, the native speakers for the top 20 natural languages only have 50% of the world population. Here's a spreadsheet with the data.<p><pre><code> http://j.mp/hiPGXA
</code></pre>
Other factors to consider: learning a new programming language requires less than a tenth the effort of learning a natural language (my estimate). That's for people. Getting my laptop to speak a new language is mostly a matter of downloading the interpreter or compiler. Granted the interpreter or compiler has to be initially ported to the architecture or OS. So not only is there less programming language balkanization, but the cost of balkanization is less.
I thought this a very nice, even-handed treatment of the various religious wars and the reasons for them over time. Of course, I also prefer Lisp, so I am predisposed to agree with the author.
The picture is an odd programming language family tree. Since when was CLOS a programming language, descended from Common Lisp? The Common Lisp Object System -- that's what CLOS stands for -- is just how Common Lisp does objects. You can make another object system as a library, if you want to. In fact, that's a pretty fun exercise.
We almost did our web framework in Scheme back in late 90s, but for some weird reasons settled on PHP instead. Our project, and maybe the state of Open Source CMSs could look different if we had chosen otherwise (Midgard, our framework, was the second free software CMS out there, and the first for PHP).<p>Anyway, this article made me buy the Wizard Book and Land of Lisp just to get back to the language... Last time I read (parts of) the Wizard book was in the student commune some time around 97.
The premise is the fatal disease. Programming languages are tools of expression. Asking which programming language is "best" is like asking which musical instrument is best. All the centuries of refinement and craftsmanship that go into making a good violin don't invalidate the piano.
Curl and Links are web oriented programming languages? As I use and understand them, they are both webbrowsers.... Maybe haven't been keeping up with development..<p>EDIT: apparently both <i>are</i> languages as well. What retarded naming!