There are probably a few thousand programming languages out there, some of which are quite esoteric. Yet most developers only end up learning a handful amongst the most common ones that are currently in use within our industry.
I would argue that learning a new language, perhaps even a lesser known one, can be a lot of fun and definitely worth your time. Even if you don’t end up using a given language in production for anything of a serious nature, a good language will offer you a different perspective and let you grow as a programmer in the process.
People who learn, for example, Lisp or Haskell, will end up being better programmers because of it, even when using Ruby, Python, or Java in the course of their day-to-day development.
It’s also worth noting that it pays big dividends to become an early adopter of a programming language that ends up being popular, both in terms of job / consulting opportunities and in regards to the impact you can affect the community. (Though I wouldn’t use this as your main motivation, as your crystal ball might not be as haze-free as you think.)
In this week’s post, I’d like to list (and link to) ten different programming languages that have caught my eye, and which I’ve personally found to be interesting for one reason or another. I invite you to check them out and perhaps spend some time getting more familiar with one that, after a precursory look, appeals in particular to you as well.
Depending on how closely you follow the development world, I expect some people will find this list to be somewhat too mainstream for their tastes. Even then, you may still encounter some languages you are not familiar with. At least I hope you do.
Without further ado, here is my list:
1) Pony is an open-source, object-oriented, actor-model, capabilities-secure, high-performance programming language. (Launched in 2015.)
3) Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. Julia’s Base library, largely written in Julia itself, also integrates mature, best-of-breed open source C and Fortran libraries for linear algebra, random number generation, signal processing, and string processing. (Launched in 2012.)
4) Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain. (Launched in 2012.)
5) Rust is a general-purpose, multi-paradigm, compiled programming language sponsored by Mozilla Research. It is designed to be a safe, concurrent, practical language, supporting pure-functional, imperative-procedural, and object-oriented styles. (Launched in 2010.)
6) Haxe is an open source toolkit based on a modern high level strictly typed programming language, a fast cross-compiler, a complete cross-platform standard library, and ways to access to each platform’s native capabilities. (Launched in 2005.)
7) Agda is a dependently typed functional programming language. It has inductive families (i.e., dependent types), parameterised modules, mixfix operators, Unicode characters, and an interactive Emacs interface. Agda is a proof assistant. It is an interactive system for writing and checking proofs. It has many similarities with other proof assistants based on dependent types, such as Coq, (Launched in 2007.)
8) Idris is a general-purpose purely functional programming language with dependent types. The type system is similar to the one used by Agda. The language supports interactive theorem-proving comparable to Coq, including tactics, while the focus remains on general-purpose programming even before theorem-proving. Other goals of Idris are “sufficient” performance, easy management of side-effects and support for implementing embedded domain specific languages. (Launched in 2011.)
9) Gosu is a general-purpose programming language built on top of the JVM. It is object-oriented, statically typed (with type inference), imperative, Java-compatible, and it offers simplified generics. It’s a “simple and pragmatic” language for the JVM. (Launched in 2010.)
10) Kotlin is a statically typed programming language for the JVM, Android, and the browser. It is entirely interoperable with Java. Kotlin is developed by JetBrains. (Launched in 2011.)
(Most descriptions are from Wikipedia and/or the homepage of each project.)
Have you found a lesser known programming language that intrigues you? What do you like and dislike about it? Feel free to share in the comments below.