Eleven years ago, I wrote an article asking Is Java Becoming an 'Emerging Technology'? Ask O'Reilly". Think about that: in 2011, how could one have sensibly argued that Java was an 'emerging technology'? The language already had a long history, deep integration across all spectra of business and scientific software development. How, at that point, could Java possibly represent 'emerging technology'?
O'Reilly Media at that time was featuring several articles describing why Java was suddenly newly relevant (for this, we can thank the core Java developers who never stopped developing new features). O'Reilly had recently published:
- Seven Java projects that changed the world
- Seven reasons you should use Java again
- A rough guide to JVM languages
These articles were published on O'Reilly Radar, the objective of which was to provide "Insight, analysis, and research about emerging technologies". So the question in 2011 was: did O'Reilly consider Java circa 2011 to represent an emergent technology? They did, and in retrospect it seems that they were quite correct in their assessment.
In 2011, core Java was the basis of emerging platforms like Groovy and NetBeans, projects like GlassFish, Hudson/Jenkins, new JVM languages, enormous growth in Java User Groups and new Java conferences and gatherings, both large and small, international and local. I attended many of these gatherings and reported on the happenings as Java.net editor.
Fast forward to today, and Java is clearly vibrant. Other languages are vibrant as well. What stands out for me, though, is that, unlike others, the Java platform is akin to a programming platform that sits upon any operating system, which easily supports the development of new languages built upon the JVM platform.
That may sound confusing, but think about it: you have Python, a great language where the same code can run without change on many diverse operating systems. But everyone has to program in Python. You have C/C++, which run on diverse operating systems, but you have to change the code to make it work on diverse operating systems. I won't even get into FORTRAN (with which I have immense historic experience). Then you have Java, or better stated the Java platform, wherein the JVM supports an infinity of languages that that can be tuned to utilize the JVM for their own purposes, all runnable anywhere (as the old phrase went), any hardware large or micro, any OS.
That's the big difference. The JVM is a sort of super-OS that runs on all prominent hardware and software platforms, which facilitates the development of new special purpose software languages, eliminating the need for the language itself to address hardware and OS issues.
To me, this makes the JVM perhaps the most significant emerging software development techology in this modern era.
Developers can simply use the Java Virtual Machine as the basis of their new languages and technology. This means that any advances in the JVM will automatically advance the proficiency and efficacy of any program developed in any JVM language. This is why recent developments that increase the performance of the open source OpenJDK are pertinent to the entire spectrum of developers and companies who utilize the Java JVM platform.
Is Java still an 'emerging technology'? Yes. Every advance in creating a better performing JVM will increase the performance of every program ever developed in any JVM language.