One of my favorite discoveries of the past year has definitely been Marc Andreessen’s blog. From the moment he first started posting long, chewy, thoughtful discussions of his thoughts on technology, business and startups (along with wonderful digressions into great new sci-fi writers, Web 2.0, and essential online cheat sheets), Marc has been on the must-read list for most of the techie blogosphere.
Now, the famous co-founder of Netscape and co-author of the Mosaic browser has moved on to Ning, a social networking startup that’s jostling with Microsoft, Amazon, Sun, Facebook and others to provide a platform for all manner of distributed applications, all within “the cloud.” Amazon even calls their platform the Elastic Compute Cloud, or EC2.
Therein lies the rub. The word platform has become overused to the point of losing any precise meaning. WhatIs.com has long provided two definitions for platform:
1) In computers, a platform is an underlying computer system on which application programs can run. On personal computers, Windows 2000 and the Mac OS X are examples of two different platforms. On enterprise servers or mainframes, IBM’s S/390 is an example of a platform.
A platform consists of an operating system, the computer system’s coordinating program, which in turn is built on the instruction set for a processor or microprocessor, the hardware that performs logic operations and manages data movement in the computer. The operating system must be designed to work with the particular processor’s set of instructions. As an example, Microsoft’s Windows 2000 is built to work with a series of microprocessors from the Intel Corporation that share the same or similar sets of instructions. There are usually other implied parts in any computer platform such as a motherboard and a data bus, but these parts have increasingly become modularized and standardized.
Historically, most application programs have had to be written to run on a particular platform. Each platform provided a different application program interface for different system services. Thus, a PC program would have to be written to run on the Windows 2000 platform and then again to run on the Mac OS X platform. Although these platform differences continue to exist and there will probably always be proprietary differences between them, new open or standards-conforming interfaces now allow many programs to run on different platforms or to interoperate with different platforms through mediating or “broker” programs.
2) A platform is any base of technologies on which other technologies or processes are built.
Fortunately, in this mammoth post, Andreessen both modifies and adds to these definitions, putting the term in the context of the Internet and then exploring three different levels of online platform: the “Access API,” the “Plug-in API,” and the “Runtime environment.”
As a rather famous online pundit often writes, read the whole thing (RTWT). If you’re at all interested in programming, online business strategy and the concept of the cloud, you’ll be glad you did.