In Defense of Java
So we have an eBook, The Top 10 Java Performance Problems, that we tweet out from time to time. Without exception, a few people reply with some version of “the problem is you’re using Java.”
Java, apparently, is constantly criticized, and people have been predicting its demise for some time. Sure, it’s not as cool, flexible, or fun as some of the newer, more dynamic languages such as Python, Node.js, or Ruby, however, Java remains an important language for applications everywhere.
Migrating from Java seems like a good scapegoat “quick fix”, but it’s not nearly as simple.
Not only does it remain the most popular programming language (more on this later), but it may even be increasing its market share.
Quick Java History
In 1984, Canadian James Gosling left IBM to join Sun Microsystems as an engineer. While there, Gosling began working on an idea he had thought up while in grad school, programming p-codes in virtual machines. In 1991, Gosling along with two colleagues, Mike Sheridan and Patrick Naughton, began working on the Java language project. They originally referred to the language as Oak, named after a tree outside Gosling’s office, but ultimately settled on Java. I guess a good amount of coffee went into the extensive project influencing the name.
Java was created on 5 main principles:
- Simple, object-oriented, and familiar
- Robust and secure
- Architecture-neutral and portable
- High performance
- Interpreted, threaded, and dynamic
In 1995, Java 1.0 was released to the public. Java was initially different because you could compile bytecode and run on all platforms that support Java without the need to reconfigure. This allowed developers to write once and deploy in a myriad of places. The language was also fairly secure and allowed network and file-access restrictions. Needless to say, it quickly took off, especially as Silicon Valley was approaching the first dot-com boom.
Starting in 2006, Sun Microsystems began converting much of the JVM software to open-source, appealing the developer community. However, after Oracle’s 2010 acquisition of Sun Microsystems, the versions of Java were licensed on a commercial basis.
Java’s Popularity
Because of Java’s principles and it’s early market share lead, the majority of large-scale application were built using Java in some capacity. Typically nowadays, application environments are run on a variety of languages, but still have quite a bit of Java running the foundation.
Ok, so Java had an early lead, but with the rise of newer, better languages it must be declining, right?
Well, yes and no.
There are a few ways (and reports) you can look at measuring the popularity of programming languages. One of the most common and widely used reports is the PYPL PopularitY of Programming Language Index, which is based on Google search trends on language tutorials. In their monthly report, Java ranks #1 followed by Python and PHP.
According to the PYPL, Java has over 24% of market share versus other top languages, more than Python and PHP combined.
Another popular ranking system is TIOBE, which aggregates search engine queries (Google, Yahoo, Bing, Wikipedia, Amazon, and Baidu) and the number of worldwide engineers devoted to each particular language. In their monthly index, Java ranks #1 as well, but this time is followed by C, C++, and C#. What’s interesting to note, though, in this report Java was ranked #2 this time last year. This index seems to indicate Java is actually growing rather than declining which would seem counter-intuitive compared with the general public perception.
In those rankings, both TIOBE and PYPL refer to popularity by the amount of monthly searches each programming language has. However, another way to evaluate popularity is by the demand each coding language has in the job market. After all, new jobs could infer the language use is increasing too.
By analyzing Indeed’s job trends, the growth/decline of Java shows a different story. Though a yearly decline from 2012-2015 is fairly evident, the graph still shows the popularity of Java-related jobs over others. The blue line representing Java is still multiples above the relatively stagnant dynamic languages.
Indeed’s graph also supports the TIOBE rankings by showing Java increased in popularity between 2015 and 2016. Could Java be on the rise?
So What’s Next?
This all started with people responding on Twitter offering their solution of how to fix Java performance problems. Unfortunately, it’s not as easy as ditching Java and moving on. As we’ve shown, Java is still the predominant programming language in the market today, and judging by how you interpret the data, could be increasing too.
If you’re reading this you’re either a Java developer, someone who begrudgingly operates in a Java environment, or one of the clever Twitter jokesters. If you even remotely fit one of those buckets, I encourage you to start where this blog started, by reading our eBook, The Top 10 Java Performance Problems.
Java is constantly criticized about performance by people, who … don’t know java and/or are poor programmers. Seriously, when I heard these phrases you mentioned, this was not the only problems with these people.
The same about blaming Microsoft for everything, without spending a single seconds thinking about the problem.
I don’t know if they are trying to be funny, or they just don’t care about being professional…
I agree with you. It is a language where you can write a code which can be understood by spending very little time while some languages for example nodejs(JavaScripit) one can not easily get to know what is the flow of the code.
I agree with you
Weakly typed languages are good for small softwares, but when you plan to make some huge software you should consider other aspects as well. Like maintainability, readability, tooling, libraries and Java is one of the best in thoose areas. I have the “plesure” to develop a very complex python application, it is hell
Useless article. I want my money back ;)