Network operators don’t really want you to run apps.
Apple has created a market for mobile apps that is the envy of the major players in the mobile marketplace. The result is that apps and app stores have become something of a modern day gold rush. Anyone looking at this frantic activity could be forgiven for imagining that mobile apps were a brand new phenomenon. Yet this is not the case - Java ME apps have been around since April 2001, when Motorola launched the i80s and i50sx models.
Java ME (Micro Edition)
Java technology is in not one but several things: a programming language, an execution environment (the Java Virtual Machine or VM) and many, many code libraries including GUI interfaces. Java ME is the combination of the CLDC (Connected Limited Device Configuration) Java VM plus the MIDP mobile device GUI and a number of APIs (application programming interfaces). Together these allow programs written in the Java programming language to run Java ME applications, called Midlets, on a very wide range of mobile phones. The history of Java ME’s evolution is as below:
MIDP 1.0 specification was completed on 1st September 2000.
MIDP 2.0 specification was completed on 27th September 2002.
MIDP 2.1 specification was completed on 26th May 2006.
So the technology has been around for quite some time. It is pretty difficult to get reliable numbers on how many mobile phones in the UK are running MIDP 2.x but it would be surprising if it were not in excess of 50 million phones. In the world market, the figure is in billions.
What went wrong ?
With the mature Java technology, and a substantial market, why did nothing happen until Apple arrived on the scene? Part of the answer lies in the way Java ME apps were marketed – or rather, not marketed, as covered in “Only one App Store can compete with Apple”. More interestingly, though, was the fact that the network operators did not really want to have apps run on their phones.
Network operators considered that apps would pose risks in three major areas:
1. Security – apps could prevent the phone working properly, or access sensitive user data. Worse still, being able to communicate easily meant that virus programs could spread quickly, potentially leading to phones, or even networks, being compromised.
2. Commercial – apps could use the communications facilities of the phone without authorisation, leading to unauthorised costs for users.
3. Support – apps would lead to a flood of support calls that would have to be dealt with by the network operators’ already-costly customer support organisations.
While the security and commercial concerns were and still are very valid, the network operators were overly concerned over the support issues. So much so that they put the cart before the horse and ended up seriously crippling the Java ME platform. There are several dimensions to this crippling of Java ME:
1. From the phone the customer has no idea how to download an application. There is no app store on phones to solve this problem, nor a single market for all Java ME applications across all networks.
2. If a download link is sent via SMS to the phone, there is often no obvious way for the user to know how to open the link and download the program. Often phones don’t have the internet enabled by default, so it could not be downloaded in any case.
3. If the user does manage to download the app, it is then hidden deep in the phone’s menu structure - i.e. it seems just to disappear.
4. If the user does manage to download and run the program, the very first thing the user is confronted with is a series of questions asking for permission for the program to access the internet, with options like “Allow once” and “Allow for this session”. And this happens every time the program is run. Permission needs only really to be asked once.
5. Application signing – this made matters worse, since every operator, handset manufacturer and software platform had their own master certificates, so that the chance of actually running a signed program on a wide range of phones was virtually nil, leaving developers no choice except to ship their applications unsigned which gives the charming message to the user “You are about to install an unsecure application. Continue?” Not likely.
All of which creates a tremendous barrier to adoption of the Java ME technology. These are all small issues that could have been easily resolved. That they have not been resolved in the three and half years since MIDP 2.1 was released is a terrible wasted opportunity.
Where is MIDP 3.0, the next Java ME release?
The MIDP 3.0 specification was started on 25th March 2005, four and half years ago, and is only due to be completed today – 30th November 2009. What has taken so long for the MIDP 3.0 specification to be completed? Clearly, making Java ME applications work properly on mobile phones has not been a priority for the industry. And it remains to be seen whether it will actually fix the problems
Is it now too late for Java ME? I hope not, because Java technology has a very important part to play in the mobile industry. Java technology is more than just a language; while the Java language is effective, it is not the star of the show. The real star is the Java VM and the code libraries.
The Java VM is a technology that allows software programs to run on a huge number of hardware/operating system combinations by providing a Virtual Machine environment. It is a “virtual” machine because it does not exist but is synthesised by the software using resources available to it through the various hardware/operating system combinations that it executes on. The same Java VM is powering the majority of the server applications on the internet. This is important because the Java VM provides a heterogeneous environment across servers and clients for software and data. As the internet grows and mobiles phones get more powerful, software becomes more and more interconnected, and so the advantage provided by the Java VM grows.
There are new and exciting languages such as Scala and Closure that offer the promise of easing the burden of software development in massively distributed and concurrent environments such as the mobile phone marketplace that will lead to new and interesting applications. But none of this will happen if a fragmented and dysfunctional marketplace is allowed to continue to exist in its current state.
Many of the issues holding back Java ME are easy to fix but it depends on the will of the mobile industry leaders to work together to solve these problems. This has happened in the past to the great benefit of everyone involved in the mobile phone marketplace. Chief amongst these are the roaming agreements hammered out in the early days of GSM to allow handsets to roam from one network to another.
Mobile apps can be the next gold rush, but only if the industry leaders, working together, deal with the few remaining problems of the Java ME platform. If they do so then they will create a mobile marketplace that is as significant as the internet itself.