DEV Community

Cover image for Which programming language should you learn in 2020?
Aditya Giri
Aditya Giri

Posted on • Originally published at blog.hyperlog.club

Which programming language should you learn in 2020?

The programming world moves fast. There are a ton of different programming languages spawning every year. Enterprises use these languages as per how they cater to their needs. A couple of years ago, the de-facto language of any enterprise used to Java. But in the current day, the scenario has changed completely. (We still have java as a candidate here 😉)

In this article, we have compiled the top trending languages that enterprises are using. For each language, we have divided the section into the main feature of the language, job market, usability, career paths, and average global salary of that particular language.

**NOTE: The data in this article is compiled from various sources such as Hired, and StackOverflow Survey.

1. Go

Go Logo

Go Language has been one of the top trending languages of 2019. It was introduced in November 2009, which now completes a decade of Go. It was developed by Google and is currently actively used by large corporations such as SoundCloud, Netflix, and Dropbox.

The reason behind such a drastic growth of Go language is the advantage for multithreaded tasks such as efficient processing of parallel processes, using memory only when it is necessary, and fast start-up time.

There are a lot of career opportunities for Go. The demand for Go developers is quite high. Since it is one of the most in-demand programming languages, it is always a good choice to start learning Go.

The average global salary for a Go developer is around $109k.

2. Rust

Rust Logo

Rust language is developed by Mozilla Research back in 2010. It is the most loved language in StackOverflow annual survey since 2016, every year. Rust is being used in a wide variety of tasks. There are web browsers, operating systems, as well as GPUs being programmed using rust language. It has picked up its pace in systems programming. Some developers believe it can replace C/C++ for low-level programming. Rust is being used in some of the largest corporations which include Google, Microsoft, Cloudflare, and Dropbox.

Rust is a multi-paradigm system programming language that mainly focused on safety. It specializes in safe concurrency, and memory safety while maintaining high performance. It is intended for highly concurrent, highly safe systems and programming in the large.

Job opportunities are plentily available for rust developers. Since the language is relatively new and is being adopted by such a wide community, this is the least of the problems.

The average global salary for a rust developer is around $90k.

3. Elixir

Elixir Logo

Elixir language is developed by José Valim in 2011. It was developed with the primary goals of enabling higher extensibility and productivity in the Erlang VM while keeping the compatibility with the Erlang's ecosystem. Elixir is built on top of Erlang and BEAM VM. It is primarily used for web development, but there are a lot of other cases in which it is being used. Elixir is being adopted in large companies such as Apple, Discord, and Pinterest.

Elixir is a functional, concurrent, general programming language. Since it is built on top of Erlang, it shares similar abstractions for building distributed, fault-tolerant applications. Elixir also has support for metaprogramming with macros and polymorphism via protocols.

The market is still evolving and providing an average number of job opportunities for Elixir developers at the moment. But considering its adoption at large companies such as Apple, Elixir will definitely be one of the most in-demand programming languages in the near future.

The average global salary for Elixir developer is $102k.

4. JavaScript

JavaScript Logo

JavaScript is a widely known programming language. It is used to write web apps on both the front and back end. This language is used by almost every company in the world as it is an essential component for building interactive web pages. Some of the various career paths that you can take using JavaScript are Front end developer, back-end developer, and Full Stack Developer.

JavaScript is a multi-paradigm language. It supports event-driven, functional and imperative programming styles. Initially, it was only used as a client-side language, but recently, it is being used in almost every other task except system-level programming. The language has support for dynamic typing, prototype-based object-orientation, and first-class functions. It has been rebranded to ECMAScript but continues to be called JavaScript as usual.

The job market for JavaScript is always active. There are a ton of different jobs on multiple different job boards.

The average global salary for JavaScript developer is $100k.

5. Python

Python Logo

Python language was released 29 years ago in 1991. Since then, the language has taken the industry by a storm. It is used for a variety of tasks including, but not limited to Machine Learning, web development, artificial intelligence, and data science. It is used by a variety of large enterprises such as Google, Microsoft, and Facebook.

Python is dynamically typed and garbage collected language. It supports procedural, object-oriented, and functional programming paradigms. It is also known as "batteries included" language due to its comprehensive standard library.

Python remains always active in the job market.

The average global salary for Python developer is $96k.

6. Java

Java Logo

The Java programming language is one of the most highly-demanded among employers and popular among developers according to the GitHub team. Java is used to develop products in the banking sector and in automated testing. It is especially appreciated for its cross-platform thanks to JVM. It is used by almost all major banking institutions.

I don't really need to give the major Java features, but still for the sake of writing, here they are. It is class-based, object-oriented and s designed to have as few implementation dependencies as possible. With JVM, it aims to achieve write once, run anywhere concept. Java is compiled to bytecode which can run on any JVM regardless of computer architecture.

The job market for java remains stable. Although, the market is quite saturated. I wouldn't personally recommend going after this language just to land a job post.

The average global salary for Java developer is $100k.

7. Ruby

Ruby Logo

Ruby gained the utmost popularity as a tool for developing Web apps, and it was used for developing the server part of many popular worldwide services. The language was built by keeping in mind short development time, clarity and simplicity. It is used by multiple large corporations such as Github, and Basecamp.

Ruby is dynamically typed and uses garbage collection. It supports multiple programming paradigms such as procedural, object-oriented, and functional programming.

The job market for ruby is quite active. Recruiters love the veterans of Ruby language with experience of 10+ years according to Hired.

The average global salary of Ruby developer is $94k.

8. Scala

Scala Logo

Scala is a language developed 15 years ago based on the top of Java. It provides language interoperability with Java. Scala is used for web and desktop app development, distributed applications, data analysis, and data streaming. It is used by tech behemoths such as LinkedIn, Twitter, and Netflix.

Scala is a general-purpose programming language providing support for functional programming and a strong static type system. It includes many major features you can expect from programming languages with the functional paradigm.

The job market for Scala is quite stable. I'd recommend you learn Scala over Java in the current day.

The average global salary for Scala developer is $104k.

9. Clojure

Clojure Logo

Clojure is another programming language developed at supported strongly by Google. It was released 12 years ago in 2007. Clojure is a modern, functional, and dynamic dialect of the List programming language on Java platform. It is used by the likes of CircleCI, Braintree, and Groupon.com.

Clojure language advocates immutability and immutable data structures. This focus on immutability and explicit progression-of-time constructs facilitate more robust, and concurrent programs. These programs are simple and fast.

Clojure has an active demand in the market. Since a lot of enterprises have started a slow switch to Clojure, expect this trend to grow over the years.

The average global salary of Clojure developer is $96k.

10. Kotlin

Kotlin Logo

The programming language Kotlin developed by the IT-company JetBrains has become the official development language for Android. This was officially announced at the Google I/O conference in 2017. It is quite possible that soon the apps for Android devices will be written exclusively using Kotlin, so those wishing to progress in the mobile development direction are advised to take a closer look at it. Since Android apps will soon be completely switched to Kotlin, multiple companies have started using it.

Kotlin language has easy to understand and laconic syntax, full compatibility with Java, and a growing community. Most of all, it has strong support from Google.

The job market has steadily been demanding more and more kotlin developers.

The average global salary of Kotlin developers is $75k.


Conclusion

So the main conclusion that can be drawn from these recent trends in languages, is that functional programming is on the rise. There is an upward trend for raw power and performance optimization. And most importantly, there is a need for developers to keep updated with these languages.

It can be really intimidating when you start out in one of these languages and don't which clear pathway you should take. That's why we have been working on a free and open-source community hyperlog.club where you can go through aggregated resources from the internet to master any given technology. We are currently slowly expanding our library. Since we are completely open-source, you can even contribute to our growing list of resources. You can join the community discord server right now.

Do you think these programming languages will dominate the market in the coming years? Let me know your thoughts on it in the discussion on dev.to

Top comments (13)

Collapse
 
aminmansuri profile image
hidden_dude

Indeed ratings:

  1. Go: 2,179 jobs (unfortunate name makes it hard to measure)
  2. Rust: 1,535 jobs
  3. Elixir: 521 jobs
  4. JS: 58,524 jobs
  5. Python: 75,337 jobs (WARNING: take with grain of salt, many jobs say "scripting languages such as.." and include python)
  6. Java: 72,380 jobs
  7. Ruby: 16,469 jobs
  8. Scala: 7,218 jobs
  9. Clojure: 431 jobs
  10. Kotlin: 2,049 jobs

One missing addition should be C# with 32,498 jobs.

So your list varies wildly in terms of "domination".. but of course Tiobe intends to measure growth trends. Indeed mainly is correlated how many unfilled jobs there are right now (ie. its an indicator of unfulfilled demand).

Collapse
 
brainbuzzer profile image
Aditya Giri

Yeah. I had originally written it as a piece under title "Top trending programming languages of 2019". But then due to less reach, I had to change the title.

Collapse
 
aminmansuri profile image
hidden_dude • Edited

What would be cool is to see what truly original languages there are in 2019.

Most of these commercial languages don't seem much different than their historical ancestors.
Most of what's here could be covered with a study of Smalltalk and Lisp and maybe one other language.

No real weird stuff. No parallelism, nothing truly new. Nothing weird like Haskell or Prolog. Nothing really brave like Smalltalk.

Someone once said that computer language innovation ended in 1980. I'm not sure that's exactly true, but a loss less innovation has appeared since then. Most of this list are rehashes from the past. I don't gain much learning how to write a for loop in a different language, or a mapcar/reduce.

Thread Thread
 
aminmansuri profile image
hidden_dude

Elixir seems most interesting of the bunch.

Thread Thread
 
brainbuzzer profile image
Aditya Giri

Yeah, Elixir is one of the most effective languages among all these.

And also, thanks for that tip. I've been following a bunch of different languages like V Lang, Nim, and Zig. I'd definitely be writing an article on it.

Thread Thread
 
davidwhit profile image
DavidWhit • Edited

Yes, but my two cents believes you can really do anything big or small with rust bolting on what you want to make it the language to suite your needs. I also think Rust provides a modern approach to low level programming. I only spent 3months looking into elixir and it was ok just not for me the OTP model still feels foreign. The Beam and erlang behind the scenes I'm also unfamiliar. I might be wrong but I feel its place is niche. Though as always pick what you like and go with it and dismiss others opinions.

Collapse
 
ambroseus profile image
Eugene Samonenko

pay attention on Dart + Flutter

Collapse
 
vinceramces profile image
Vince Ramces Oliveros

Wait until you see: 4 years of experience in Flutter

Collapse
 
ambroseus profile image
Eugene Samonenko

OMG.. cool! 8)

Collapse
 
darkes profile image
Victor Darkes

Nice list but I definitely disagree with learning Scala over Java. If a company desires someone who's familiar with Scala they're probably looking for someone experienced in Data Engineering. Java is ubiquitous. You might not end up with the flashiest role but you'll be able to find something stable pretty quickly.

With that said I'm partial to Kotlin as the eventual leading language of the JVM. Since it's supports functional programming my hope is that the data community adopts it one day.

Collapse
 
juancarlospaco profile image
Juan Carlos

Nim lang definitely.
Scala-Native looks good too.

Collapse
 
supryantowp profile image
Supryanto Widadi Putra

How about php? Im still learn php is that woth it for 2020?

Collapse
 
genta profile image
Fabio Russo

PHP won’t go anywhere from top demanding languages list.
Continue to learn It.