A cartoon showing a worker using three computer screens with programming languages symbols floating around over his head.
Image: © danijelala/Stock.adobe.com

The case for ‘language-agnostic’ programming

27 Mar 2024

Learning to code? Don’t limit yourself to one language, advises Gil Tene, CTO of Java platform Azul.

As most developers know, not all programming languages are equal. There are the object-oriented ones and the non-object-oriented ones; the functional workhorses and the niche flash-in-the-pan ones that have their moment and are gone; the easy-to-learn ones and the ones that only a seasoned developer could ever hope to grasp… You get the idea.

So why, then, are so many developers seemingly wedded to whatever language they use? You don’t have to look too deeply to find developers proclaiming their love for the language they use; this can be great if you want to find a three-hour YouTube tutorial on Python, but not so great if you’re a newbie developer who just wants a straight answer to the question: Which language should I learn?

The bad news for newbie developers is that the question doesn’t have a straightforward answer. There is no one language to rule them all.

To get an informed perspective on the issue, we spoke to Gil Tene, who is the chief technology officer at a company called Azul. He has years of experience working in development and he has seen a lot of languages come and go and come back again.

Dead, dying or undead?

Another thing hyperbolic developers like to do is claim that various languages are ‘dead’. You should be wary of these kinds of claims that essentially amount to tribal conflicts within the tech world. Even Tene has his own biases; Azul’s specialism is Java so he knows that language inside out. Others will tell you, meanwhile, that Java is dead. A cursory scan of the internet will tell you it’s been dying and resurrecting itself since 2011.

Tene’s answer to the question of what languages people should learn is very non-biased. He refers to himself as “language-agnostic” albeit a language agnostic who knows a lot about Java.

“I think that language religion is not healthy for the developer, and developers who only know one language or will only work in one language are self-limited – both in understanding and knowledge and in job prospects,” he says.

“You always see the diehards that believe ‘This language is the best’ and will make a lot of arguments for it, and I think that it’s actually very important for developers to know at least three languages well to evolve an agnostic approach.”

It’s just a tool, not a way of life

Languages are just tools and developers ideally should be able to know enough of several to be able to pick and choose. “In the end, we are coding things, and those things end up running machine instructions on some CPU, and the language is just a way to translate one to the other,” says Tene.

Sometimes the languages that developers get really excited about are not the best ones to learn if you want to land a tech job. For example, Tene says that many devs are “super excited” about functional languages such as Haskell and Lisp, “but they’re a very tiny sliver of the actual developer world from a jobs perspective”.

“I think if you look at the popularity… the popularity not just from a popularity contest point of view, but from a point of view of very prevalent and very lasting use, you can see some languages that are clearly not going away.”

Like Java? Tene says that the C family of languages has also been written off prematurely before. “C++, as much as people keep looking for a replacement, C++ and C are here for a long time. The Linux kernel is built in C and in C++. It might get a little bit of Rust in it now, but C++ is used for a lot of system applications in a lot of places where people want very static, predictable behaviour.”

The less workhorse and more functional languages tend to be what Tene describes as “very small portions of the developer universe”.

“So, they’re technically more challenging. That makes them also more interesting. But if you were looking at how many jobs, how many applications used those languages, it would be a tiny fraction.”

The best of both worlds

What does he recommend learning for developers who want the best of both worlds – ie popular and long-lasting?

“At the top of the languages from a popularity or lasting popularity point of view, we probably have Java, Node JS and JavaScript,” he says.

“And [you have] Python, and then there’s this big camp of C# and F# and other things… And then the interesting newer exotic promising languages. And I don’t just mean things that just came out, but also things like Lua, which evolved in SysAdmin worlds initially but has now become very, very popular in gaming.”

He believes that Rust is “very promising” as a potential eventual replacement for some C++ tasks. Go is also worthwhile considering its niche in system programming. The bottom line is not to be self-limiting.

As Tene says, the language used is only going to be as fast and as good as the developer deploying it.

Find out how emerging tech trends are transforming tomorrow with our new podcast, Future Human: The Series. Listen now on Spotify, on Apple or wherever you get your podcasts.

Blathnaid O’Dea
By Blathnaid O’Dea

Blathnaid O’Dea worked as a Careers reporter until 2024, coming from a background in the Humanities. She likes people, pranking, pictures of puffins – and apparently alliteration.

Loading now, one moment please! Loading