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:

Personal preference

The kind of things you want to develop

How limiting the language is

How easy or hard the language is to learn

Potential career prospects

Whether the language is rising or declining in popularity

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.