5 New Programming Languages Developers Should Know About
Learning new programming languages is an essential part of career advancement for professional developers. Here, we look at five up-and-coming languages that are rapidly gaining traction.
The TIOBE Index lists the most popular programming languages among professional coders and developers. The top-ten holds no surprises: Java at number one, followed by C, C++, and Python. JavaScript is in eighth position. Learning any of the languages in the top ten is a safe bet if finding work and making money is your primary concern.
But there are many promising new programming languages making waves in the enterprise. They aren’t a sure thing, but learning one of these newer platforms might pay off in the future: they are in production use at smaller scales or they wouldn’t be on the list.
These languages may also expose you to new programming paradigms and broaden your overall understanding of programming, and mastering cutting-edge platforms can leave you well positioned as a thought-leader in a lucrative and under-served space. Most importantly, tackling a new language is always fun.
Elixir
Elixir is a functional programming language that runs on Erlang’s BEAM virtual machine. Created by a Rubyist who wanted a language that was both functional and friendly, Elixir is a dynamically typed language with everything you’d expect of a language that’s firmly in the functional paradigm: immutable data, first-class functions, pattern matching, and macros.Elixir is particularly exciting because it benefits from the performance and concurrency story of Erlang, BEAM, and the OTP, a system originally designed to run highly concurrent critical telecommunications infrastructure. Enterprises using Elixir include Pinterest, Moz, and Lonely Planet.
Also of note is Phoenix, a full-featured web application with performance characteristics that blow Ruby on Rails out of the water.
Kotlin
Kotlin is a statically typed object-oriented language that runs on the Java Virtual Machine and provides excellent integration with existing Java code. Although Kotlin is primarily an OO language, it includes some functional features such as higher-order functions and lambdas.Kotlin was explicitly designed to provide a safer and less verbose alternative to Java that doesn’t require developers to give up the benefits of the Java ecosystem. It is being used in production by many large corporations, including Uber and Evernote.
Kotlin is one of the two languages officially supported by Android, which makes it a great choice for mobile developers who want to move away from Java. Kotlin can also be transpiled to JavaScript, which is useful if you are interested in using the same language in the browser, on the server, and in mobile apps.
Rust
Rust is a statically typed system programming language intended to fill the same niche as C and C++. A major difference between Rust and these languages is memory safety. It is as fast as C while protecting developers from the headaches caused by dangling pointers, buffer overflows, and other memory errors.Rust was created by a developer at Mozilla, which sponsors Rust and is using the language to build Servo, an experimental browser engine.
Rust's memory safety extends to concurrency, with a powerful type system, threads, message passing, and a novel data ownership model.
Scala
Scala is a multi-paradigm programming language that, like Kotlin, runs on the Java Virtual Machine. But whereas Kotlin aims to be a “better” Java, Scala is a very different language, most obviously in its adoption of features from functional programming.In Scala, every function is a value, currying is supported, there is a lightweight syntax for anonymous functions, and, like Elixir, Scala supports pattern matching. Unlike Elixir, Scala is statically typed with a powerful and expressive type system.
If you want to stay within the Java ecosystem while adopting a more functional approach — and going full-Lisp with Clojure isn't your cup of tea — Scala is a great programming language to learn.
Crystal
Let’s round out the list with Crystal, one of the newest languages we’re looking at today. Crystal has been described as a language that is as fast as C but as pleasant to write as Ruby. It is an object-oriented language with a syntax that is heavily influenced by Ruby, but, unlike Ruby, it is a statically typed compiled language.Although Crystal is statically typed, it uses an advanced global type inference system to avoid the boilerplate that normally accompanies static languages. Developers are excited by Crystal because it is as fun to write as a higher-level scripting language like Ruby or Python, while being as fast as the more cumbersome C and C++.
There are many other languages I could have included in this list, but the five new programming languages I chose represent a good mix of functional and object oriented, and dynamic and static typing. They all have an active community and it will be interesting to see which, if any, make it into the upper reaches of the TIOBE index in the next few years.