It seems in the mobile handset ecosystem that there is a religion around open. Open is good. Open will save the day. All your problems will be solved by openness.
Yet, still today large numbers of handsets that are made, and sold successfully around the world are not open. Why?
If you look at the mobile world from the perspective of a handset OEM - everything looks open. Nokia can implement whatever they want on an S40 device. They have access to every API imaginable. Their ability to deliver is limited only by their imagination, and their ability to sell the resulting devices.
Samsung can put whatever the want on the Samsung Hanset Platform - including changing the underlying RTOS as they switch between different chipset vendors. Sony Ericsson can integrate whatever they fancy into their central platform.
What about the ISVs though? They can't deliver to all those closed platforms though. Let us look at who's been successful in the mobile ecosystem so far - who's shipped over 100 million units?
What stands out to me is that few of these solutions have had their success from open platforms. In fact the closest we get is Symbian and S60 - which up until around now has been closed - you needed to be an OEM with a few €millions to spend on software licensing (not to mention a few €100 millions on R&D) to build a handset with these platforms included.
So after 10 years of open platforms the successes continue to be from solutions that are portable, C based engines that deliver on proprietary, closed mobile handsets.
In fact if you are an ISV open platforms look like a bad thing. Why? They increase your cost. In the case of a closed, proprietary platform an OEM will be adept at taking external, portable C sources and integrating this with their platform - using their own engineers, at their own cost. On an open platform as an ISV it becomes your problem - you need to hire people with the right skills and tools and build and test on the platform. Result? You invest more of your time and effort on porting to multiple open platforms and less time and effort on building your unique, innovative solution.
So openness is actually bad for the industry. So what would be a better approach?
Given that everyone who ends up being successful builds a portable, C based engine that is integrated onto devices - how about going back to that? ARM is ubiquitous in the mobile industry - so we can even support a binary format for those who can't or won't give out their source code. While this doesn't help application vendors who want a full featured platform - it does provide a consistent baseline, and reflects what everyone is actually doing.