eweek.com’s article on ten programming languages you should learn right now is the most ill-informed pieces I’ve read in a while. Here’s my (hopefully better) attempt.

Five Programming Languages

Scheme. If you come from a “curly braces” background you should learn a functional language. As Eric Raymond says about the very similar Lisp: LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot. I prefer Scheme because it is purer (no need for funcall). Erlang. Another functional language. Concurrency done right. In the multiprocessor future this could be very important indeed. Ruby. A conscious attempt to make a programming language that is a joy to use. String handling from Perl, OO from Smalltalk, closures from Lisp/Scheme. Javascript. The only way to create a rich UI in current web browsers. C. For when things must be fast. Use with Ruby, Python and many other languages when you need to optimize a section of your code for performance.

C, Ruby and Javascript are on the original eweek list. As for the other seven on there:

Maybe

PHP – Quick and dirty. Yes, it’s quick, but it’s dirty.

Python – Dynamic, fairly intuitive, list comprehensions are great. But explicit self? No ternary if? Significant whitespace? The OO feels tagged on.

No

VB.NET – Hidebound, moribund offering from equally hidebound and moribund company. Plus it is inferior to it’s sibling C# in every conceivable way.

C# – Java with a little extra syntactic sugar. Not worth paying the Microsoft price for.

Perl – Somewhat deserved reputation as “write only”. Other languages (Ruby) have absorbed the lessons of perl (mainly – have brilliant regex support) and moved on. Once important, but less so every day.

Java – Bruce Tate wrote “Bitter Java” (2002), then he wrote, “Better, Faster, Lighter Java” (2004), then he wrote, “Beyond Java” (2005). You get my point.

Agree? Disagree? Think I’m a lunatic? Make a comment!