Revisiting '13 programming languages for the future'
Baseball great Yogi Berra famously said that predictions are hard, especially about the future. Seven years ago, my editors asked me to come up with a list of 13 programming languages that would define the future of coding. Now they've asked me to go back and analyze what I got right and what I got wrong.
The good news is that some of the predictions were spot on. Some of the languages blossomed just as I hoped they would. The not-so-good news is that some of the predictions just didn't deliver. These languages are still floating around—it's not like they failed or imploded—but they never went viral.
Here’s the list of the original 13 along with a discussion of what went right and wrong with the predictions. Then I’ve added one more at the end that I missed. If only I had thought to include that in the original list, I would have really hit a home run.
The winners
R
The language rode the coattails of the explosive rise of data science. Some of its popularity comes from the non-programmers who use it as a tool, often as a scratchpad, to make statistical sense out of the relentless flow of data swamping organizations. The language is very focused on statistical analysis, and that happens to be in great demand.
There's also a great collection of interesting offshoots such as Sweave and Knitr, two projects that integrate R with LaTeX to create one platform for analyzing and reporting. All contribute to R's booming success.
Java
At the time of my original story in 2015, Java version 8 was dominant. Since then Oracle has shipped new releases often and the latest announced version, Java 21, is due in 2023. The platform continues to benefit from a long-term focus on stability. The new versions have added even more in-demand features that range from major enhancements to the class structure to minor but useful extras such as a better random-number generator.
The platform has also borrowed heavily from the success of tools such Node.js to deliver better performance for many server-size operations. The base may not be growing, but the continual investment keeps it fresh and relevant.
Swift
The language remains the best way to produce apps for one of the most popular platform families, iOS and MacOS. Because people are still buying iPhones, developers still need to program in Swift. While the main focus continues to be on supporting the various Apple devices, some developers love the language enough to begin to bring it to new platforms such as servers in the cloud.
Go
The simplicity of the language continues to be its biggest selling point. Teams can take developers who come from completely different programming backgrounds and teach them Go in a short amount of time. Then everyone is working together in the same, nicely focused, narrowly defined, and concise programming language.
CUDA
GPUs deliver some of the most computational power today and anyone who wants to unlock the power of Nvidia's machines must use CUDA. The biggest drivers are cryptocurrency miners and projects that want to train AI models, but there are also many other less flashy applications that just want to tap into massively parallel processing power.
The laggards
CoffeeScript
The wonderfully clean version of JavaScript has sparked several other transpilers that let people use different syntactic rules. There may be several dozen options for fiddling with the syntax of JavaScript. One of the cousins, TypeScript, has really boomed as more and more developers seek out the security that comes with defined variable types. CoffeeScript itself may not have taken off, but the idea of preprocessors such as CoffeeScript has.
D
This remains an interesting update for C but it hasn't attracted as much attention as many other options. Programmers either stick with C or migrate to languages with broad appeal that also sport C-like syntax, like Java or JavaScript.
Less.js
The idea of using a preprocessor to create CSS has encouraged dozens of competitors. Less.js remains in use because it uses a syntax that is close to CSS. Other options such as SASS, PostCSS, or Stylus CSS offer more features. The area remains active, and it may be a while before we see an end to the search for the best way to specify the layout rules for a web page. Again, Less.js has not been a big success, but preprocessors like it have grown.
MATLAB
The language remains a big part of the world of scientific and engineering computing. It has also found a home supporting some of the more complicated algorithms for data science and artificial intelligence. There's not much more interest outside of those communities, but inside, it continues to service the applications that need matrix mathematics.
Arduino
The world of embedded and tiny systems continues to bloom, and Arduino chips—and the language used to program them—continue to thrive. The Internet of Things, though, is growing even faster thanks to other boards such as the Raspberry Pi. These hardware options also bring greater software options. C and C++, for instance, continue to work well, but other choices such as Python and Java also thrive. Indeed, many of the newest chips are powerful enough to run a full Linux desktop and all the software that might run upon it.
Scala
This language combines a functional programming style with object-oriented structure, and it continues to thrive in niches throughout the Internet. Devotees celebrate how constraining the code to fit a narrow functional ideal can limit bugs and make more complex tasks easier to model. The language's reliance on the Java Virtual Machine at runtime also opens opportunities to link the code with many libraries and other projects.
Haskell
Programmers who must juggle relentless streams of events that may or may not arrive concurrently enjoy the functional structure of Haskell. The static typing and lazy evaluation simplify writing nested or composed function chains that are easier for the compiler to analyze for potential bugs. Data-heavy firms such as algorithmic traders and social media companies like the structure that comes with the language.
JOLT
JOLT continues to draw interest thanks to the continual rise of JSON, the data format that the language is designed to manipulate. The interest means that there are more options for programmers. Applications such as GraphQL, for example, can merge data queries and transformations, eliminating the need for another layer. Still, as long as JSON remains in use, there will be a demand for some of the simple transformations that JOLT offers.
The one omission
Overall, my predictions were not so bad. Many of the languages continue to grow slowly and some continue to boom. In some cases, the language itself is not a big success, but similar versions are taking off with it.
Still, I have one regret. The article did not promise to be comprehensive or name every important upcoming language, but I'm still a bit sore that I left Python off the list. The once-basic scripting language grew so much that TIOBE's index for tracking programming-related search-engine queries crowned it "language of the year" in 2018, 2020, and 2021.
One secret of its success is that Python is extremely popular for teaching programming classes, especially for casual students who only want to dabble in coding. But there's also broad support from data scientists who like how it offers a relatively simple but Turing-complete solution for working with raw data.
Consider this last bit as a way to right the past omission and welcome Python to the list.