With the rise in the corporate use and overall quality of modernized programming languages, some experts now consider the widely used,yet dated Java to be antiquated – even "vintage," according to a Jaxenter article written by Rich Sharples.
C giving Java fight for top-spot ranking, Python steadily gaining ground
For example, Java has been once again ranked first in overall popularity on the Tiobe index among all programming languages for the month of November – but not by much. Coming in a close second by a difference of just over 0.10 points was C, a language developed in the early 1970s that has overtaken Java already at one point this year for first place on the index. Tiobe predicted that C could once again surpass Java in recent weeks to close out 2019 and begin 2020 at the top. Due to the fact that Java has been popular since its 1995 development and was used to create many web applications and the Android operating system, it is still widely used and has never dropped below second place on the index, according to Sharples.
Since 2014, job listings specifying prerequisites for Python or AWS proficiency have "boomed".
While Java proficiency is still considered the most sought-after tech skill based on an analysis of job postings since September 2014, which found that listings with prerequisites for Python and AWS abilities have "boomed" in recent years, according to a ZDNet article. Coincidentally, Python was ranked as the third most popular language behind Java and C, albeit by more than six points. Like others (including Java), Python was derived from the C programming language and released in 1991 – having since been updated with new versions regularly.
Notably, social media and cloud-computing services like Instagram and Dropbox use millions of lines of Python code and have gradually upgraded to the language's newest 3.x version, as 2.x is set to come to an end. The language has also become popular within the banking industry and is used in IT services by major entities such as JPMorgan. In some cases, Python has overtaken Java in popularity – for example, on the open-source code sharing website GitHub, the latter's usage increased by over 150% between 2018 and 2019, according to another ZDNet article. In mid-November, Python's creator coincidentally retired from his post as "Benevolent dictator for life," praising the language's popularity.
Java: not yet equipped for modern applications
While Java remains among the most popular programming languages in use as of November 2019, some experts and those in the IT field have noted that it is not modernized. One striking example of this is that Java-based applications have longer start up times than others, experts say. Modern app development sees many apps built using more modern and lightweight languages that run in containers, which "Java has [traditionally] not been well-equipped for," Sharples notes.
Some experts believe that Java is undergoing what is known as a "Renaissance Moment" during which it needs to evolve and change with the times to meet modern demands. As a result, demand has required that version updates and related product release cycles have been limited to every six months; by the end of the year, there are predicted to be 7.6 million Java developers.
"(Java is) really good at having everything it needs to solve complex problems, but leaves something to be desired in terms of simpler processes," Sharples explained, referring to an application start up as a "simple" process.
While it may be one benefit that the language can perform more complex processes with relative ease and expediency, this results from the fact that Java is too "fat," meaning that it runs starting with certain libraries that are never used. In fact, the start-up times for Java apps with too many libraries are only slowed down even further. Other complaints regarding Java allege that it is "too verbose" compared to other newer languages, which can "do the same thing with less code".
"(Java is) really good at having everything it needs to solve complex problems, but leaves something to be desired in terms of simpler processes."
In order for Java to catch up with the times and make the most of its renaissance moment, it needs to become more compatible with modern app development that uses environments reliant on containers into which code is deployed. Java can be better equipped to scale for this purpose through the use of frameworks enabling it to be used in a "unified" reactive and imperative programming model.
Despite the fact that it is has been widely used in recent decades, Java has not yet been able to keep up with consumer and programmer demands when it comes to the security and development of modern applications, whether they be for mobile devices or corporate computer systems.