
If you organized programming languages into tiers based on their popularity, they would fall into three tiers. The top tier would include the mainstream languages such as Java, JavaScript, Python, Ruby, PHP, C#, C++, and Objective-C. While some top tier languages may be fading, you’d better know one or more of these languages if you want to easily find a job.
Second-tier languages are waiting to break into the mainstream but haven’t quite made it. They have proven their worth by building strong communities of support, but they still aren’t used by a large number of more conservative software companies. Scala, Go, Swift, Clojure, and Haskell are languages I would put in the second tier. Some companies use these languages in a few services, but wide industry use is rare (except for Swift, which is starting to overtake Objective-C as the primary iOS language). Go and Swift both have a good chance of moving from the second tier to the first over the next two to three years.
Most of the languages in the top tier are firmly entrenched. It takes a while for a programming language to fall out of the top tier, and it’s very hard for a second-tier language to break into the top tier.
The emerging languages of this article are in a third tier, and they are just starting to gain a following. Some languages have been in the third tier for many years, never taking that next step toward popularity, while others have burst onto the scene in just one or two years. Here are five languages that fall into the latter category within the third tier.
The five programming languages that I’ll focus on are fairly new (so this might be the first time you hear about them in detail), and they clearly have a strong chance of breaking into the group of second-tier languages in the next two to three years. Maybe someday one of these languages will even be able to crack the top tier.
Here’s why these five languages were chosen for this list.
Elm is becoming popular within the JavaScript community, primarily among those who prefer functional programming, which is on the rise. Like Babel, TypeScript, and Dart, Elm transpiles to JavaScript.
Rust is a systems programming language meant to replace a lot of C and C++ development—which is why it’s surprising to see this language’s popularity growing the fastest among web developers. It makes a little more sense when you find out that the language was created at Mozilla, who is looking to give web developers that are forced to write low-level code a better option that’s more performant than PHP, Ruby, Python, or JavaScript. Rust was also crowned the “most loved” technology in StackOverflow’s 2016 developer survey (meaning it had the most users who wanted to keep using it).
Kotlin has been around for about five years, but it finally reached the production-ready version 1.0 this year. Although it hasn’t achieved the popularity of Scala, Groovy, or Clojure—the three most popular and mature (non-Java) JVM langauges—it has separated itself from the myriad other JVM languages and seems poised to take its place among the leaders of this group. It originated at JetBrains—makers of the popular IntelliJ IDEA IDE. So you know it was crafted with developer productivity in mind. Another major reason Kotlin has a bright future—you can easily build Android apps with it.
Crystal is another language that hopes to bring C-like performance into the highly abstracted world of web developers. Crystal is aimed at the Ruby community, with a syntax that is similar to and, at times, identical to Ruby’s. As the already large number of Ruby-based startups continues to grow, Crystal could play a key role in helping take those applications’ performance to the next level.
Elixir also takes a lot of inspiration from the Ruby ecosystem, but instead of trying to bring C-like benefits, it’s focused on creating high-availability, low-latency systems—something Rails has had trouble with, according to critics. Elixir achieves these performance boosts by running on the Erlang VM, which has a strong performance reputation built over its 25 years in the telecom industry. The Phoenix application framework for Elixir—more than any piece of this blooming ecosystem—has given this language legs.
Now, take a quick peek at four of these five languages making their way up the popularity ladder, according to StackOverflow and GitHub data:
Each of these languages already has an enthusiastic community and its own weekly newsletter (That’s when you know you’ve made it!). If you’re thinking of learning a younger language with exciting possibilities for the future, read these elevator pitches for each of the five languages I just mentioned—written by experienced enthusiasts and leaders in their respective ecosystems.
Elm is a usability-focused functional programming language that compiles to high-performance JavaScript. You can use it with or without JavaScript to build user interfaces on the web. Elm’s primary benefits compared to JavaScript are reliability, maintainability, and programmer delight. More specifically:
Elm code can also interoperate with JavaScript, meaning you can introduce it in small doses to your JS code base so that you can still leverage the enormous JS ecosystem and avoid reinventing the wheel.
Check out guide.elm-lang.org to get started, Elm in Action for elaboration, and How to Use Elm at Work if you’re wondering what it would be like to use Elm at your job.
This section was written by Richard Feldman, author of Elm in Action and creator of elm-css, a CSS preprocessor where you write Elm instead of CSS.
Rust is a systems programming language that combines C-like efficiency and control over memory with functional language features such as strong static typing and type inference. It has three primary design goals:
Rust also has several distinguishing features:
For more info, check out The Rust Book and Rust by Example.
This section was written by Will Crichton, a Ph.D. student at Stanford University who focuses on parallel/concurrent systems, visual computing, and programming languages/compiler design. He writes often about Rust on his blog.
Kotlin is a statically typed language that targets the JVM and JavaScript. Kotlin was born out of need at JetBrains, which was looking for a new language in which to write its tooling, which was mostly written in Java. Something that would allow it to leverage its existing codebase and at the same time resolve some of the issues it had with Java. And it was precisely common pitfalls that one encounters when writing software that shaped much of Kotlin’s characteristics.
Kotlin has and will always be about pragmatism—seeing common issues we encounter frequently when writing code and trying to help address these. This surfaces through various language features such as:
html {
head {
title {+"XML encoding with Kotlin"}
}
body {
p { + “This is some HTML” }
}
}
Kotlin 1.0 was released in February 2016 after more than five years in development and extensive testing in real-world projects. Currently, over ten products at JetBrains use Kotlin, as do companies such as Amex, NBC Digital, Expedia, and Gradle.
For more information, visit kotlinlang.org
This section was written by Hadi Hariri, vice president of developer advocacy at JetBrains, editor of the Kotlin blog, and primary spokesperson for Kotlin.
Crystal is a general-purpose programming language with the motto “Fast as C, slick as Ruby.”
It’s a high-level, statically typed, compiled, fully object-oriented programming language with advanced type inference and garbage collection.
The design goals of Crystal are:
Crystal has unique features such as:
Bonus:
Expressiveness: Code is read much more than it is written. Thanks to Ruby, Crystal is really expressive and easy to understand. It’s easy for newcomers to learn and pays off in the long run with less maintenance/noise.
For more information, you can check the official Crystal Book and Crystal for Rubyists.
This section was written by Serdar Doğruyol, author of Crystal for Rubyists; creator of Kemal, a web framework for Crystal; and the curator of Crystal Weekly.
First introduced in 2012, Elixir is a general-purpose functional language designed for productivity, scalability, and maintainability. While the language is relatively new, it compiles to bytecode that runs on the Erlang Virtual Machine (BEAM). The Erlang VM was born out of the telecom industry, has been evolving for almost 25 years, and powers many massive, high-availability, and low-latency systems.
Currently, Elixir is primarily used to build web applications using either Cowboy, which is a bare-bones HTTP server, or Phoenix, a full-featured web application framework. It is also building steam in the embedded hardware space with the Nerves framework.
The Elixir syntax and toolchain both draw some inspiration from Ruby. While the syntax similarities are only skin-deep, the toolchain will feel familiar to anyone who knows Ruby. The commands are well thought out, are easy to use, and facilitate great developer productivity.
Language goals
An example of a Phoenix controller written in Elixir.
Distinguishing features
Elixir and Phoenix are growing in popularity because the combination makes it easy to build sophisticated, robust web APIs and applications with great maintainability, excellent performance, and scalability. That’s why Pinterest, Bleacher Reports, and many other companies have invested in Elixir for key parts of their product infrastructure. You can have productivity without sacrificing performance (or vice versa), a claim not easily made by many other languages.
This section was written by Christian Nelson, partner and director of engineering at Carbon Five.
Thank you Mitch PronschinskeM for this post.
The 9 Best Programming Languages To Learn In 2020
10 Best Programming Languages to Learn in 2019 (for Job & Future)
Top 15 Best Android Apps For C Programming | 2018 Exclusive
13 programming languages defining the future of coding
The Top 10 Programming Languages To Learn In 2018
13 Best Programming Languages to Learn
8 Excellent Websites for Checking Google Keyword Rankings
25 Tips for New Developers: 22 Advice from a (Mostly) Self-Taught Software Engineer