Muddying what "embedded java" means

lachoy on 2006-04-03T13:07:12

Okay, so in the Java world there's:

  • J2EE (Java 2 Enterprise Edition), just a collection of specifications and APIs using J2SE to manage lots of stuff.
  • J2SE (Java 2 Standard Edition), your basic Java
  • J2ME (Java 2 Micro Edition), which includes different configurations for devices of different capabilities -- why they made these look/sound so similar is beyond me:
    • CLDC (Connected Limited Device Configuration), for limited devices like cell phones
    • CDC (Connected Device Configuration) for more capable devices, like maybe a networked storage appliance or a phone/PDA

So now Sun is adding:

I can't quite tell what J2SE Embedded actually means -- maybe it's a series of custom builds with optional graphical capabilities? Maybe it just means that Sun will be offering it alongside their normal releases? Is it differentiated from J2ME/CDC in that only 'big computer' processors will be supported? (That is, no XScale, MIPS, etc.) Chould be interesting...

Posted from cwinters.com; read original


between CL?DC and J2SE?

jhi on 2006-04-04T05:33:46

From the description it sounds like this "embedded Java" is targeted for industrial CPU boards, e.g. for running things like routers, storage boxes, et cetera. CL?C is for really tiny things like PDAs and phones. FWIW I think the name "embedded" is well-justified, since the "embedded" market of those industrial CPU boards exists and does well. PDAs are not "embedded", they are just "tiny", or ta-dah, "limited", usually battery power and extremely power-constrained, while CPU boards usually run off the wall socket (and given their nature, have backup power).

Re:between CL?DC and J2SE?

lachoy on 2006-04-04T11:49:48

IMO a lot of the push behind J2ME in the next few years will be behind CDC implementations, not CLDC. There was some recent rumblings on Sun's CDC-Interest list about Sony Ericsson's imminent release of a cell phone with a CDC implementation. And my feeling is that it's the first of many.

The nice thing about CDC is that it's basically a J2SE JVM with a number of libraries removed -- you don't need to preverify bytecode or any of the other hoops that CLDC puts you through. One of my recent tasks has been seeing if a server-ish product can run on something of similar speed/capability to a Gumstix (the 400 Mhz version). Using IBM's CDC implementation it worked fine, all I had to do was compile the code on my dev machine (WinXP laptop) with the right 'target' flag and copy over the files. They ran as-is. Good stuff.

So I guess my point was that CDC seems to already be going down the path of "J2SE Embedded", but I think you're right about the target market.