Brain Rewire
To help rewire the brain as a developer, I like to think in terms of bubbles. One starts with the first all-encompassing bubble, the Application itself. But what is an application? How can we start to break it down?
Most people think of an application as purely software written in some programming language. Typically overlooked, an application must also consider its target environment (or platform). For example, let’s take the word processor application Microsoft Word. It can run on many different platforms, including:
- Microsoft Windows for PCs (or Personal Computers);
- Apple macOS for Mac computers;
- Apple iOS for iPhone;
- Android for Linux-based smartphones and tablets; and
- even Web browsers.
In essence, one might consider Microsoft Word as a single application capable of running on every platform. However, one cannot simply take an application targeting Microsoft Windows and expect it to run on an iPhone. Actually, it’s many different applications, each written in a language targeting the platform. For example, the Microsoft Windows version is written in C++, where the iOS version is Objective-C. This often explains why an application running on one platform, might not look-and-feel the same as on another. It’s because it’s a different application, most likely written by a different team of developers.
So when we think of an Application, we can split it into two bubbles:
- Software - written in a programming language and bundled for a target environment; and
- Platform - where the bundled application is downloaded, installed, and run.
Next, we will continue to breakdown an application and split these bubbles further, starting with Software.