Freescale and Oracle made a press release they will jointly push Java to IoT. This makes me interested, does it make sense to use Java in Embedded at all?
In the past, Java processors executing bytecode native in hardware were expected to solve capacity and performance constraints in embedded systems. Even if number of such Java processors exists Today, that technology never really entered into the mainstream, and nowadays you seldom hear anyone talking about.
Java ME Embedded is optimized for ARM architecture. The datasheet says standard configuration requires 700KB RAM and 2000 KB ROM, and it is possible to tear it down to 130 KB RAM and 350 KB ROM. I'm not convinced. In MCU systems it is typically crucially important to have full control over time critical execution, and energy efficiency is usually an issue.
Both in super-scalar server systems and resource constrained embedded systems asynchronous programming is more efficient way of using the available resources. Strict object formalism just does not make sense. Loosening the object paradigm then ruins the fundamental idea behind Java.
I'll discuss more about the demo in next postings.
Edit Oct. 15th:
This seems to be a hot topic in the community as well. First Dr.Dobbs
published an article on Oct. 8th: If Java Is Dying, It Sure Looks
Then they received tons of feedback, and wrote a response on Oct 15th: 1000 Responses to Java Is Not Dying
to read such a discussion. There is one argument that I want to quote:
"Java only appears to be dying because the cool kids prefer other
languages". That's most probably true. But then back to my original
topic. Terrance Bar from Oracle put's it this way:
""There are 9
Million Java developers in the world, compared to 300,000 embedded C
developers. On top of that, more and more products are coming from small
startups without specialised embedded knowledge. They do know Java
Possible not cool, but there is quite a lot of mass left still.