There are more computer languages in existence than anybody knows, and still more keep getting created every year. There isn’t really any great reason to keep creating more languages, because existing languages are adequate to achieve any task we can think of.
Mostly people just make new languages because they can, and every once in a while somebody develops a language that’s good enough that a lot of people start using it.
That doesn’t mean that unpopular languages are bad. Some very good languages are not very popular at all. Some languages are still in use but generally considered to be obsolete. When a language becomes obsolete, that means it is practically dead, because no new applications will be created with it.
So the first reason why there’s a lot of languages is because people keep creating them, even when they don’t really need to. Another reason is because some languages are much better suited to certain tasks than others. Some programming languages are also much easier to learn than others.
Choosing a language to learn
With so many programming languages out there, learning all of them would be impossible. So you’ll need to narrow down your choices a bit. Making the choice is really difficult, but here are a few things to think about before you do:
When a language starts declining in popularity, that’s often an indication that it’s in danger of becoming obsolete. One thing you might notice is that the bit about career prospects is near the end of the list. Many people would be inclined to put it at the top of the list, but actually that’s a huge mistake, and the younger you are, the more of a mistake it is. Even so, it still is important.
Knowing what kind of things you’re likely to want to develop is really helpful too. Here’s a table that might help you decide:
If you mainly want to develop… |
You should probably learn… |
And maybe avoid… |
Online (web) applications |
HTML, CSS, JavaScript, PHP, and SQL |
Ruby, ASP, Perl, ColdFusion |
Games |
C, C++, Python, and DarkBASIC |
Ada, Java, Fortran, COBOL |
Business applications |
C, C++, Java, Python, and SQL |
Fortran, COBOL |
Science & Engineering applications |
Fortran, Pascal, Ada, C++, and C |
BASIC, COBOL, Java |
Military, Aerospace, Transport and Communications applications |
Ada, Python, C, C++, and SQL |
COBOL |
Educational Applications |
BASIC, Python, Pascal, Java, C, C++ |
Fortran, COBOL |
It may seem a little odd that COBOL is on the list of languages to possibly avoid if you’re interested in developing business applications, because the “B” in COBOL stands for “Business”. But it’s a really old language that doesn’t have much scope for new development, and it’s really difficult to write programs in it because it has a very strict syntax.
Here’s another table about how easy it is for beginners to learn each language:
Easy to learn |
Somewhat challenging |
Very difficult |
BASIC |
C (and C++) |
Fortran |
Xojo |
PHP |
Ruby |
Python |
JavaScript |
Ada |
HTML |
Pascal |
Java |
CSS |
SQL |
Perl |
And, finally, this table shows how various skills translate into career opportunities:
Skill |
Employment Base |
Salary Base |
Ada |
very low |
high |
ASP |
very low |
low to mid |
BASIC |
very low |
low |
C / C++ |
very high |
very high |
Fortran |
very low |
high |
HTML & CSS |
very high |
low |
Java |
high |
high to very high |
JavaScript |
high |
high |
Pascal (and Delphi) |
very low |
very low |
PHP & SQL |
high |
mid to high |
Python |
mid |
mid to low |
Ruby |
low |
very high |
Using these tables will make it a bit easier to choose the language that you feel is right for you. That is very important, that you should choose it yourself based on your own criteria, and not what somebody else thinks is best for you. Learning should be fun, and trying to learn something you don’t really like is usually not going to give the best results.