The Best Programming Languages to Learn (at least for me)

Posted by on Jun 1, 2012 in Computer, Programming

I’ve recently gotten very interested in improving my programming skills and learning new programming languages. So, one afternoon I did a lot of research online to try to descide what language(s) I should learn next. I came across this page that ranks programming languages based on users’ input on a variety of questions.

In addition to the information I gathered from other online sources, I very heavily used input I gathered from the hammerprinciple.com, but only for questions that applied to what I was looking for in a language, to create a list of the “best” languages to learn. Keep in mind that this list is very personalized, because it was based on only criteria that I deemed important, and the question of which programming language is “best” is subjective anyway. Regardless, here’s the list:

1. Python
2. C++
3. C
4. Haskell
5, Scala
6, Java
7, Ruby
8. O’caml
9. Common Lisp
10. Clojure
11. C#
12. Scheme
13. F#
14. Fortran
15. SmallTalk

I excluded PHP and Javascript because I already know or am learning it, respectively. Although, they wouldn’t have ranked very high anyway.

So, what sort of things was I looking for?

In general I wanted a language that is enjoyable to use, has a well established community, has a bright future, is good for web development(What I currently do), and is good for statistical analysis and used in quant finance (What I am considering doing some day).

Here are some of the specific questions from the hammerprinciple.com I considered:
I enjoy using this language
I find it easy to write efficient code in this language
I can imagine this will be a popular language in twenty years time
I would use this language for a web project
This language is very flexible
This language is well documented
The resources for learning this language are of high quality
This language has a good community
Third-party libraries are readily available, well-documented, and of high quality
There is a wide variety of open source code written in this language
Code written in this language tends to be very reliable
Code written in this language is very readable
Learning this language improved my ability as a programmer
It is easy to debug programs written in this language when it goes wrong
There are many good open-source tools for this language
Programs written in this language tend to be efficient
This language is good for numeric computing
This language is likely to have a strong influence on future languages
This language is likely to be around for a very long time
I use this language out of choice
I would recommend most programmers learn this language, regardless of whether they have a specific need for it

I purposely tried to ignore questions related to a languages popularity because I want to learn languages because they are good for what I want to do and not just because they are popular. I also wanted to avoid any languages that are primarily still used because of legacy code. I assume a languages popularity might also influence some of the questions anyway, and I may be slightly biased towards them already. In a sense I just wanted a pure list without the influence of popularity that most lists about programming languages contain.

In the end what I actually choose to learn probably will be influenced by their popularity because I may want to use them for a Job some day.

What language will I actually learn next? Probably Python, C++, Java, and R, which is not on the list, but only because it has a very specific purpose (it was crowded out by more general purpose languages). I am very seriously considering at least reading one book for each of theĀ languagesĀ listed, though.