Wednesday, September 19, 2007

Internet Software Platforms Explained

This lengthy but well thought out explanation of 'Internet Platforms' by Marc Andreesen is a must-read. I mean it. If you are only going to read one thing all week, well, stop reading this post and go read his. It does a great job of explaining the present and future of application development for the Internet, as well as explaining just what all the hullabaloo regarding the Facebook platform. The latter being what he calls 'The first level 2 platform' of the 3 levels he describes.

 

Really smart and thought provoking stuff. Profound.

 

Here's the short version as I summarize it (I still recommend reading it, this is partly a summarization exercise for my own benefit):

 

Level 1: Applications can call an API from a web service, get data and use it in their apps. (e.g. An app at 'mygeopixwidget.com' pulls map data from Google Maps and pix from flickr, mashes them up and serves them up on their web page). Got it? Data goes FROM the service TO the app.

 

Level 2: Applications can plug themselves INTO a platform. (e.g. an app at mygeopixwidget.com pulls the same data as above, but then the app is accessed and appears within the platform's UI, such as getting served up on someone's Facebook page). The data may likely go from the service to the app, as above, app does some operation on it, but then the result goes BACK INTO the service and gets served up there.

 

Limiting factor in level 2 is that the operation on that data occurs on compute cycles that the app developer runs. If they can't scale or their servers go down or whatever, then the app breaks, and the negative result looks like the fault of the platform provider. (Great example here being all the "oops we're choking"-esque messages I get on Scrabulous as of late).

 

Level 3: You've probably guessed level 3 by now, right? The compute occurs on the platforms cycles, and the app developer just uploads their code to their servers.

 

Level 3 is a huge undertaking for the platform provider (allowing for others to upload code that you haven't vetted to run on your mips and storage), but the result is that the dev cost for providers drops to near-zero. Just as Level 2 apps are an order of magnitude cheaper to write than level 1, Level 3 apps will be an order of magnitude cheaper than level 2.

 

Marc's post goes into a great deal of detail about examples of Level 3 platforms in the making. He names Second Life as an example, but I think he's mistaken. I don't beleive 3rd party apps can call into and retreive the data from their apps, can they? I don't know that much about the SL 'dev environment'). He misses one example I know of (but am under NDA and thus can't speak of)... and it's a game platform :-)