Scala, which is short for Scalable Language and first appeared in 2004, is a programming language invented by Martin Odersky. Scala is compiled to Java bytecode and executed using a Java virtual machine (JVM).
Scala has become one of the most popular multi-purpose programming languages in use today. Many companies use it to build their software infrastructure, whether with consumer products or their in-house tech stacks. Its mix of flexibility, concision, and Java compatibility has made Scala particularly popular among businesses that rely on distributed architecture and require easily-scalable apps.
Kotlin is an open-source, statically typed “pragmatic” programming language initially designed for JVM (Java Virtual Machine) and Android, which combines object-oriented and functional programming features. It is focused on interoperability, safety, clarity, and tooling support.
Clojure is a dynamic programming language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language yet remains completely dynamic – every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, ensuring that calls to Java can avoid reflection.
Erlang is an open-source language and runtime environment. Erlang has built-in support for concurrency, distribution, and fault tolerance. Erlang is used in several large telecommunication systems from Ericsson.
Swift is a modern, general-purpose, and multi-paradigm programming language designed by Apple to build its iOS-powered devices and following ecosystems. Apps can be designed to run also on macOS (for Apple computers), watchOS (Apple Watch), tvOS (Apple TV digital media player), and – what may be a bit surprising – z/OS, which powers IBM Mainframe computers.
The language is currently distributed on Apache License, which makes it available for the community to use. It’s a relatively new project, launched in June 2014, seven years after the first iPhone launch.
Elixir is a functional, concurrent, general-purpose programming language that runs on the BEAM virtual machine used to implement the Erlang programming language. Elixir builds on top of Erlang and shares the same abstractions for building distributed, fault-tolerant applications.
Haskell is a statically typed, purely functional programming language with type inference and lazy evaluation. Developed to be suitable for teaching, research, and industrial applications, Haskell has pioneered many advanced programming language features such as type classes, which enable type-safe operator overloading. Haskell’s primary implementation is the Glasgow Haskell Compiler (GHC).
Rust is a relatively new programming language that was designed by Graydon Hoare and is sponsored by Mozilla. The first stable version (Rust 1.0) was released in 2015. It was voted “the most loved language” in a survey of developers on Stack Overflow in 2019. Though it has a similar syntax to C++, many experts have argued that it is unlikely to replace it in the near future. That said, use among developers is growing.
OCaml, formerly Objective Caml, is a multi-paradigm programming language that extends the Caml dialect of ML with object-oriented features. OCaml was created in 1996.
The OCaml language was initially used to develop applications that involve symbolic computation: automatic theorem provers, compilers, and interpreters, program analyzers, etc. It is now used to build software in many other application areas. OCaml is also pretty simple, which is one reason it’s often used as a teaching language.
Elm is a domain-specific programming language for declaratively creating web browser-based graphical user interfaces. Elm is purely functional and has been developed with an emphasis on usability, performance, and robustness. Elm is a functional language that compiles to JavaScript — think of it as a competitor to React or Vue, and is used to create websites and web apps. Elm promises no run time exceptions — no null and no-undefined is not a function. It uses type inference to detect corner cases and help the user with what the issue might be. One of the most significant features is that Elm also comes built with a robust type system and a compiler to help you during development. No need for TypeScript — these are actual types that the code must adhere to.
PureScript is a strongly-typed, purely-functional programming language that compiles to JavaScript. It can be used to develop web applications, server-side apps, and also desktop applications with the use of Electron. Its syntax is mostly comparable to that of Haskell. In addition, it introduces row polymorphism and extensible records. Contrary to Haskell, PureScript also adheres to a strict evaluation strategy.
Idris is a purely-functional programming language with dependent types, optional lazy evaluation, and features such as a totality checker. Idris may be used as a proof assistant, but it is designed to be a general-purpose programming language similar to Haskell.