With apps we are silo’ed - none of the apps on my phone, my tablet and for the most part on my computer link together in this seamless way. If a photo app on my iPhone wants to share the picture I just took on Twitter it needs to implement this functionality internally - regardless if I have the Twitter app installed on my phone or not. Developers are forced to reinvent the wheel all the time. Users can’t easily link their preferred apps together (what if I don’t use Twitter but Identi.ca or store my photos on SmugMug and not flickr?)
APIs provide this capability - but they strongly favor a highly concentrated distribution model: As every developer needs to implement each API again and again, developers only integrate with the biggest players in the market.
The future should consists of a simple, unified API (let’s call it - for lack of a better word - the “API-to-Me”) which provides a way for each of your apps to announce which data and functionality it can provide – and consequently consume these services from your other apps. The user agent (your browser) acts as the intermediary - putting you (the user) squarely into the middle of this exchange: At all times do you stay in full control over which apps shares data & services with any other app.