Are J2ME Apps for iPhone Possible?

Apple’s Problem with Java

Steve Jobs has a problem with Java. He has effectively killed Java applications from the Max OS X as well as the iPhone and iPad.

The problem is stability. Java may have stability issues on the Mac OS. But the other problem is that it is a part of the Oracle system. Java originally developed by Sun Microsystems was purchased by Oracle. So Oracle now owns Java. Is there some hidden aspect to the Java-Apple debate? That’s possible, but it has not been talked about. The last deployment of Java was on the Leopard Mac OS X 10.6.6 but Lion OS X 10.7 will be out in the summer 2011, and it does not have Java.

More recently, Jobs explained his position this way, “Sun (now Oracle) supplies Java for all other platforms. They have their own release schedules, which are almost always different than ours, so the Java we ship is always a version behind. This may not be the best way to do it."

However, this led to a reply from James Gosling, the father of the Java programming language. “It simply isn't true that 'Sun (now Oracle) supplies Java for all other platforms. IBM supplies Java for IBM's platforms, HP for HP's, even Azul systems does the JVM for their systems… [T]he platform owners wanted to do the ports themselves so that they could put a lot of energy into it, and because they knew the platforms better than anyone else….”

iPhone - Smartphone

See also: The History of the iPhone

Developer’s Take

Java developers are the ones that are hurt by this stand by Apple. Java was released in 1995 by Sun Microsystems. So developers have developed applications for over 15 years, they have the expertise. So they are not happy that their language has been skimmed off by Apple so Apple can develop its own proprietary language for mobile phones.

alcheMo for iPhone

Notwithstanding Apple's position, at least one company has developed a translation program to take a Java program and convert it into a program for use on the iPhone.

This New Zealand company makes a translation program that will take a J2ME program and convert it into an iPhone app. The translation program uses a subset of Java ME CLDC 1.1 (Connected Limited Device Configuration) and MIDP 2.0.

Java developers may know what those two subsets are, but for others, they may ask “What is CLDC?” Basically, it defines a set of programming interfaces and virtual machines for mobile phone devices. These are important as space savers, because typically, the mobile devices are limited in resources. This helps support them.

MIDP or Mobile Information Device Profile is a programming specification for the use of Java on mobile phones. Both Java ME and MICP support JSR extension APIs. Furthermore, alcheMo for iPhone offers an Objective-C/Java bridge, which enables developers to take advantage of native iPhone APIs including Cocoa.

Cocoa is written in the Objective-C language. It consists of extensions to ANSI C. Objective-C is a more concise language than C++, and avoids the problems that C++ had. It has a syntax for defining classes, categories, protocols and message passing between objects.

See: Free Java iPhone Games


One thing we know about Steve Jobs is that he is not a team player. He does not follow the crowd. He listens to his own tune and dances to it. We know this to be the case because he has built a computer company that is uniquely different from his competitors. And as a result he sets his specifications for hardware and software design that separate his products from others. So this leads to the question, what is wrong with Java? Nothing. So why doesn't he want Java based apps on his products? Most of the reasons supplied are not very convincing. But he may feel that Java is universal, that it can be universally implemented. But that would make the apps that are written easy to hack into or modify without the consent of Apple. That he definitely does not want. So it remains to be seen whether alcheMo will make the impact with Java developers that they are hoping for. If it works as well as they claim, then Apple will not be able to tell whether the app is Java based or not.


Apple's Problem with Java

Image, Published in Public domain,,

AlcheMo for iPhone