Given the resounding success of Apple's iTunes App Store, direct-sales portals are all the rage in mobile application development. Just this week, Google introduced support for paid apps in its Android Market, while Microsoft, Nokia, and Samsung all unveiled competing stores of their own.
It's easy to see the attraction for software vendors. App stores offer one-stop shopping, which increases customer retention. They streamline the process of handling micropayments, making it easier for mobile application vendors to collect sales priced at $10 or below. And Apple and other store providers screen and validate software from third-party vendors, so customers can trust that the apps they download will be functional and free of malware or other surprises.
Some pundits have even gone on to speculate that the app store model might be effective not just for mobile apps, but for desktop software as well -- that it could go on to become the dominant software distribution method for phones and PCs alike.
On the surface, this sounds like an attractive idea, but it could also be a dangerous one. If Apple and Microsoft opened their own one-stop shops for PC software, they would be elevated from mere platform vendors to become the sole gatekeepers of developer access to their platforms. The result would be a radical transformation of the software market as software developers would literally require permission to distribute their apps for a given platform.
Who controls software distribution?
We're a long way from that outcome yet, but the idea of an app store for desktop software is not without precedent. Desktop Linux distributions, such as Ubuntu, routinely provide software repositories where users can locate and download a variety of applications software. Similarly, Valve Software's Steam service has enjoyed success as a distribution mechanism for PC video games on Windows.
It's worth looking at the video games industry because this is exactly the type of environment that mainstream software developers should hope to avoid. In the world of console gaming, free and open platforms are virtually unheard-of. Console game developers can expect to pay in excess of $10,000 merely to gain access to the platform's SDK and tools, and a game won't actually make it to market without the express approval of the console platform vendor.
It would be trivial for the major OS vendors to exercise similar control over the desktop software market. One tool that could be used to enforce that control is code-signing, where applications must be digitally "signed" by the platform vendor before they can run in a trusted capacity. Mac OS X Leopard already supports code-signing for applications, and 64-bit versions of Windows require all hardware drivers to be digitally signed by Microsoft.
On the surface, code-signing offers an additional layer of security assurance to the user. An online store that sold nothing but verified, signed applications "blessed" by the authority of an Apple or a Microsoft would certainly sound attractive from the customer's perspective. But it would also hand complete control over software distribution to the signing authority -- in this case, the OS vendor. In a world where signed applications became the norm, Apple and Microsoft would be the final arbiters of which programs got signed and which didn't -- and unsigned apps would quickly die on the vine.
Suppose the OS vendor didn't like your code. Suppose your app competed with another app sold by the OS vendor. Suppose the OS vendor felt that your app could be construed as offensive or that it didn't meet arbitrary standards of quality. Apple has used all of these reasons to deny independent developers access to the iTunes App Store. The same practices could easily be carried over to desktop software should code-signing become the norm.
Dystopian future or today's reality?
For now, such a software market sounds far-fetched. And yet the major platform vendors definitely have an incentive to make it happen -- namely, the almighty buck.
Open source has shattered the "tried and true" software marketing and distribution systems of yesterday. As customers grow ever more leery of annual upgrade cycles, major software vendors are desperate to escape the traditional retail channel and move toward subscription-based pricing. More recently, Sun has been open about its view that software downloads have become valuable marketing channels.
Now consider the market opportunity of an app store. If Microsoft offered a one-stop shop for PC application downloads, it could charge developers a fee for access to developer tools and SDKs, a fee for access to the store, and another fee to validate and sign each application. On top of that, it could take a cut of each software sale. It could capture information about every customer that purchases software from the store and either use or sell that information for marketing, cross-selling, data mining, or lead-generation purposes. And as the store matured, it could use its knowledge of sales and traffic patterns to offer premium brand positioning for those software developers who were willing to pay extra -- or use it to quietly bury competitors.
How far-fetched does it sound now?
Perhaps the most disturbing thought, however, is not that desktop software could move in this direction in the future, but that mobile application development is already there now. As Steve Ballmer observed at this week's Mobile World Conference in Barcelona, "Strategically, phones are very interesting. Financially, phones are very interesting. It's a big, big deal for us."
It could be a big deal for the rest of us, too. The freedom for software developers to develop and distribute software, unfettered by artificial restraints, is worth fighting for. If mobile devices are to play as important a role in business computing as Steve Ballmer thinks they will, we may already have lost the first battle.