Channels ▼


The Future of Java Revisited

Java Micro Edition (ME)

Java ME was a big success at Sun, having been embedded within billions of cell phones of all types and sizes. It's also used to power countless custom embedded solutions by third parties around the world. To be specific, Java ME is made up mainly of two offerings: Connected Limited Device Configuration (CLDC), and Connected Device Configuration (CDC). The overall differences between the two are their capabilities; CLDC is a smaller subset, with a very small VM, meant to run on devices of limited capability (hence the word limited in its name); CDC is a more complete Java implementation, and is meant for more powerful mobile devices. CDC is also bytecode compatible with Java SE -- meaning .class files compiled for Java SE will run on the CDC JVM -- while CLDC is not.

Because of the limitations and differences between the two flavors of Java ME (CDC and CLDC) and Java SE, there are differences in the Java APIs and libraries on all three. This situation, although justified to make the JVMs work well on devices of all sizes, is a source of frustration to developers known as fragmentation. To help remedy this, Oracle has announced its intent to unify the Java ME and Java SE APIs, and in turn remove fragmentation from the Java market.

Other plans Oracle has announced include a focus on improving Java ME startup times and performance overall; improved power management for mobile devices; efforts to port to emerging categories of embedded devices (MIDs, media players, and so on); and enhancements to better enable JavaFX and JavaFX Mobile.


Based on statements by Larry Ellison and other executives (such as Thomas Kurian), Oracle has totally bought into the JavaFX message. JavaFX is a powerful runtime, script language, and set of tools to enable Java developers to easily build rich Internet applications (RIA) with media capabilities. Flash/Flex and Silverlight also play in the RIA space. However, JavaFX applications are meant to run equally on all the screens of your life, as Oracle puts it, with one code base. Also, since JavaFX is built on Java, you can integrate and use existing Java code in your JavaFX applications.

You can run JavaFX applications directly on your desktop computer, embedded within a web page, via Java WebStart, or on devices that support JavaFX Mobile. At Mobile World Congress in 2009, multiple handset manufacturers and carriers announced a commitment to support JavaFX Mobile on their devices. But what are Oracle's plans for JavaFX?

Oracle has said that it will increase investment in JavaFX to provide an unmatched experience for RIAs, with the following focus:

  • Create a design paradigm based on the visual assembly of components
  • Create an extensive library of rich UI components for use in your JavaFX applications
  • Enhance JavaFX performance across all platforms
  • Enhance cross-device portability of the JavaFX applications
  • Seamless work with Java, JavaScript, and HTML 5
  • Support emerging devices and UI paradigms (i.e. multi-touch)

And of course, Ellison himself hinted at a cloud-based implementation of OpenOffice at JavaOne last year. Based on that, I predict Oracle will make JavaFX a major part of its cloud strategy going forward, regardless of Ellison's personal feelings regarding the "cloud."

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.