The future of Small Device Java

Sun along with DoCoMo, Motorola, Palm, Nokia, their brother, their dog and the horse they rode in on are about to release the MIDP 2.0 specification any day now. The Mobile Information Device Profile is part of the core of the "Small Java" (J2ME/J2PE) world and basically is basically for defining device capabilities.

I have to say, as much as I am a big fan of Java in general, I'm not sure I am really excited about this right now. While deploying Java applications to these devices is certainly a great thing, and I have done a good bit of work with the Motorola i85 in the past, it just doesn't feel right to me. Part of the problem is that the J2PE specification, particularly, is designed for devices "With 8MB of RAM and a 4-20mHz processor". Well hell, they average VCR has more power than that. In a world where PDAs have 300mHz processor and phones have 128mb of RAM, what is the point?

What Sun should be doing, IMHO, is not diluting the runtime environment any more than they have to. While yes, there are still quite a number of < USD$100 devices out there that are "underpowered", I don't think gearing rising specifications to meet their specs is the right way to go. The average PDA today is capable of running a complete J2SE runtime. This new generation of cell phones are not far behind. Why don't we, at this point do away with the separation of runtimes? Let's make the write once run anywhere thing "real". Sure there are things like J3D and storage contraints that make a difference, but I think those can be overcome. If I was going to be working on small device Java, it would look something like this:

  1. It would run the same JVM that everything else does. Forget this separation.
  2. To save space, it should not have all the extended APIs installed by default. Things like JAXP and the higher level JMF stuff is great, but there is no need to have it installed by default. If Sun can keep future versions of the APIs runtime compatible with older version, each application can simply specifiy what it needs and if there is an app installed that need JAXP or JSE, let it install it once, making it available to future applications.
  3. Make software installation and provisioning easier. Too many people seem to be reinventing the wheel here. The Java WebStart system is unbelievably cool, but lets face it, there aren't too many full blows desktop apps in Java. Why don't we rechristen it as the ultimate install tool for PDAs and phones?
  4. Start making the runtime environment updateable on these damned things. It is a serious pain in the ass to worry about supporting devices with variable display realestate, network, storage and RAM already. Lets at least make sure that the runtime environment and basic language characteristics will be the same everywhere.

Yes, we are talking about raising the cost of these devices in the short term, but I don't think that is a bad thing. If WindowsCE has taught us anything, its that in the enterprise market expecially, getting a reasonable amount of power for a hundred bucks more is worth it. And the prices will come down. Now that most of the expasion to Java is simple new all-Java APIs added to the distros, it doesn't seem like we need this rigid strata between platforms anymore. A cellphone, a cable box or game console today have specs that likely outclass the average PC when the Java 2 JRE was released anyway. Lets take advantage of it.

Comments

Re: The future of Small Device Java

Isn't this more or less what superwaba is suppose to do. Use the normal jdk along with superwaba's vm and compile for small devices.

http://www.superwaba.org/

Re: The future of Small Device Java

Yeah. There is Superwaba. You can also get full versions of the Blackdown JDK to compile and run on Linux distros for the WinCE PDAs. Unfortunately that is tied to XWindows though.

I really think that Sun needs to push this, though. Guys like Nokia and Motorola are just going to use whatever Sun gives them, and it would make everyones life much easier if they would give them something a little beefier than a stripped down 1.1.8

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.