From Jim Gray:
Platforms and applications are words that are frequently heard in the information technology arena. Sometimes the terms are used interchangeably, but they are, in fact, very different things. So what are the differences? What makes a software product a platform or an application?
A software application is considered a packaged program that performs a well-defined task or solves a particular problem. Programs such as word processors, email clients or spreadsheets can be considered applications. Applications can also include web-based applications such as Google Docs.
Applications run inside, or on top of, platforms. The customer for an application is known as the end-user.
In contrast, platforms can be considered the behind-the-scenes infrastructure that supports an ecosystem. The software and hardware infrastructures that power eBay, Google and Facebook are considered platforms. Smartphones can be considered a platform. A smartphone's operating system provides a foundation for its applications. Apple iOS products such as the iPhone and iPad are great examples of smartphone platforms. iOS 5 is the iPhone’s platform, while Angry Birds is an application.
A platform is an operating environment like an operating system, database management system (DBMS), or language runtime environment like Java, where third-party applications, plug-ins or add-ons can run. Platforms offer software services that can be used as the basis for independent developers to build new features or applications.
The customers for a platform are not end-users, but application developers. These developers utilize the platforms services to create applications that run within the platform environment.
A key component of success for a platform is the establishment of a developer community that provides widespread adoption of the platform. Platform venders must provide robust supporting artifacts and development tools for the purpose of enabling and encouraging the use of the platform. Items such as documentation in the form of User Guides, Application Programmable Interface (API) specifications, Style Guides and example code are essential items needed to enable the development community.
A point of confusion between an application and a platform is the fact that some venders use their platform to serve more than one group of customers. An example of this is Google Maps. Most end-users know Google Maps as an application that displays maps and directions. But in fact, Google Maps is also a platform with published APIs that allow developers to embed maps in their application.
In summary, applications are stand-alone, end-user programs that perform a focused task. Applications can be locally installed in the form of web-based programs. Platforms are considered a “behind-the-scenes” infrastructure that is not directly accessible by end-users but is utilized by application developers to create software applications for the platform ecosystem. Platforms require the establishment of a developer community in order to be successful.