A discussion of the ForthLanguage
asked if Java was too "big" for this use.
There are many EmbeddedJava
Systems, some of the more popular ones are:
- TINI by Dallas Semi Conductor
- aJile microcontroller
What about this:
(EJC = Embedded Java Controller)
I think this is one of the places where the Java hype machine has let us down. Although supposedly Oak, and therefore Java was designed for just this sort of use, each release of Java seems to get bigger and more complicated. For example: Jini, Sun's brave new world of inter-device connectivity, needs features from Java 2, and Java 2 is too big to run reasonably on the SparcStation?
I use as a Web server, let alone on any kind of embedded system.
If you look in the back of any electronics magazine you'll see adverts for small, cheap, flexible embedded computers. These can typically be programmed in assembler, compiled C/C++, Forth and so on. I have yet to see an ad for one which runs Java. I've asked about this at several Java developer events and never got any sensible reply. Where is the "small" Java which can run on practical EmbeddedSystem
s? Where are the embedded prototype boards with Java in ROM? If anyone knows of any, please mention them here!
Sun is pushing Java implementations for handhelds and smart cards -- things as small as a ring on your finger, for gosh sakes!
- Some years ago there was a lot of hype about a "Java ring". These things had a microcontroller with about 1K of PROM, and did not run Java, I guarantee it; I looked into it extensively. Most of the very smallest embedded "Java" applications (those smaller than cell phones) merely interface to something that runs Java. Watch out for that hype.
for information on the various SUN Java "platforms:"
Platform ROM RAM
------------ ------- ---------
Java 16-24MB ~32MB = (the "Web" Java we all know and love. ;-)
PersonalJava <2MB <1MB
EmbeddedJava <512K <512K
JavaCard ~16K ~512bytes
Note that (a) the top two are large, and won't run on typical embedded development boards and (b), the bottom two are really systems to build your own Java "platform". The licensing for EmbeddedJava
is peculiar (you can't just download it) and the JavaCard
platform is in many ways too small for typical embedded development boards. It misses major parts of Java, such as GarbageCollection
, and may even be considered as a language variant.
The above table was the layout of Java "platforms" when the question at the top of this page was originally asked, but since then Sun have changed their stand a little. At JavaOne
1999 they released an early version of the KVM, a small JVM and class library which can run in a device a small as a Palm Pilot, and still be near-enough the Java we're familiar with. I really hope this is enough of a push to create the market for the kind of off-the-shelf hardware plus software plus I/O boards which will allow an ordinary joe with a good idea to try it out.
If you're interested in EmbeddedJava
you might want to check out [http://www.software.ibm.com/ad/embedded/
Acunia has also produced an open source, embedded Java project, called Wonka [http://www.acunia.com/wonka/
Part of the problem seems to be Sun's insistence that Java is a platform; and that the whole boatload of libraries be present and available. Even for J2ME, that's huge
. Many embedded apps don't need things like GUIs, after all.
itself isn't very big; that and a set of core libraries (implemented as native methods or as ByteCode
) should easily fit in a megabyte. However, if you have that
, Sun gets all huffy if you call it "Java".
If you're interested in J2ME (say, for writing programs to run on cell phones),
you might want to check out the J2ME wiki http://j2meforums.com/wiki/