Why Are There So Few New Programming Languages?
When was the last time you heard about a new programming language? And by that I mean a programming language that introduces some new concepts or tries to do things in a totally different way, not yet another variation on the same (C-)theme. It’s possible that I missed out on something, but it seems to me that the last thing was functional programming and mobile app development, and a couple of programming language having a go at quantum computing. And that was five years ago…
Could the pandemic have something to do with it? Sure, in our industry we were lucky enough that we could continue to work from home, so we shouldn’t complain about the lack of shiny new programming languages. But could it be that working from home killed some of the creativity and the inspiration coming from discussions around the water cooler or the coffee machine? Video meetings do not really work for informal discussions that generate new ideas.
Decline Since 2014
But if the pandemic has something to do with it, then we should have seen new programming languages still popping up right until the beginning of 2020, and some of them should have been ready for larger adoption by now. However, a quick look at the Wikipedia page listing the most important programming languages sorted by the year they were first published shows that things already started to slow down around 2014.
Of course, it’s very well possible that this Wikipedia page isn’t entirely correct for the most recent years. After all, it takes a while before it becomes clear whether a programming language is “important” enough to be listed on the page or not. On the other hand, the page includes programming languages like LOLCODE, which may be important just by its very existence, but probably isn’t the first one you mention on your resume when you’re looking for a job. But my general impression is confirmed by the trends in the chart above: there are far fewer programming languages being published now compared to the early 2000’s.
Learn an Old Programming Language!
Here’s another thing that confirms my impression: have a look at the list of programming languages being recommended to learn in 2021 and 2022. The lists are full of old programming languages! Swift is usually the most recent one, and it was published in… 2014 — eight years ago. If you compare the lists for 2021 and 2022 with the lists from 2015, you’ll notice they’re almost identical, with the exception of Swift having replaced Objective-C.
Do We Need New Programming Languages?
Maybe the real question is whether we need new programming languages at all. Kotlin and Swift were created to support the development of native mobile apps. Since then, Kotlin has made it over to the server side, and has started to challenge the position of Java. The reason for that is that Kotlin has some features and concepts that strongly appeal to some Java developers. But when you look at the transition from on-prem to the cloud, you notice that we managed that just fine using the already established programming languages.
Without new concepts, there’s a limit to the number of ways in which you can build and structure programming languages. You can switch between curly braces, keywords and indentation to delimit blocks, you can go for strong or weak typing, or maybe invent a slightly smoother way to handle lambda expressions. But the fundamentals stay the same.
Maybe Infrastructure as Code (IaC) has been one of the more interesting concepts of the last few years. But Terraform probably doesn’t really fall into the category of programming languages anyway, and in addition to that, it uses YAML as its basis. Other new concepts, like blockchain, machine learning and data flow, have resulted in the development of a number of new libraries, but not so many new programming languages. Maybe we just have to wait for the big breakthrough of quantum computing to see a flow of new programming languages?
This article was originally published at Kode24 i Norwegian under the title “– Hvorfor kommer det ingen nye programmeringsspråk?”.