There are hundreds of programming languages available in 2021. So many in fact, that there is at least one for each letter of the alphabet.
The most well-known are Python, JavaScript, Java, C/C++/C#, PHP, Swift, and Objective-C.
When you are a beginner, it is difficult choosing your first language. We are afraid of picking the wrong one. In this post, I will try and explain the things to take into account when choosing a language to learn. Also, we will take a look at the world's most used languages, and which language I recommend you to learn.
Introduction
You want to start programming and you ask yourself the same question every other confused beginner ask themselves:
Which Programming Language should I learn?
Two possibilities, either:
- You already know what you want to program: a mobile app, a website, a video game, a desktop application, etc.
- You are clueless, but you know you want to learn.
In both cases, these next few criteria apply to you.
Age of a Language
Today, we no longer program as we used to in the 1980s. Programming languages have evolved over the years. More so that, the way we program has evolved. This is what we call shifts in Programming Paradigms.
In the beginning, we coded a list of instructions that the computer executed in a linear fashion, like a cooking recipe: this is Procedural Programming. It is used in languages like JavaScript, C, Pascal, or Perl.
Then we moved on to Object Oriented Programming where we create and use objects that communicate with each other. We can use OOP in languages like JavaScript, Java, Python, C#, PHP, C++, Ruby, Swift, or Objective-C. As you can see many languages allow this paradigm as it is best known and popular today.
Another paradigm that is gaining popularity these days is Functional Programming. The principle is to code a sequence of functions that has self-contained and don't have any side effects. Almost every language supports this paradigm, it's just how we use the language is what will matter.
If your goal is to become a professional developer, it should be in your best interests to pick a modern programming language. There are fewer and fewer opportunities in the job market for older languages. So go with Python instead of COBOL for example. I know this is obvious but it is something needed to be said.
Community and Popularity
If you want to get an idea of the most popular languages at the moment, you can take a look at the StackOverflow 2021 Survey on the subject.
You can also refer to the TIOBE Index which lists the most popular programming languages each month based on different sources of information.
Learning a popular language will allow you to reap all the benefits of an online community. Learning a new language is not easy, learning it on your own is even less so. Having a strong community means there are literally thousands of people ready to help you at a given time without asking for a cent. This is a major asset when you want to learn a language very quickly.
The more popular the language, the more resources you will find to learn it. Books, blogs, videos, podcasts, conferences, etc.
Choose a modern language with a large, active, and passionate community. JavaScript and Python are great choices because communities around these languages are massive today.
Available Libraries
Another reason for choosing a popular language is the richness of its environment.
A Framework makes it possible to quickly create very complex applications while maintaining a simple structure. While a Library is a set of code that can be used on your applications to facilitate your development and saving us time by not reinventing the wheel every time.
Today, to create modern applications, we often need to use frameworks and libraries. We choose languages, not because of their built-in features, but for libraries it runs. For example, React or TensorFlow.
Be sure to select a language that allows you to do the thing you want to do with the libraries and frameworks available for that language.
Ease of learning
It is not easy to learn a new programming language. No language claims to be the easiest to learn. But some are more difficult to learn than others.
You can divide them into two categories, low-level and high-level languages.
Low-Level languages such as Assembler or C make it possible to create highly optimized programs that are close to the hardware on which it is executed. With these languages, you have to do some things manually like, for example allocating and clearing memory. These things can be complicated for a beginner.
However, high-level languages like JavaScript are there for us to make applications without worrying about too many hardware-related details. Everything is abstracted away nicely and comes with lots of built-in tools and functions.
Learn a high-level language first. Learning something like C might scare you away, so do yourself a favor and pick something like Javascript or Python.
Developer Tools
Lastly, things like compilers, code editors, debuggers, syntax highlighters, etc are things to keep in mind when picking a language. You don't want to start coding blindly without taking advantage of the language's set of developer tools.
For some languages like C, you will need to compile your program first before you can run it. That is why C is a compiled language.
The other so-called interpreted languages require very few tools (if any) before executing them. For example, you can run JavaScript literally on your browser console.
Choose an Interpreted language (like Javascript or Python) so you don't have to bother with build tools or specialized IDEs.
Use Case
Now, one language can't be used to create everything you would like. Each language has its strengths and weaknesses based on the type of project you use it on. Let's summarize some of the possibilities.
Video Games
If you are choosing a language for making video games. It depends on the platform it is going to run.
For Windows PC: I recommend C++ (standard in the video game industry).
For Consoles (Xbox, PSX, etc): You have no other choices than C/C++/C#. SDKs made by each manufacturer of these consoles are available for developers to use.
For Browsers: It's JavaScript.
Websites
Again, it depends on what you want to achieve. If you want to make a static website, learn HTML/CSS and JavaScript. If you want to make a dynamic website with a backend. Learn NodeJS (using Javascript) or PHP.
Mobile App
For Android: Learn Java or Kotlin.
For iOS: Learn Swift.
And, if you want one application that can run on both, learn Javascript with a framework like React Native.
Desktop App
You can use Java or C# to create desktop applications, but most modern applications today run on Electron with Javascript.
Top Languages in 2021
JavaScript has held first place for 9 years now. Here are the top 5 of the most used programming languages in the world.
- JavaScript
- Python
- Java
- C#
- C++
My Recomendation
You have probably guessed it. It's JavaScript, I have mentioned it several times in this article already, it is the most popular language in the world today and it is an all-rounder language that runs everywhere and does (almost) everything.
It is easy to learn and easy to run. You can run it almost anywhere, and there are popular tools like jsFiddle and Codepen where you can run, execute and share your code in an instant.
From day one, you can make cool and fun applications with graphics (using CSS) and animations from your browser.
JavaScript also allows you to use all 3 paradigms we mentioned at the start. Also, it is a high-level language, making it easier to learn.
It is very flexible. If you don't know what kind of project you want to do, learning JavaScript won't limit you in your future choices. Because it runs on all and any hardware.
In addition, thanks to many frameworks and libraries available, you can create a mobile application, or a website, or a video game, or a desktop application, or even Augmented or Virtual Reality apps. Crazy right?
The demand for this language continues to grow, you will have an easier time finding a job and your salary will be among the highest in the pool of software developers.
It is the language of the future, but not for the reasons you think. Not because it is the best programming language, but because it is more profitable for a company to hire only JavaScript developers who can work on both server and client-side.
Having many developers in different roles using only one language for the whole product greatly facilitates the maintenance, architecture, and modularity of a project.
Lastly, there is a massive community behind JavaScript. To put into context, the community behind ReactJS, a javascript framework is bigger than entire languages like C++ or Rust.
The online resources are plentiful. You can get all the help you need in your project online in seconds. You can't go wrong by betting on a language with an active community like JavaScript.
Summary
In this article, we looked at how we can take an educated pick for a language. We also looked at the top languages in the world today and what I recommend using. I want you to take all these facts with a grain of salt and remember that each one of us has different goals in software development. As time goes by and different technologies emerge, the popularity of these languages will go up and down. Which also affects your job and salaries. So don't get stuck on one language, keep learning and trying different things.