Developers hoping to create applications for the Apple iPhone are bound to be disappointed if information trickling out of Apple is to be believed, especially if they wanted to create those applications in the Java programming language. In an interview with German magazine MacWelt, Steve Jobs has this to say about Java:
Java’s not worth building in [to the phone]. Nobody uses Java anymore. It’s this big heavyweight ball and chain.
Other phone manufacturers would no doubt disagree on this point. For example, Motorola's new Linux-based MOTORIZR Z6 features a Java VM. It's hard to buy a phone these days without it. According to Java's creator Sun Microsystems, Java technology is used in over 4 billion devices worldwide.
We define everything that is on the phone. You don’t want your phone to be like a PC. The last thing you want is to have loaded three apps on your phone and then you go to make a call and it doesn’t work anymore. These are more like iPods than they are like computers.
And in a Newsweek interview, he says:
You don’t want your phone to be an open platform. You need it to work when you need it to work. Cingular doesn’t want to see their West Coast network go down because some application messed up.
Perhaps someone should tell Steve about one of the advantages of supporting Java: managed applications in Java or .Net are inherently safer than unmanaged applications. Unmanaged applications, written in languages like C++ or Objective C (the standard OSX programming language), are closer to the hardware and can suffer from problems like wild pointers, buffer overruns, and incorrectly using deallocated memory. Managed applications don't have pointers and leave memory management to the virtual machine they run in.
They also have the advantage of being compiled once into a portable intermediate representation (bytecode) that can be run on any hardware architecture. C/C++ applications must be built separately for each and every architecture you want to support. Ironically, this flexibility doesn't necessarily come with a performance penalty; real world studies have shown that managed apps run as fast or faster than unmanaged apps in most cases.
It will be a few months before the Apple iPhone is available to customers, and a lot can change between now and then. Maybe a phone call from Sun CEO Johnathan Schwartz could start the ball rolling and change Jobs' mind. But for now, it looks like application development on the iPhone will all be done in-house and it won't be done in Java. That would be a real shame.