Is Java still relevant in 2020?
What is Java - A brief history
In the early 90s, the software tech domain saw the inception of two of the most influential entities that came into existence, which shaped the Software Industry as it is now. Those were the World Wide Web - www(1989) and Java(1995). There's no need for an introduction for the www. Let's talk about the latter.
Most of us know that Java was born in Sun Microsystems lab and was designed by James Gosling. But lesser known is the fact that Java was initially intended to be the language for communicating between Consumer Electronic Devices. As the development of this language started in 1991 and progressed, the www. started to shape up into a global phenomenon. This made the Java language development team rethink the original purpose, and they shifted its focus to accommodate this new niche.
Java's popularity has not fallen ever since. It started with JDK 1.0 on January 23, 1996 and is currently on JDK 14((March 17, 2020) as we speak.
What kind of uses is Java best suited for
As mentioned earlier, Java was intended to be one thing and was repurposed to be something else entirely. This might be a reason for its General Purpose Nature, and currently, Java is being used in some way in every niche domain you can think of.
The most common use cases for Java would be Android Apps, Web Applications Backend and also, High-Frequency Trading and Scientific Applications.
Java versus other Languages
There are several new kids on the block now. The latest sensation is Python. Python is currently topping many of the lists where Java was the uncrowned prince for over a decade. A large share of this popularity goes to the sudden interest in AI and ML domain and its simplicity as a first programming language to learn.
Another language we can talk about is C++. Java can be considered an improvement over C++ in functionality and ease of use.
When it comes to Ruby, both Ruby and Java are object-oriented and not dynamically typed. However, like Python, Ruby is also slower than Java since it is an interpreted language - which means it needs to be compiled on runtime, which adds to the total running time.
Another comparison we hear a lot is regarding C#. Be it the case of speed or performance; both perform equally well. However, Java wins the battle since C# is platform-specific. Once the software is built - it cannot be run on all platforms like Java allows you to.
Why Java is still a powerful programming language
There has been a lot of news that Java is going to be phased out soon, and that it will soon be going out of scope. But the reality differs. First of all, a vast majority of the current systems rely on Java-specific code, and it is not easy to take Java down anytime soon due to the sheer amount of software that's running on Java, especially across the Web.
The recent events regarding the surging interest in COBOL underline the fact that if a language is meeting the use case very well, it is there to stick. Though COBOL is a very old language, and it has highly specific usage in the industry, it is being popularized and promoted like nothing else by IBM as of now.
These are a couple of reasons why Java is still one of the dominant programming languages out there and a favorite for the Enterprises Worldwide.
Mature and Stable
The first and foremost aspect of Java-based software that makes it a winner in the Enterprise Software domain is its Stability and Maturity. It has stood the test of time by enterprises worldwide as the backend for their enormous Tech Stack serving millions of transactions per day.
Robust and Secure
The Security of Java is based on the following design principles - Sandboxing model( Code runs in a sandbox and doesn't have access to System Resources), Robust Exception handling, Bytecode check by JVM(JVM Feature), Object Access Control, Final modifier, Automatic Garbage collection, and Type safety.
By now, there are millions and billions of lines of code written in Java, which is powering the software that we use every day. As per an estimate by Oracle, 3 billion devices run Java. Those are not going anywhere anytime soon. Even as we speak, more is being added to that repository.
Since the inception, there has been a steady growth in users for Java until recently. It has a huge community of veteran software engineers, and people who are getting started with the language, and both of them have their reasons to love the language.
Why investing in building Java-based DevOps teams is cost-effective
There are at least a couple of reasons why building a Java-based DevOps team is a good idea for the Enterprise.
Readily available expertise - The language has been in the Software Industry for a long time - over two decades. During that period, the industry has generated a large number of experts. It is not hard to find extremely skillful engineers who are proficient in Java because of that. And since the demand meets the supply, the cost of procuring resources also remains feasible.
Java is one of the oldest mainstream languages in use today. Thanks to this popularity, most of the tooling that would be required in a project is already available. There's no need to reinvent the wheel when we have a 4WD vehicle in hand!
There's a huge Free Open Source Software(FOSS) community for the language as well, which consists of a large number of Open Source Projects such as Apache, Spring, Guava, Netty, Jenkins, Logger, JUnit e.t.c. All your building blocks are already there, that too, for free.
Real Business Use Cases
Here are a few case studies to support the points mentioned above regarding the relevance of Java in Enterprise Environment.
Twitter - Twitter migrates core infrastructure to Java Virtual Machine and supports more than 400 million tweets a day
"Performance is one of the most important products that any service can deliver to its customers," says Robert Benson, senior director of software engineering at Twitter. "End users want Twitter to be fast so they can get real-time information. Reliability and performance are huge goals for us, and that's why part of our core strategy involves moving to the Java Virtual Machine [JVM] runtime environment. Twitter no longer has the performance issues it previously had, and that's in large part due to our moving to the JVM."
-Robert Benson, Senior Director of Software Engineering, Twitter.
Complete Case study of Twitter using Java in production - Twitter and Java
Netflix - Netflix powers through 2 billion content requests per day with Java-driven architecture
"The vast majority of the services running within our architecture are built on Java and the Java Virtual Machine [JVM]," says Andrew Glover, director of delivery engineering at Netflix. "Netflix uses a stateless architecture, so as we bring in more customers, we are able to bring up more instances relatively easily. We have thousands of Java processes running all the time. Yet as we grow, we don't have huge infrastructure challenges. We also have a lot of open-source tools that are Java-based, which makes it easy to monitor, upgrade, and scale our services."
-Andrew Glover, director of delivery engineering at Netflix
Complete Case study of Netflix using Java in production - Netflix
Safe Water Kenya - An all-Java mobile app documents Safe Water Kenya's efforts to provide clean water to rural families in remote East Africa
"When the company decided to expand globally, we realized that Microsoft was not a leader in the mobile world."
- Daniel Pahng, mFrontiers President.
Complete Case study of Safe Kenya Water using Java in production - Safe Water Kenya
The Current State of Java
Even in 2020, Java is still popular as a first language or if you just want to broaden your skills set. The TIOBE index still ranks Java as the most popular language. And it is going to stay on the list for a long time.