Duke, Box Hero
Java on devices other than phones, PCs, and servers
We're all so used to the success stories of Java on phones and servers that we sometimes overlook other places where the JVM could provide some value. Lots of devices need custom software, which could be written in any appropriate bytecode, but if you get into issues where the devices start to communicate, or you want equivalent behavior across devices and architectures, the JVM starts to become a very appealing option. A developer creating content for Blu-Ray Disc players doesn't, and shouldn't, have to know about the CPU architecture of all the players on the market: he or she can just write a single Java Xlet and have it work everywhere.
But critical mass seems a necessary component of actually realizing these Java-on-the-device dreams. Those who studied Jini years ago will remember how many introductions to the concepts of Jini would argue for Jini-enabled printers that allowed desktops and devices to discover available printers on a LAN, negotiate capabilities with those printers, and send them print jobs. Great idea, but it didn't actually turn out that way, as Bruce Eckel noted in last year's Wither Jini?:
For instance, the most common example given for Jini seems to be the "smart printer" example, where you need to print something and your Jini client dynamically finds an available printer. I asked Bill Venners if anyone had ever implemented this, and he said no. So when you give people this example, and then say that Jini isn't really used for that, it leaves you with the question "what do I use it for, then?"
While the Jini-printer story has been a disappointment, it doesn't close the book on Java-based printing innovation. James Gosling reports that he's Hanging out with printer engineers, spending this week at the Ricoh Developers Conference, and notes some of the cool things that Ricoh is doing with embedded JVMs in their printers:
If you were at JavaOne, you saw a simple (but valuable) one: print a document from your laptop, it goes to a master spool server, then walk over to any printer, stick in your badge, and out comes your document. When everything is on the network, the possibilities for end-to-end synergies are endless.
Blu-Ray players, printers, what else should be running Java? Are there other cases where networking and abstracting away the hardware differences across devices would enable new functionality and create value?
Also in today's Weblogs, Carol