There are many technologies for developing mobile application. The wide variety of mobile platforms (hardware & software) have prevented not only standardization but also dreaded monopolies. Few years back very few mobile handset/platform manufacturers had provided completely open frameworks for 3rd party application development. Few years ago I worked with a UK based company which provided portable code libraries and frameworks written in C/C++ for mobile applications. It allowed the company with to license source code to handset manufacturers, ported, given a MMI to be launched in the market and possibly earn revenue out of it.Every time a specific mobile application was needed, a by a handset manufacturer, a particular C/C++ library/framework had to be ported, application and MMI developed using proprietary tools and then integrated. This followed by rigorous testing cycles creating a huge delay before the application could be finally launched. In a tough competitive mobile world this was probably a big disadvantage and unacceptable. Symbian did exist as a great platform but was never widely accepted. Advent of the Java Run-time availability on most mobile platforms changed this drastically. Soon there was a flurry of 3rd party mobile applications which one could download. J2ME - Java 2 Platform , Micro Edition or popularly known as Mobile Edition provided access many features of a mobile phone. But more than that it offered ability to create once - run anywhere on any platform - any time which was the game changer. No wonder Google's new mobile operating system Android is based on Java and its development environment in the ever popular Eclipse. Also partly because OHA - Open Handset Alliance supported it. No platform be it Android, Windows Mobile or iPhone can allow cutting out of 3rd party application developers.