Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

My Language Will Overtake Yours

DZone's Guide to

My Language Will Overtake Yours

We've all heard the phrase, 'Java is dead.' But, really, isn't. So why do we keep trying to say one language is better than another, when they each have their own use cases?

· Agile Zone
Free Resource

See how three solutions work together to help your teams have the tools they need to deliver quality software quickly. Brought to you in partnership with CA Technologies

From time to time I stumble upon articles comparing one programming language to another or articles which claim that 'one language will rule them all.' Most of these comparisons depend largely on metrics based on searches and hits according to popularity (for example tiobe).

The question is not if the data is accurate but if comparisons like these are any more relevant to the current landscape of software development.

Back in the past, we used to have languages developed in order to replace other languages and make developers more comfortable. Some languages became obsolete, and some were overtaken by others.

However, as the industry continued to evolve, languages started to be associated with some certain fields of our industry. For example, when it comes to machine learning and deep learning, Python is the first language that comes to mind. As the fields of the industry evolved, the languages associated with these fields evolved too, leading to the development of tools and frameworks. As a result, we now have programming languages with a huge ecosystem. The tools and the frameworks were not built in a day, it took years, a lot of effort, skills, and experience on the pretty specific problems they had to tackle. As the years passed, these tools matured and evolved.

Even though there are many good options out there, the major factors of adoption are not based on the language by itself, but more on the tools that come with it.

Let's take, for example, Java and the Java EE ecosystem. Although there is a large amount of articles discussing the death of Java, Java continues to be the first choice, especially when it comes to enterprise development. There are certainly languages with better syntax and more convenient tools, but Java comes along with a huge ecosystem.

I believe that the language comparison should shift from language comparison to an ecosystem comparison based on the field.

Another fact that has to be considered is also the boost that happens to several industries. Certain industries require pretty specific solutions and tools, thus leading to a boost in the adoption to those tools and frameworks. It is not that a language just got more popular among developers, instead, the industry just got bigger.

Finally, we should take into consideration universities. Computer science universities play a leading role in the creation of the language popularity landscape.

For example, many of the C language hits are due to university assignments. Furthermore, R&D finds its way to the industry, implemented with different tools for environments much different than the original one.

All in all, I believe that language comparison is no longer relevant. The industry has evolved a lot and the applications that we develop are largely different than the ones we used to develop in the past. In the past, we used to develop console applications and it made sense to compare syntax and extra features. Nowadays, we develop large-scale applications in clustered environments employing various architectures and we need more than just a language to tackle these problems.

Discover how TDM Is Essential To Achieving Quality At Speed For Agile, DevOps, And Continuous Delivery. Brought to you in partnership with CA Technologies

Topics:
agile ,programming languages ,libraries ,ecosystem

Published at DZone with permission of Emmanouil Gkatziouras, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}