An imaginary story
John sat in his comfortable chair and booted his communication device. All his friends were raving about the new Taseor™ game and how fantastic it is. He really wanted to try it. He launched the application store and started looking at all the categories. He found the "games" one but was overwhelmed by the amount of titles. He decided to use the search function. He typed the name in the search box and voila! He clicked the first hit. The screenshot looked as amazing as his friends described. The system downloaded the binary code from the network and installed it automatically without any further assistance. Great! He thought for a moment that he should start playing the game right away. But instead he wanted to update his existing applications if they contained newer versions.
He was right. His favourite photo application had a new major version. Click "update" and everything is automatically done. The old application is removed from the system and the new one takes its place. He then found that the PDF viewer application also had a minor upgrade. And by reading the release notes it was clear that the new version had security fixes. Another click on "update" and everything is ready. Most of the other applications were either at the same version or had only really minor updates. He decided that he had spent enough time on the application store. John finally launched Taseor™ and started playing.
If by reading the previous paragraphs you thought that it is 2011 and John is using his iPhone / iPad / Android phone, then you are wrong. The year is 1999 and the communication device is a simple desktop computer. John is running Debian Linux and the "application store" is no other than a graphical package manager.
The point is that for the last 20+ years, several Unix variants offered their users complete freedom on how applications are installed. You can either install an application manually (i.e. find a website and download it directly from the creator) or browse OS "approved applications" that
- are selected/filtered by the OS developers
- are compliant with the guidelines of the OS
- are optimized/verified/compiled for the specific platform architecture
- are integrated with the rest of the applications
- are offered as pre-packaged binary code
- are installed via a single click/command/step
- are browsable via a thematic catalog
- can be updated to newer versions after initial installation
What happens today
It is true that most non-technical users came into contact with application stores after buying an Apple device (e.g iPhone). The success was almost instant. What once was a big headache (finding and installing applications) happens now instantly with the touch of a button. Soon everybody wanted a piece of this.
Google launched Android Market, Nokia launched Ovi, Apple re-launched for Mac computers, Google launched for Chrome/ Chrome OS and several others follow (Palm, Blackberry).
Apple controls its app store with an iron grip. The IT news always contain stories on rejected applications, change of terms and developer frustration. Google has less restrictions on what is uploaded in the Android Market but it suffers from several limitations as well.
Most of the issues (if not all) ultimately focus on centralised control. While this decade seems to be based on distributed systems/clouds and open standards, the application store is essentially a step backwards. It transforms the open nature of the internet into a dark age where freedom is taken away from you.
As more platforms gain an application store and more developers submit their applications, the deficiencies become more apparent:
- The current cut is too steep
- Centralized control means single point of failure
- Centralized control raises security concerns
- The sandbox/restricted environment limits innovation
- The screening process will fall under its own weight
- The featured/sponsored/ratings system is not efficient
Let's analyze these in order.
30% is a lot. You are giving one third of your earnings to Apple. If you are a small time developer who has a relatively unknown application in the app store, then this percent does not bother you much. If your application is a success story and downloads are soaring then you start to realise how much money is taken away from you. You also have a big problem if your company wants to sell a high profile application. Want to charge 300$ or 400$? Apple's cut is now truly astonishing. Of course Apple offers the infrastructure, the hardware, the selling channels and everything else. But 30% is a really heavy tax.
The fact that there is only one application store is very restricting as well. You do not agree with Apple's terms? You simply have no other choice. Is the Apple store down? Everything is down. Does Apple reject your application? You are simply out of luck. Got a bad review from a user that you did not deserve? Everybody will see it even though it is not correct.
Security is another increasing problem. As with every central repository, the application store will become a great security risk in the coming years. Infecting / highjacking an existing application or introducing a new malevolent one will be the target of several individuals. In theory each application is warning the users for the privileges it requires. In practice however, most users ignore these warnings and blindly click the "install" button. With GPS capable devices becoming more and more common, your mobile device knows too much information about you.
While Android offers a lot of flexibility, Apple never lets you bend the rules. Think you have a better implementation of an email reader for iPad? You cannot publish it since it competes directly with Apple. You want to access hardware outside of the APIs Apple gives you? You have only what is available. Have a great idea for multitasking / scheduling / affinity of iPad 2? You have to wait for Apple to publish the next version of their OS.
The basic concept is that application stores are focused on exactly that: applications. You can't easily publish a great background service, or a new compressing library for other applications to use automatically. Each application is an isolated island with minimal interaction with the rest.
Another serious issue is the screening process and what passes as an accepted application. Let's take aside the fact that humans make mistakes and they might reject your applications for the wrong reasons. What is important is that all their decisions should support their previous ones. For example if your application is rejected because it is porn based, then you assume that all future applications that are porn-based will be rejected as well. Porn is an easy example, but in other corner cases the boundaries won't be so clear. The screening process as the time passes will become more difficult since a rejection will also need to be compared with past decisions in order to verify that Apple offers no special advantages to specific developers.
Finally another problem that gets serious over time is the amount of available applications. All the top spots are taken. Even if you have a great application, your marketing options on the application store are fairly limited. Well established applications will keep on selling even though better alternatives might exist. The problem has been extensively discussed in the inter-webs.
Some may argue that application stores are at their infancy. In the future they may be improved on several aspects. I personally believe that the current situation will not last long (at least without outraging developers and users alike). Therefore I predict that in the next five years at least one (or more) of the following will be true.
In the near future:
Users will be able to install illegally applications outside the application store with the same ease (i.e without any technical know-how, think Aunt Tillie) with no external help for the "jailbreaking" process.
Installing applications outside of the application store will be completely legal and most users will have a mixture of applications (official and non-official).
Server code for application store / market will be opensourced / leaked.
Big companies will licence / use application stores for their own apps (e.g. Amazon iPhone store, Microsoft iPhone store, Adobe iPhone store)
Cut from paid applications will drop to a miniscule amount (e.g. from 30% to 2%) or a completely new pricing scheme will be devised.
Basically users will select application stores as Linux users choose deb/rpm repositories (ability to use other ones apart from the "official" one).
About the author
Kapelonis Kostis is a software engineer. He hates the fact that old ideas are given a new coating and are offered as "groundbreaking" and "innovative" concepts. He couldn't stop laughing when Apple "introduced" Spaces, a new way of grouping your applications together and easily switching among them.