Now and Then - Programming Languages to Shake up the Mix

Now and Then: Programming Languages to Shake up the Mix?

Back in September 2013 we carried an article showcasing 11 newfangled programming languages, each of which sought to approach programming in a fresh, modern way. The languages are: Dart, Julia, Clojure, Haxe, Fantom, OpenCL, Elixir, Go, Rust, Ceylon, and Harlan.

We acknowledged that it was unlikely many of the 11 newfangled languages would displace the established languages, but noted that a few could become mainstream.

What happened to these 11 programming languages? Have they become central to the development of open source software, have they stayed on the fringes, or are they only remembered like fingerprints on an abandoned handrail?


The successes

Programming Languages

Go is a compiled, statically typed programming language that makes it easy to build simple, reliable, and efficient software. It’s a general purpose programming language with modern features, clean syntax and a robust well-documented common library, making it a good candidate to learn as your first programming language. Go has a long list of things in its favor which accounts for its popularity among developers. There’s lots of high quality open source projects written in Go. A few of our favorites include Kubernetes (a production-grade system for managing containerized applications across multiple hosts), Gin (a HTTP web framework), Gogs (a self-hosted Hit service), and fzf (a command-line fuzzy finder).

Rust is a systems programming language that runs fast, prevents segmentation faults, and guarantees thread safety. It accomplishes these goals by being memory safe without using garbage collection. The language enables developers to write programs with the performance and control of a low-level language, but with the powerful abstractions of a high-level language. Like Go, Rust has seen strong adoption among the open source community, in part because of its strong ecosystem, focused on performance and safety, particularly safe concurrency.

Dart is a client-optimized programming language for fast apps on multiple platforms. Compile to ARM & x64 machine code for mobile, desktop, and backend. Or compile to JavaScript for the web. First appearing in 2011, the language has seen regular releases. Dart is developed by Google. Dart started garnishing more attention in 2017 when Google officially announced Flutter beta for cross-platform mobile app development. Flutter is an open-source UI software development kit created as an alternative to JavaScript or React Native.

Julia is a high-level, high-performance dynamic programming language for technical computing. Created in 2009 and released to the public in 2012, Julia was designed to improve on deficiencies in Python and other languages and applications used for scientific and numerical computation. It’s notable for being just-in-time compiled, offering the ability to call C, Python and Fortran libraries, and excellent parallelism. Julia has been touted as having the potential to unseat Python, but that’s not on the cards any time soon. But it’s an excellent language for many types of projects.


In Top 100

Clojure is a modern, dynamic, and functional dialect of the Lisp programming language on the Java platform. Notable open source projects using Clojure include Metabase (business intelligence and analytics) and Riemann (a network event stream processing system).

Elixir is a dynamic, functional language designed for building scalable and maintainable applications first released in 2011. Its gaining popularity particularly for microservices and cloud computing. There’s some notable companies that use Elixir in their architecture. Examples include Pinterest, Moz, and Discord. The latter chose two main languages to build their infrastructure: Elixir and Python. From day one, Discord has used Elixir as the backbone of their chat infrastructure.

Clojure and Elixir haven’t received as much popularity as Go, Rust, Dart, or Julia, but they are still contenders to breakthrough.


We’ve compiled the finest free resources to master these programming languages.

Free Books:

Go, Rust, Dart, Julia, Clojure, Elixir

Free Tutorials:

Go, Rust, Dart, Julia, Clojure, Elixir


GPU programming languages

OpenCL (Open Computing Language) is an industry standard for doing number crunching on GPUs. It’s one of the most common languages for developing code for GPUs and features in the Top 100 in the TIOBE index. OpenCL is a trademark of Apple Inc., used under license by Khronos.

Harlan is a domain specific language for programming GPUs. Harlan requires an OpenCL implementation as well as a compatible Scheme. Harlan remains in obscurity.


Others

Ceylon was created by Red Hat and donated to the Eclipse Foundation in September 2017. There haven’t been any updates to the language since then. Clojure’s adoption by software developers using the Java platform has continued to increase, but hasn’t broken into the top 100 in the TIOBE index.

Fantom is a portable language that runs on the JVM and modern web browsers. It features a familiar Java-like syntax, static (and dynamic) typing, elegant system library, closures, immutability, actor concurrency, and much more. Like Ceylon, Fantom doesn’t feature in the top 100.

Haxe is a general-purpose, high-level, multiplatform programming language and compiler. It can produce clean and efficient JavaScript code and good C# at the same time. Adoption has been slow but there are some notable open source projects that use Haxe. Examples include Armory (a 3D engine with Blender integration), HaxeFlixel (a cross-platform 2D game engine), and HSLux (human-friendly HSL).


Summary

Move forward to 2020 and the same popular languages still occupy the top spots as they did in 2013: C, Java, Python, C++, C#, JavaScript, PHP etc remain the core languages.

But Go, Rust, Dart, and Julia show that new languages can quickly make significant inroads in open source projects.


All the articles in this series:

Now and Then - See How Promising Open Source Software Has Fared
Programming LanguagesGo, Rust, Dart, Julia, Clojure, Elixir and more
File ManagersSpaceFM, gentoo, Marlin, Eagle Mode, and Beesoft Commander
DistributionsThe fate of 15 distributions
Lean Desktop EnvironmentsXfce, ROX Desktop, LXDE, FVWM-Crystal, EDE, and Étoilé
IDEsBrackets, Light Table, Julia Studio, Dart Editor, and Aptana Studio
Music Playersqomp, Lollypop, Yarock, Pragha, and Volumio
Web Browserseww, Liri, Vivaldi, Ubuntu Internet Browser, Fifth, Dooscape, and Breach
Terminal EmulatorsTerminology, Cool-Retro-Term, and Final Term
Share this article

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.