Last Updated:

Is really Java losing popularity?

When Java appeared, this programming language looked extremely promising for a number of reasons:

  • versatility (a program written in this language will work perfectly);
  • excellent performance;
  • it's much easier to learn than C++.
  • this language was a great alternative in a world where Microsoft was the center of the digital universe.

And for quite a long time, this language was perfect for solving a number of problems, until over time all those "pillars" on which it stood began to collapse:

  • Universality:
  • in matters of web development today, Java loses to the more convenient Javascript;
  • Java has never been a great option for desktop development (aside from a few rare exceptions);
  • Apple does not seek to use this language in its OSX, so there is no particular reason to use Java in iOS development;
  • but we all know that Java is a great option for the Android platform, and this fact could be decisive for the revival of this language. However, based on some language disagreements that have arisen between the largest companies Oracle and Google, Google is no longer particularly eager to actively promote this language.
  • It's still much easier to use than C/C++, but it still loses in simplicity to many modern languages (while .NET, C++, and even JS continue to make impressive strides in this regard). Therefore, for example, in projects where the key importance is given to performance, modern C++ seems to be a more preferable option.
  • To date, Microsoft does not occupy a central place in our world – most of the giant companies that used Java (Sun, IBM and others) have long disappeared or do not occupy such a key position in the market. And today's big players, like Oracle and Google, show no clear desire to take Java with them in the next decade.

I still only use this programming language to solve tasks on the HackerRank portal, and I'm sure Java will continue to enjoy some popularity for a few more decades, but its best days are undoubtedly in the past.

It's hard to answer the question of whether Java is becoming less popular because it depends on what it is about.

However, I can say with certainty that Java is losing its popularity as a "hipster" language. And if you now ask a bearded hipster programmer in which language he created his web service, then he will call it in Java, but, rather, Go or NodeJS - now these languages have taken the place of "hype". Something similar can be said about the previous desire to replace codebases from C++ to Java to improve security – now, rather, Rust will be used as a more secure replacement.

However, at the same time, Java still remains a major player in its field for several reasons:

  • Java is still the lingua franca for many services and web pages, especially in finance. Java is also used for the internal databases of many businesses.
  • Of course, it is impossible not to mention Google, Twitter and many other companies that use Java.
  • Many significant build systems (such as Jenkins or TeamCity) are built in Java.
  • And, of course, we must not forget about Android.

Therefore, we can conclude that although Java is losing some of its positions, however, this language is still extremely popular.

That being said, I can't say for sure that I'm a fan or even a fan of Java. Personally, I prefer C# for most of my projects. I use NodeJS to create standard web services. In general, in my opinion, today C# is much cooler than Java in a number of ways, while Java is unlikely to be able to catch up with C# in the next couple of years.

 

To answer the question about Java, it is necessary to generally understand the concept of why programming languages (or even entire technologies) at some point become less popular over time.

One of the key points to take into account is how expensive it is to "adjust" the programming language to emerging trends. If a language becomes more popular over time, then it is obvious that its user base is growing steadily. And any change that is made to the language should not break all those billions of lines of code that were previously written and put into operation. And this need for backward compatibility significantly slows down the development of the language. So, the more popular the language, the more difficult it is for it to develop in the future.

In some cases, this results in the language no longer being able to meet the most recent requirements. On the other hand, users of this language can explicitly express their desire to use new features that, in their opinion, should be added to it. At some point, some of the users cease to be satisfied with the language (based on his inability to develop), so they switch to another, newer, lighter one, which did not have time to acquire a huge amount of the previous "baggage". From this point on, the competition between the "old" and "new" languages begins, and as soon as users begin to make a choice more and more often in favor of the ability to easily adapt to the requirements of modernity, the "new" language wins, and the fall of the "old" is just around the corner.

However, if you look from the other side, it turns out that old languages, like old habits, turn out to be quite tenacious. So, Java, C ++ or C are giants on which too many projects are built today. And although younger and more capable of changes languages can occupy leading positions in popularity ratings, Java, C ++ or C will definitely be in demand for several more decades.

 

To be honest, I don't really understand why a lot of people keep pouncing on Java. There are a number of obvious reasons that indicate that Java is not losing ground.

So, Java has a huge number of frameworks and an excellent API library. In addition, a huge number of products in the banking sector, the defense industry, as well as in other areas are written in Java, so Java developers will be in demand for quite a long time. Java adapts when the need arises.

What does the future hold for this language? We're likely to see even more Java derivatives, especially given that the JVM "works" with other languages like Scala and Kotlin as well. There is a huge amount of C++ code that needs to be rewritten in Java ;)

In my opinion, Python, Go, Ruby, C, C#, C++ – all these languages should be used when the need arises, or you are offered a high-paying project. For me personally, Java is a kind of "Swiss knife", which is great for most cases and perfectly copes with solving many problems.