The first and most important thing to know about choosing a language is that it’s not a question of what any one language can do that another can’t.

That means that all languages fundamentally have the same limits and abilities. That said, *every* language has it’s tradeoffs, and some languages are better suited for certain types of calculations and processing than others.

## Turing Completeness

I’ll spare you the mathematical details, but this is a concept that was proved by Alan Turing early on in the life of computer science.

Basically, there 6 primary operations that underly *every* *single calculation* performed by programming languages.

All modern day programming languages can complete each of these 6 actions. While this may seem like a small number of actions, it represents what all complex mathematical tasks can broken down into.

To give a simple example, think of the concept of adding. At first glance, you might think of addition as distinct from subtraction or multiplication. But, subtraction is just the addition of a negative number, and multiplication is simply repeated addition of the same number. (3×2 = 3 + 3; 3×4 = 3+3+3+3, etc).

When you start to think about how these tasks can be broken down, you can realize more complex relationships. Exponents, for example, can be broken down into multiplication, and multiplication is just repeated addition.

The point is: given the 6 basic mathematical tasks, any coding language can accomplish all of the same functions as any other.

## Languages Are Like Religion

Because languages can fundamentally achieve the same tasks, language choice often comes down to programmer preference, and/or ease of use/appropriateness of a language to complete a given task more efficiently than another.

When you talk to developers, many can be dogmatic about their own preferences, and argue that language or framework X is better than language Y for a thousand reasons.

A good friend and technical project manager once put this most succinctly:

“Language choice is like religion. Everyone’s evangelical about their own choice, and no one can definitively prove that any one is better than the other.”

## How To Choose

The result, then, is that you should choose a language based on your own preferences and aspects you want to learn.

You can read more details about which languages are best suited for which tasks in this post.