Channels ▼
RSS

Parallel

The Future of Java Revisited


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.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video