Personal Java is Dead on Symbian
I was going to do a long winded rant about this because I was *pissed* the other night when Dave pointed out the Java roadmap for Symbian. It came out in February, but I just didn't examine it closely enough to get the message. There is no more low-level Java after Symbian 7.0s, it's all MIDP 2.0 from here on out.
If you read the stats for Symbian 7.0s - the version they announced at the Exposium - it talks about Personal Java. I was curious to know how/when Symbian was going to move to the newer Personal profiles that Sun has announced to replace Personal Java which has been End Of Lifed. The answer is never. Symbian is moving to MIDP 2.0 only and presumably removing the native Java underpinnings from its OS. They will be using a better mobile VM that Sun has developed (CLDC HI VM), but basically, there'll be no low-level access to the hardware any more using Java on Symbian.
Yes, it took Psion/Symbian almost 2 years to get Personal Java running on EPOC, but for some reason, all that work has been thrown into the trash and developers have been given a cut-down excuse for a Java API on the best mobile OS there is.
This is where I bitch after all...
WHY? Urgh. I don't get it! Sun has obviously pressured Symbian to "get into line" and Symbian obviously didn't resist very much. "Okay, Sun, you want us to cut out real Java from our OS and replace it with a less powerful version so that developers will have to use our low-level APIs to do anything cool? No problem. Where do we sign?"
This is about the dumbest thing that Symbian can do. As shown at last week's JavaOne there's millions of Java developers and all of them want to move seemlessly to mobile development. Now they can't. They have to relearn a restricted API and use it on top of a restricted VM instead of just porting the work they have over to the Symbian machines. Now we're talking complete rewrites of everything - from XML parsers to display code and more. There's no *reason* for it. The Symbian OS and the hardware it sits on is more than sufficient to support real Java. Porting both skills and code should've been *easy*, but now it's a level of effort. Both Sun and Symbian just lost a round to Microsoft by being this dumb.
You could make an argument that the manufacturers are looking to cut costs and to standardize so they were asking for MIDP 2.0 so Symbian is focusing on that, but I don't buy it. Why *take out* functionality? There's more Communicator-like devices coming from Nokia and I suppose others, why is Java going to be limited on those devices? Most of Symbian is already a la carte, why isn't real Java just another option instead of Not Available?
I don't get it. I blame this on Sun and I *just don't get it*. MIDP 2.0 is muuuch better than MIDP 1.0... but it still sucks if you compare it to Personal Profile. What's the deal here?
Programming for the Symbian OS using C++ is just TOO HARD. It's nice to know what's going on under the hood, but there's no way I'm going to be able to do anything down there ever. Java was another alternative for me to program for Symbian but now that's gone. Something's needed for that middle-tier of development between MIDP and C++, now that obviously Java isn't going to be it, I need to look elsewhere like OPL. Urgh. That's *not* the idea of having Java on mobile devices.
End rant. Decision's been made, now we have to live with it. Oh well. (I'm still POed though.)
P.S. If you were thinking about buying Wireless Java for Symbian devices? Don't. It's all about Personal Java and only one chapter on MIDP 1.0. Basically useless unless you have antiquated hardware like the SonyEricsson P800. ;-)