Embedded systems typically have only the minimum amounts of CPU horespower, ROM, RAM, and display capabilities necessary to get the job done. Even cell phones, PDAs, and settop boxes&#151high-end embedded systems, by almost any standards, and platforms frequently described as “ideal for Java”&#151are far more resource constrained than desktops. Trying to run a Java program written for a desktop computer on one of these systems is a fool’s errand.

The problem with the “Write Once, Run Anywhere” mantra is that it doesn’t acknowledge the fact of resource constraints or offer would-be Java programmers any other option. Java 2 Micro Edition and the K Virtual Machine do both.