This article was published in September 2013.
Like a fine wine, programming languages get better with age. Programming languages take years to become established and dominant. The deciding factor for many programmers when selecting a language for a particular project has been popularity and language acceptance, so this is a hard cycle to break for newcomers.
The chart below depicts the most commonly used programming languages (with the exception of Assembler) and the date that they first appeared. As you can see, there are 20 languages shown, and not one of them first appeared after the year 2000. Some of them stepped forward decades ago into the public horizon, and yet still remain popular to this day.
There is a plethora of mature programming languages to choose from with all different types. Functional languages, object-oriented languages, dynamic languages, compiled languages, declarative languages, interpreted languages, scripting languages, and imperative languages are some of the different language types.
Even with these mature competitors, new languages still continue to emerge at a surprising frequency. Some of the new languages are created by large corporations looking to usurp their rivals’ languages, others have started as personal projects snowballing with contributions from other developers. Programming is constantly developing. We have witnessed hardware changes such as multicore CPUs and general purpose computing on graphics processing units (GPUs), as well as cloud computing and distributed architectures. Existing languages do not always lend themselves well to the new possibilities that are available.
Multicore machines and hyperthreading technology have enabled marked performance improvements to computationally intensive applications. The GPU offers the potential for even higher performance, and not confined only to graphics rendering. With a massively parallel array of integer and floating-point processors and high-speed memory, the GPU can accelerate applications that are computationally intensive and massively parallel.
This article looks at 11 newfangled programming languages, each of which approaches programming in a fresh, modern way. Whilst it is unlikely that many of these languages will displace the established languages, a few may become mainstream. OpenCL is the most mature framework for writing programs that execute across CPUs, GPUs, and other processors. We also include two other GPU programming languages worthy of recognition.
Now, let’s explore the 11 programming languages at hand. For each title we have compiled its own portal page, a full description with an in-depth analysis of its features, together with links to relevant resources and reviews.
|New Programming Languages|
|Dart||Structured web programming developed by Google|
|Julia||Fresh approach to scientific computing|
|Clojure||Dynamic programming language targeting the Java Virtual Machine|
|Haxe||General-purpose, high-level, multiplatform programming language|
|Fantom||General purpose object-oriented programming language|
|OpenCL||Open Computing Language|
|Elixir||Modern approach to programming for the Erlang VM|
|Go||Concurrent, garbage-collected language with fast compilation|
|Rust||Safe, concurrent, practical language|
|Ceylon||Cross-platform execution, modularity, great tooling|
|Harlan||Declarative, domain specific language for programming GPUs|
Read our complete collection of recommended free and open source software. The collection covers all categories of software.
The software collection forms part of our series of informative articles for Linux enthusiasts. There's tons of in-depth reviews, alternatives to Google, fun things to try, hardware, free programming books and tutorials, and much more.