Today 24 mobile network operators joined together and announced their plans to create a Wholesale Applications Community (WAC), an unified platform that promises developers to write their application once and run anywhere, meaning across any handsets and any operating systems. The announcement was made in the 2010 Mobile World Conference. Sounds familiar?? this exactly what Sun did with Java for the desktop applications development and what J2ME did for the mobile application development, will come to this later. Go to the WAC website to understand more about the goals and it’s supporters. Anyway I think this is a huge effort and may not be that easy and they might be setting themselves up for failure, here are my reasons.
Write once and run anywhere mantra was proved wrong already - at least for the mobile application development. One of the goal of WAC is to allow developers to write once and run in any mobile operating system. This exactly what J2SE (Java) promised for desktop application development and what J2ME did for mobile application development, but what happened to those ambitious goals, seems like we went nowhere. While Java is great for server side application, it’s not widely adopted for the desktop and especially not for the mobile application development. WAC might be following J2ME’s failure by repeating what J2ME tried to do a decade back (J2ME was first released in 1999).
Issues in dealing with different Operating Systems. On a higher level the mobile eco system consists of three major players the operating system, the network operators and the handsets. WAC promises to create a single programming interface that will work in multiple mobile operating systems (e.g. Symbian, Android, Windows, etc). This might create a huge issue for application developers, if the different operating systems support different versions of the API’s. For e.g. say a new version of the API is released and Symbian supports it but RIM does not support it, developers now have to manage different versions of their application for different operating systems. This completely defeats the goal of WAC.
How about the network operators? Even if the operating system is updated to support the latest versions of the API, one has to rely on the network operators to push the updates to the individual hand sets. Most of them do not update their operating system in their handsets unless it is pushed by the network operators. And this causes a lot of variation in the market each using different versions of operating system and each operating system supporting different versions of the so called one uniform API from WAC. This ultimately increases the cost of maintaining and releasing a mobile application. Speaking of the network operators, they are notoriously famous for controlling access, for e.g. each network operator might have their own customized application store making the developers to go past their red tape. And you know what this what happens for the android market place as well, some network operators even block the market place access and provide their own customized version of it.
Got to deal with different devices with different capabilities. Say there is no issues with OS and even with network operators even then developers have to deal with multiple handsets. Developers have to deal with hundreds of devices with different capabilities. They will have to consider display resolutions, input options, does it support gestures?, processing power, does it have GPS?, does it have a camera? and so on.
All the above issues creates a lot of confusion for developers and will certainly increase the time and cost to the market for application developers. Not only that, think about average consumers they have to understand what kind of application will work in their devices, this will certainly scare the heck out of them and there by reducing the potential of them buying an application from the store. All these factors will prohibit the adoption of the ecosystem by the developers and hence WAC might be an eventual failure.
On the other hand Apple iPhone and it’s application store is a great success as the device (hardware) and the software is tightly controlled by Apple and hence developers or consumers need not have to deal with the mess listed above.
On a different note, Why do we need another platform that works across all the handsets and isn’t that Android is all about? The key difference is WAC is trying to create one API for various operating systems where as Android is just one operating system. And as techcrunch pointed out, there is already a platform that works on every smartphone which is HTML 5. Great example of this is HTML 5 based Google Voice application which works in iPhone, Palm Pre, and any smart phone that supports HTML5.