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:
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