Why does Sun HATE Personal Java?
So Symbian has integrated Sun's Personal Java spec into the lowest level of their operating system. In theory, you should be able to do just about anything in Java you would be able to do with native code on a Symbian device that supports Personal Java (like the SonyEricsson P800). As a Java developer, I think this rocks.
I'm not alone in that sentiment, I think when most Java developers originally start with J2ME they think this is the type of development they'll be able to do, and are surprised when they find out it's different. Regardless, Personal Java is having enormous success for those developers who decide to go that route. If you go to Handango right now, you can see that there's a flood of new apps coming out for the P800 written in Java. It's insanely easy to take your development experience with J2SE and apply it to the P800 and quickly develop interesting and useful applications.
The questions is why does this bother Sun so much? I can't figure it out.
Personal Java, in case you're a bit confused as to what it is, is simply a repackaged JDK1.1. It runs on the same JVM and has a majority of the original 1.1 packages. That's why it's so simple to get up to speed with it, it's basically what you're using now (or more to the point, used in 1999). It's "real" Java and has access to the hardware just like native apps and thus is much more useful all around. I think if you asked Java developers what they'd rather use to program for mobile phones, their answer would be all be Personal Java. Somewhat limited, but still 100% Java.
However, despite the developer support and Symbian's high-level of integration, Sun completely shuns all Personal Java development. Are there any sessions about Personal Java at JavaOne? None. Check for yourself. Amazing isn't it? SonyEricsson is shipping hundreds of thousands, maybe even millions, of Personal Java phones and yet Sun isn't having ONE session at their premiere event to support these developers. (Symbian and SonyEricsson should be PISSED).
Sun has made it clear that they are supporting MIDP and MIDP only. Everything else is secondary.
To me this is COMPLETELY 100% backwards. MIDP should be a hack to get Java onto the phones that don't have much power, and Sun should be concentrating on getting Personal Java onto every device they can. It doesn't make sense the other way around! It goes against Moores Law!!! Devices are getting more powerful, smaller and cheaper every day. Targeting small, underpowered devices is aiming for yesterday, not tomorrow. It's the wrong strategy. Not to say that MIDP doesn't have it's place, but my Nokia 3650 runs on a Pentium-grade 32-bit 104Mhz ARM processor with 4MB of RAM and 128MB of storage. That should be PLENTY to get a real version of Java going.
Look, you can HAVE a sandbox in Personal Java, just like MIDP if you really want. I'm sure if Sun worked on it, they could migrate many of the advancements in Java 2 to the profile which would allow code signing for "Applets" and other enhancements. Sun is looking towards the past, yet the manufacturers are moving headlong into the future supporting more powerful hardware and greater storage every day. Look at the P800 - not much bigger than my Nokia 7110 from last year, yet it has 12MB of memory and a 200MHz ARM processor. Devices being made today are even MORE powerful.
Look at it this way: 3G is coming. It's going to provide connectivity which will allow amazing things to happen on your mobile phone. A full-fledged Java would be able to take advantage of this new connectivity, however MIDP will be tied. The KVM won't keep up with the underlying processor and the sandbox is going to start chafing at the developers until they finally find other ways to break out of it.
Full Java on the phone - like Personal Java - is the FUTURE not the past for Sun and they should be supporting it and pushing it with everything they have. Not ignoring it and pushing a spec made for yesterday's devices.
-Russ
UPDATE: Personal Java Has Died (thanks Joan). On the Personal Java page there's an End Of Life "Preannouncement" whatever that freakin' means. And I just noticed an article from YESTERDAY by Eric Giguere talking about the new Personal Basis Profile and Personal Profiles.
Actually, I don't think this is a too-horrible move. Except this new thing called an "Xlet" which seems to have the same exact API as an Applet. WTF is Sun thinking?!? Anyways, the Personal Profile has basically the same supporting libraries as Personal Java, except they're using Java 1.3 APIs instead of the old 1.1. I can dig this. That's a good move.
However, I haven't seen anything from Symbian about this. They're producing Personal Java devices - and selling them - yet now their developers are OFFICIALLY hung out to dry. Are they moving to the Personal Profile? What's about all those Sony Ericsson P800s, Nokia 9210s and Sharp PDAs? Suddenly these great devices are meant for the Java scrap heap?
Sun's doing a good job to destroy their developer base, they really are.