Several decades ago John Gage, of Sun Microsystems, famously declared that "the network is the computer." He meant that the operational system users and developers should to exploit was the network of computers rather than the individual computer itself. This shift toward thinking of the "cloud" of computers as the main event has underpinned both the move towards Web 2.0 applications, and the very idea of "cloud" computing. In all of these frames, the big idea is that all the good stuff happens out on the network, but appears locally on your device. Your device (PC, cell phone, pda) serves mainly as a window into the network cloud. It's called a cloud to indicate that the edges of what is network and what is your device are vague and indistinct.
Recently Marc Andreessen, of Netscape fame, has refined this viewpoint in a very helpful way. Writing in a post called "The three kinds of platforms you meet on the Inernet," Andreessen distinguishes three levels of "the network is the computer" which he calls three platforms. In other words he says there are three levels this cloud network operates on. He defines a platform as something that you can program. He concedes right off the bat that for many users, there may be no discernment of the three levels because they are not programming (usually), although it is becoming easier to program at some level. But for anyone developing for the cloud, these three levels are essential.
Here's how he breaks down the three levels:
* A Level 1 platform's apps run elsewhere, and call into the platform via a web services API to draw on data and services -- this is how Flickr does it. Google Maps, eBay, PayPal.
* A Level 2 platform's apps run elsewhere, but inject functionality into the platform via a plug-in API -- this is how Facebook does it. Most likely, a Level 2 platform's apps also call into the platform via a web services API to draw on data and services. Firefox, Photoshop plugins.
* A Level 3 platform's apps run inside the platform itself -- the platform provides the "runtime environment" within which the app's code runs. Second Life, Ning, Salesforce, Amazon's S3 and EC2.
It is easiest to program for and develop a level 1 platform, which is usually done via an API. It is much harder to program for and develop a level 2 platform, and by extension even harder to do a level 3 platform -- but the rewards also increase.
The full dream of cloud computing -- where the network really is the computer and the application and data you are using run deep in the network -- requires a level 3 platform. Andreessen says:
I believe that in the long run, all credible large-scale Internet companies will provide Level 3 platforms. Those that don't won't be competitive with those that do, because those that do will give their users the ability to so easily customize and program as to unleash supernovas of creativity.
I think there will also be a generational shift here. Level 3 platforms are "develop in the browser" -- or, more properly, "develop in the cloud". Just like Internet applications are "run in the browser" -- or, more properly, "run in the cloud". The cloud being large-scale Internet services run on behalf of users by large Internet companies and other entities.
I think that kids coming out of college over the next several years are going to wonder why anyone ever built apps for anything other than "the cloud" -- the Internet -- and, ultimately, why they did so with anything other than the kinds of Level 3 platforms that we as an industry are going to build over the next several years -- just like they already wonder why anyone runs any software that you can't get to through a browser. Granted, I'm overstating the point but I'm doing so for clarity, and I'm quite confident the point will hold.
I would go even further. One of the rules in my book New Rules for the New Economy (now 10 years old!) is Feed the Web First. I explain that:
The prosperity of a firm is directly linked to the prosperity of its network. As the platform or standard it operates on flourishes, so does the firm. Maximizing the value of the net itself soon becomes the number one strategy for a firm. In the network economy a firm’s primary focus shifts from maximizing the firm’s value to maximizing the network’s value.
For level 3 participants to succeed, they need to make sure that the cloud platform succeeds. So they must devote massive resources to insure that they cloud network thrives. Google and Amazon, for instance, invest greatly in maximizing "free" services on the web because this is the platform they are programing for. Unless the cloud succeeds, they fail. Therefore they have to feed the web first.