Eric Bruno is a contributing editor to Dr. Dobb's and co-author of JavaFX: Building Rich Internet Applications. He can be contacted at eric@ericbruno.com.
In 2006, I wrote a three-part article on the future of Java (Part 1, Part 2, and Part 3) in which I discussed open source, Java's use in consumer devices, and its growing use in mobile devices of all types. There's no way I could have predicted Sun's acquisition by Oracle and the proposed integration of Java with Oracle products! So what is the future of Java at this juncture? In this article I re-examine Java's future in light of what we know about the Oracle acquisition.
What Is Java?
Java is tricky to explain to anyone who doesn't know what it is. Yes, it's a programming language, but it's much more than that, which is largely why it's grown to where it is today. Specifically, Java is a platform that includes a virtual machine environment with a C-like language, with libraries and supporting software that allow it to run on various operating systems, computers, devices, and domains. There's:
- Java SE for the desktop
- Java EE for server and enterprise solutions
- Java ME for embedded and mobile devices
- Real-Time Java for applications with temporal requirements.
- JavaFX to build rich Internet applications, with media capabilities for desktop computers, mobile devices, and television (set-top boxes, Blu-ray players, and so on).
Therefore, when someone says, "I'm a Java developer!" they quickly need to clarify. With this backdrop, I discuss the future of Java from the platform point of view, including Java SE, Java EE, Java ME, JavaFX, the tools, and the language.
The Java Market
According to Oracle, Java is the most popular and ubiquitous runtime available, with the following statistics as of January 2010:
- 9 million Java developers
- 840 million Java desktop installations
- 100+ different hardware platforms supported million Java desktop installations
- 2 million additional downloads per day
- Used by all of the Fortune 100 companies
- 5.5 billion Java cards
- 2.6 billion Java-enabled cell phones
- 250 partner cell phone carriers
- 100,000+ Java ME applications
- 40 million TVs and Blu-ray players
Java continues to be the most widely used single programming language today, edged out only by all scripting languages grouped together. But since Java the platform supports running applications written in various scripting languages, these numbers can be said to overlap. For instance, the Java virtual machine (JVM) will execute applications written in Java, Rexx, Ruby, JavaScript, Python, PHP Groovy, Clojure, and Scala. In many cases, Sun's HotSpot JVM will run these applications better than their natively compiled counterparts because the just-in-time (JIT) compiler will re-optimize the compiled code over time according to execution characteristics.
The bottom line is that Java has remained the language and/or platform of choice for enterprise and web application development for many years, and it continues to grow. With Java freely available for development use, and its use as the language of choice in many college computer-science curriculums, Java will likely remain at the top for many years to come. This doesn't mean we shouldn't reexamine or even question Java's future every so often, especially in light of Sun's acquisition.


