What is an Application Platform?
Programmers do not create applications from scratch; instead, they rely on capabilities offered by existing software: the application platform. Showing a graphical interface to the user, fetching data over the internet, handling clicks, touches, and swipes — all examples of basic capabilities that the application platform will offer to the developer.
And it doesn’t end there. The application platform itself is build on a deeper layer of software, the largest and most complicated of them all: the operating system(shortened as OS). The developer’s job is to use the capabilities of the platform — itself using the capabilities of the operating system — adding what is in comparison only a sliver of code on top of an existing mountain. We can visualize it as the below.
On a given computer, the operating system is the lowest layer, the one that talks directly with the metal. Above it, one or several application platforms can be found: their role is to offer a convenient interface to the capabilities of the operating system to applications(and their developers). Such an program to program interface is called an Application Programming Interface; shortened to API. The raw capabilities of the operating system requiring specialized programming skills to use, the API of application platforms makes it easier for non-specialists to build applications.
For example, on my Mac, a version of the Mac OS operating system is running. As I am writing these lines using a website, my work is made possible by a combination of application platforms: the Web and the Mac OS platform. The browser I am using, itself a Mac app, is built using the Mac OS application platform; an application built using the platform of the same vendor as the OS is known as a native app. However, the website I am using is not directly using the Mac OS platform; instead, made possible the engine running inside my browser, it relies on the Web platform. The browser engine bypasses the Mac application platform: it uses the capabilities of the Mac operating system directly and offers to web applications an alternative set of APIs.
For developers, the benefits of using the Web as an application platform is its ubiquitous nature: operating systems and application platforms differ per computer, but the same Web platform is available on almost all of them: an application built for the Web is available to a large and varied group of users.
The Web is also open-source software, and developed in the open through multiple implementations that are maintained by competing companies, yet also based on cooperation around a set of shared standards. Next, we will first look at what open-source software is.