Andreessen on Platforms
More discussion of platforms. This post comes from Marc Andreessen, who is currently working on a platform for building and deploying social web apps called Ning. One of the apps that has been built in Ning is We Love Etsy, a social network for people who love Etsy. Very nice.
Marc describes three kinds of internet-based platforms
Level 1 - API access - Flickr, Delicious, Twitter, etc, etc
Level 2 - API plug-in - Facebook
Level 3 - Runtime environment - Ning, Salesforce.com, etc, etc
Marc asserts that Level 3 platforms are the best for the developer. And I am not going to argue with Marc on technical grounds. That would be like me trying to beat my son at his Xbox.
Marc's argument is that Level 3 platforms provide all of the infrastructure to build, deploy, and scale a web application and therefore are more attractive to developers. He says:
What are some of those issues? To list a few: You have to provide a runtime environment that can execute arbitrary third-party application code. You have to build a system for accepting and managing that code. You have to build integrated development tools into your interface to let people develop that code. You have to provide an integrated database environment suitable for applications to store and process their data. You have to deal with security in many different ways to prevent applications from stepping on one another or on your system -- for example, sandboxing. You have to anticipate the consequences an application succeeding and needing to be automatically scaled. And you have to build an automated system underneath all that to provide the servers, storage, and networking capabilities required to actually run all of the third-party applications.
So here's my question. With providers like Amazon increasingly providing the infrastructure to host, deploy, and scale a web app, and with rapid development tools like Ruby, and with the web as your runtime environment, isn't it possible to do much of what a Level 3 platform provides directly on the web?
And isn't it also true that building apps on the web itself, instead of plugged into Facebook, or resident in Ning, is more attractive to developers because the app is less reliant on the owner of the environment to continue to act in good faith toward the developer and their app?
Marc notes that the idea of app running "off platform" is relatively new concept:
I say this is ironic because I'm not entirely sure where the idea came from that an application built to run on an Internet platform would logically run off the platform, as with Level 1 (Flickr-style) or Level 2 (Facebook-style) Internet platforms. That is, I'm not sure why people haven't been building Level 3 Internet platforms all along -- apart from the technological complexity involved.
I think that apps running "off platform" are one of the great things about the Internet. A truly distributed computing environment. With all the benefits and challenges.
But I am not a developer. And as Marc says, "lots of people have opinions about platforms, but the people whose opinions matter are programmers, and people who can make decisions about what programmers program"
I would like to hear what the developers think. I know there are a bunch that read this blog and comment actively. So bring it on.