Sun, just give up. Java on iPhone will suck.
It is not surprising that Sun is making such a fuss about trying to get Java onto the iPhone / iPod Touch platform. They must be thinking "Holy crap, if iPhone and iPod touch replicate the success of iPod’s 72% mp3 player market share (excludes mp3 player phones), Java will be dead in the water on mobile". Too damn right.
The mobile handset market is completely different to the mp3 player market, where figures typically exclude the market made up of mp3 playing phones, but Apple might just pull it off.
I am a former J2ME developer of games, and now I’m a Mac user and iPhone owner. Java on iPhone/iPod Touch is a crap idea. People who think iPhone needs Java are failing to understand the Apple approach. The fact is that Sun/J2ME almost definitely needs iPhone to survive once Apple roll out cheaper mass-market handsets.
J2ME produces, much like J2SE, crappy applications on every platform. The Apple experience is about polish, about remaining uncomplicated, reliable and confidence inspiring. J2ME is about trying to average out all phones and at least get our app out there in some form no matter what compromises we have to make. This is exactly what happens in the J2ME space: "We spent $$$$$ developing our J2ME reference build, now we need to cash in by porting to as many devices as possible. Who cares what the thing ends up looking / running like, if we’re not on phone X we might miss out on 10% of the market because it’s so popular."
Now, take a look at Skype’s new Java mobile client. it looks like they haven’t done a bad job on the UI but it definitely isn’t great. The point is the UI will not fit in well with the existing phone UI and it will look different to every other J2ME app on the phone, and it therefore requires different understanding to use it. It will also probably chew your battery like there’s no tomorrow. It will also not have access to any recently invented (probably circa 2 years lag) features the phone might have - as without standard J2ME APIs which take years to approve and roll out among handsets, developers have to rely on proprietary APIs and that means yet more R+D, yet more individual ports and yet more QA.
Then you have people like Innaworks who say they can automatically port J2ME apps to iPhone. Dream on guys! You might get something running but it is going to look like crap on the device, won’t use natural UI paradigms, and will likely require certain coding conventions in the J2ME app. The problem is that executives with no clue look at offerings like this and tell their coders/porters "Hey don’t worry we can just get it all automatically converted by these guys, no need to learn Objective C!". I’ve been there in the past with "automatic" porting tools between J2ME handsets. If these things are good, and they have been on the market for years, why do all the mobile companies still have huge numbers of staff dedicated to porting and QA? How do their converters magically scale images to look good on new higher resolution displays. How do they make text align properly on the screen according to the layouts you’ve used in your reference build?
These poor quality automated ports are for people who don’t care about quality of the ported product, and that is EXACTLY the kind of application you don’t want on an iPhone.
Java - I love you on the server. On the desktop you suck a bit. On mobile… you facilitated a games industry. On iPhone… you will just let in a bunch of crappy apps and games that look crap and perform like crap, and use up loads of iPhone battery running non-native code.
Game developers in the J2ME market will not have any major difficulty getting one or two coders to do ports from scratch to iPhone with Objective C. It just means that some of the companies will need to actually use some braincells to get some decent infrastructure in their development environments, which means smart build systems, decent data structures that scale to different devices etc.
Hopefully everyone will see come June that native apps will beat J2ME apps into the ground on iPhone and iPod Touch.
April 30th, 2008 at 10:57 pm
The less a platform supports, the less users it will have. That’s most likely why Mac discontinued their original OS and went with Unix base one. Mac also switching/switched to PC hardware, likely because the best games out there are made for Intel processors.
Same with iPhone. There are thousands of J2me games out there. Sure there are many amateur games, but there are many good ones too. It will not be wise for iPhone to not support j2me.
Apple will play hard to get, it’s good for their image.
May 9th, 2008 at 12:50 pm
Sid - obviously I disagree
OS X is unix because its solid, high performance and portable, not because all the Windows users moving to Mac now want to use unix. 99% of new Mac users will have no idea about unix being on their Mac
The switch to Intel hardware is unlikely to do with games - it’s a about cost, heat (powerpcs were not delivering on performance/heat/power usage) and pace of development.
There are thousands of j2me games out there ONLY because it was the only way to target many disparate devices with the “same codebase” (that is a very funny joke in J2ME development companies).
Most J2ME games will not port well to iPhone. The graphics and user interface/controls will need redoing completely, and most will look like crap, and they will run slow
iTunes App Store will mean there are huge numbers of native apps that will always make any Java apps that may (hopefully not) in future become available on iPhone look utterly laughable.
The games companies with brain cells will be getting OS X dev teams together now. The tools are already there and they are MUCH better than any of the tools previously available to J2ME devs.
More than that, the game companies don’t have to worry about the network operators any more. Sell direct through the app store and make much more $$$$!