Channels ▼

Eric Bruno

Dr. Dobb's Bloggers

Java for Embedded Solutions

April 30, 2010

C isn't the only choice for embedded development. Java has been a valid choice for years, for devices of all sizes.I recently received a question asking about the pros and cons of developing software for an embedded device with Java. To answer the question, I first pointed out that Java remains the most popular development language in the world for enterprise and web application development, as well as in mobile and embedded solutions. Yes, I've seen the recent survey by TIOBE, but its criteria is based on search engine results, and it may not be an accurate indicator of just which language is most used.

In summary, with millions of Java developers world-wide, and literally billions of devices of all sizes deployed with Java virtual machines (VM), Java is arguably the most widely used environment in the embedded space.

Oracle offers Java Micro Edition (ME) for some of the smaller devices such as cell phones, but they also offer Java SE Embedded for embedded use in more capable systems. It differs from standard Java SE in that it requires less storage space to install and less memory to run. But otherwise, it's nearly identical to desktop Java, which makes it easier to develop for. Oracle offers headless versions that are even smaller in footprint for embedded devices with no UI requirements. There's also support for embedded Linux and Windows releases, and processors such as ARM, PowerPC, MIPS, along with Intel x86 and Atom. See the following page for a matrix of supported OS and processor combinations:

JIT Compilation - Sometimes Faster than C/C++

Other Java SE Embedded differences include internal tuning to run well on devices with constrained resources such as processor, storage, and memory capacity. This includes tuned versions of functionality Java developers have come to expect from a Java VM, including automatic garbage collection, and HotSpot just-in-time (JIT) code compilation. HotSpot compiles your application's class bytecode to native machine language that allows it to run equally well when compared to compiled C applications. In many cases, Java applications can even exceed the performance of C/C++ applications because the Java code is compiled and optimized according to dynamic run-time conditions. C applications are compiled and optimized statically, where as the JVM continually optimizes your application as it executes over time.

All of these features make Java an ideal language and platform for even the smallest of embedded devices. Take a look at this page for more information, along with trial downloads for different OS and processor combinations:

Happy Coding! -EJB

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.