Join me in the bytecode revolution!
C|Net had a story the other day that spurred a thought I'd not had in a while: where is the Java chip? I had hoped to see some sessions on such a notion in the JavaONE sessions list but no such luck. Here's the teaser clip from that C|Net story:
Sources familiar with the company's plans said BEA will announce at the JavaOne trade show that it's working on a version of JRockit--its virtual machine software that runs Java programs--that runs directly on a computer's hardware. In contrast, most Java today runs on an operating system such as Windows, Linux or Solaris.
Running Java natively on a piece of rock isn't a new idea. The MicroJava 701, Sun's foray into the space, had this unfortunate end according to a Java World article from November 1998 by James Niccolai:
The forthcoming MicroJava 701 chip will likely find its way into finished products in about six months, Turley said. But at 100 MHz, the processor is relatively slow, is large in size, and "uses as much power as a low-end Pentium," Turley said. "It's a cow," he said bluntly.
"It's a cow." Wow. I guess folks weren't exactly stampeding to get them after that ringing endorsement.
Assume for a moment a Java chip could be made that wasn't "a cow". Could this have a market today? I look around to all of the places where PIC microprocessors are used and wonder, "why couldn't those be Java chips?" Moore's Law has had about four of its 18 month iterations since then. Whatever problems that caused the cowness of the last attempt should be manageable today.
Yes, yes, I know that JavaME buried in cell phones is a tremendous success story for Java but I'm talking about possibilities for lower-end, lower volume applications. Think about the tremendous advantages you'd have if there were a PIC-style Java chip available today:
- You'd have a set of world-class development environments to choose from because the chip runs standard Java bytecodes.
- You get an emulation environment for your device for free.
- Debugging could be done with standard tools.
- Open source software and free source could help jump-start every project.
- Development could be done in a nice high-level language instead of PIC assembly or some goofy BASIC offshoot (actually, I think the BasicStamp people have done a pretty nice job, so sorry about the "goofy" thing)
- Given the pervasiveness of network connectivity to devices, having a development platform that is already IP-savvy should shorten development cycles and time-to-market.
Small processors are being buried in everything today. PICs, in particular, show up in the most amazing places. I attended a conference of amateur radio enthusiasts called Atlanticon this spring and saw some fabulous things developed by some very, very smart people. These folks might be build clever stuff on weekends for their hobby but they are serious electrical engineers and software developers during the week. Their expertise translates from weekend to weekday and back. PICs were the processor of choice for these projects because they are cheap, readily available, and easy to program. I think a Java chip could do better.
The constraints on the design would have to be more than "it can't be a cow". It will have to hit a price point that is reasonable (eventually), it will have to have some integration with things electrical engineers think are important like signal levels on pins, serial ports, timers, and the like. It might need to include the real-time Java stuff in order for it to get the attention it deserves.
There are movements in this direction:
- JStamp with J2ME/CLDC
- Dallas Semiconductor's TINI with custom version 1.1.8 JVM
- JStik with J2ME/CLDC
- SaJe with J2ME/CLDC
All of these are boards, not chips. This one, the Javelin made by the BasicStamp people, is a 24-pin DIP form-factor. It runs a very, very small subset of Java.
It's time to learn from the last processor revolution. As processor speeds and memory availability increased, processors were sent into more application areas. Software development investments in these applications increased as well. Consider this very well written piece by Wayne Burdick trying to tell his customers and other amateur radio operators why Elecraft, makers electronics kits that would make the old Heathkit blush, doesn't just give away their source. The development of this software that is inside a radio kit represents a substantial investment for Elecraft and is central to the power of the product they've created. These thoughts are echoed in this post by Chuck Adams.
We're a long way from having a fully Java-enabled, PIC-style chip that would replace the current set of offerings. But, the time is right to begin pushing in that direction. Object-orientation is just now making some headway into the safety-critical software scene. Wouldn't it be nice if it was Java, and not C++, that helped that facet of the industry make the transition to OO? In the mean time, bytecode lovers of the world should unite and demand the end of reign of PIC assembly. It's a bytecode revolution! Join us!