In the past I've often wondered whether the idea of one-stop "app stores" for software downloads might spread from smartphones to the PC desktop, and if that happened, whether it might have implications for software developers' freedom. I now have to hand it to Apple, not just for being the first to actually try this concept but for eliminating any lingering doubt.
Last week, Apple unveiled details of the next version of the Mac OS X operating system, named Lion, to debut next year. Among the new features announced was a Mac App Store, to be modeled after the iTunes App Store for iPhone and iPad apps. The store is expected to launch in mid-January and will be compatible with the current Mac OS X version, dubbed Snow Leopard.
[ Keep up on key application development insights with the Fatal Exception blog and Developer World newsletter. | Follow the latest in Microsoft technology with our Technology: Microsoft newsletter. ]
Here's the kicker: To gain access to the Mac App Store, developers will have to register for Apple's Mac Developer Program, which costs $99 per year. In so doing, as with the iTunes App Store, they will have to agree to Apple's lengthy list of terms and restrictions. And this is where the fun begins.
Be perfect, like Apple
The very first restriction cited is that software published through the Mac App Store must not crash. I admit this one had me scratching my head a bit. Such a request might be reasonable on a smartphone platform, since smartphone OSes typically have limited system resources, limited access to third-party peripherals and hardware, and limited multitasking capabilities. But an application running on a full-powered desktop OS must coexist in a far more complex environment with a great many external influences. Is never crashing for any reason a guarantee that independent developers can realistically make?
The second restriction is that any software that "exhibits bugs" will be rejected. Again, I find this a little strange. One of the main features of the Mac App Store is said to be its software update feature, which allows users to download and install patches from a single source. But if any application that exhibits bugs is liable to be pulled from the store, what is the purpose of the update feature? Not to fix bugs, apparently.
Further down the list, Apple explains that "apps that duplicate apps already in the App Store may be rejected, particularly if there are many of them." This restriction is similar to a clause already in the iTunes App Store license agreement, but it seems overly broad for desktop development. The Mac App Store isn't just for trivial gizmos like desktop clocks and games. The screenshots on Apple's site show sophisticated applications such as GarageBand, iMovie, Keynote, and Pages for sale in the store. How many features of these applications do independent developers have to duplicate before their apps are pulled from the store? How much capital should they risk to find out?
I understand the intent of each of these provisions. Apple doesn't want the Mac App Store to become known for distributing buggy, broken, redundant apps. Users who buy from the store should receive only high-quality software from reputable vendors, not shoddy apps knocked out to make a quick buck. But taken together, they seem to be holding desktop app developers to an almost impossible standard: be absolutely unique, don't ship with any bugs, and never, ever fail. Or else.
Forget about Java, Flash, and AIR
For those who have been following Apple's seeming war on Flash, Java, and other runtime environments provided by outside vendors, Apple lets the other shoe drop further down in the Mac App Store license.