Enterprises have largely favored the same programming languages and databases for the past decade, so don’t panic if you haven’t mastered artificial intelligence yet.
Every so often, we’re duped into thinking that enterprise technology changes quickly; that if you don’t jump on this or that hype train right now you’re going to get left behind. A decade ago it was cloud computing. Today it’s generative AI. Each promised to change everything. Yet today, despite AWS on a $100 billion revenue run rate and the cloud permeating enterprise IT, the vast majority of enterprise IT spending (90% or so) remains doggedly on premises. Generative AI, for its part, offers substance in the midst of all the hype, but it, too, is a relative blip in the overall portfolio of enterprise IT.
Next time you start to panic that your enterprise is about to fall behind, take a look at how quickly enterprise preferences for programming languages and databases change.
The persistence of Java
A little over a decade ago developers came up with a host of new languages. Go, TypeScript, CoffeeScript, F#, Dart, and more. Fast forward to 2024 and it’s still pretty much Java, Python, JavaScript, and C# on top of the popularity charts, whether RedMonk’s or IEEE’s. When a language does break through and find persistent, growing success, such as TypeScript, it’s the anomaly rather than the norm. As RedMonk’s Steve O’Grady notes of relatively static language rankings, “There was no movement in the top five languages, and less than a third of the top 20 languages moved at all,” which indicates “an environment resistant to change.”
What environment is that? The environment of enterprise IT.
Once an organization makes a commitment to Java or C# or whatever, it’s very (very) hard to change that. The opportunity associated with Go, for example, tends to get trumped by Java’s versatility, features, and support. It’s not that Java is “better” in some objective sense, but rather that there’s friction associated with picking something new that upsets the entrenched momentum a company may have built up with Java.
As such, if you look at RedMonk’s language rankings from January 2024 and compare them to January 2018 and January 2014, you’ll notice a stubborn resistance to change:
Chart courtesy of RedMonk
Developers may dabble with any number of new languages, but they get paid to focus on just a few—or just one. Take a developer from 2014 and drop her into an engineering task in 2024 and the primary thing she’d need to get used to is working from home, not using different programming languages. As InfoWorld contributor Simon Ritter wrote in May 2024, “Enterprises are risk-averse and typically not in a hurry to change anything that isn’t broken.” These top languages aren’t broken. On the contrary, general-purpose languages keep getting better.
Now let’s look at databases.
Ever-present databases
There are hundreds of databases to choose from, but developers regularly choose just a handful. DB-Engines uses a multifaceted ranking system to keep tabs on the most popular databases (based on job postings, mentions on sites like StackOverflow, and more). As of August 2024, here’s how things stand:
Chart courtesy of DB-Engines
Got those names in your mind? Let’s rewind to August 2020 and see how things looked back then:
Chart courtesy of DB-Engines
Almost identical, right? With the exception of Snowflake, which has been on a growth tear since its introduction, everything else is largely as it was. Now let’s look at August 2016:
Chart courtesy of DB-Engines
No Snowflake in the top 10 (the company was founded in 2012, but it had yet to make its mark on the database popularity charts), but Apache Cassandra made the list. (It has since fallen out of the top 10, though just barely.) What if we go back to 2012, the first year that DB-Engines compiled the database rankings?
Chart courtesy of DB-Engines
As with the programming languages, the databases that endure are general-purpose and ever-evolving. A developer from 2012 who time-traveled into 2024 would still grok the SQL syntax across relational databases and the flexible schema, high availability, and ease of use of non-relational databases (or relational+, as I sometimes think of MongoDB). They’d benefit from the evolution of each of these options, but they would still recognize the options themselves because these databases have persisted over the past 12 years. As with their programming languages, enterprises tend not to change their databases if they’re working fine. Instead, they will try to apply new things—like generative AI—to their existing data architectures. (Sometimes they try a little too hard, but that’s a different article.)
In the enterprise, “boring” is a feature, not a bug. It’s fun to try the latest and greatest tech, but enterprises aren’t in the business of science fair experiments. So if you want to know when it’s time to jump on the AI train, for example, watch for when AI is tied into the data infrastructure, programming languages, and other comfortable enterprise standards that you already know. This isn’t an argument for stasis, but rather for thoughtful evolution.