Since 2003, I have been a devoted Mac user, favouring their “Pro” line of notebooks (PowerBook/MacBook Pro). In early-2019, driven by multiple factors, I decided to leave the “Cult of Mac”), switching to a Windows PC.
With my new found freedom, throughout 2019 and 2020, I took the opportunity to experiment with multiple operating systems and device types, including Windows 10, Linux and even iPadOS. I was eager to understand the maturity of each platform related to my common workflows, whilst documenting the transition process.
The articles linked below highlight this journey, describing my experience with the different software/hardware and providing insight into specific areas (e.g. development).
- ThinkPad X1 Extreme
- macOS and Windows
- Linux Software
- Flatpak and Snappy
- Fedora 31
- Razer Blade
- VMware Workstation Pro
- iPad for the Enterprise 2020
- iPad Development
- WSL 2
- Dell XPS 17
- Linux at Work
- Docker on Fedora 33
A byproduct of this transition process was the need to establish a common software list that could be utilised across different platforms.
The goal was to make the transition between platforms as seamless as possible, minimising disruption through standardisation and native compatibility.
To achieve this outcome, I actively avoided highly-opinionated software that targeted a specific platform, instead prioritising web-based technologies, accessed via the browser and/or technologies such as Electron.
Although “avoid lock-in” became my guiding philosophy, I did make exceptions, specifically for any software that delivered unique value above “open” alternatives. For example, I use Final Cut Pro on macOS for video editing, even though it is not available on Windows or Linux.
The table below highlights my software selection across macOS, Windows, Linux and iPadOS, covering my common workflows.
As you can see, the primary “desktop” platforms (macOS, Windows and Linux) are comprehensively covered, each offering high-quality software that can be used with a low barrier to entry.
Unsurprisingly, iPadOS (due to its inherent limitations) is a more challenging platform. Although it continues to mature with every release, “power user” tasks such as development remain cumbersome, requiring some creative workarounds.
As to which platform is “best”, I do not believe there is a perfect answer, which is why I would advocate the ability to use any of them. At a high-level, I would summarise
macOS: Best hardware/software integration, often resulting in the most high-optimised experience (e.g. better battery life, etc.) The *nix kernel makes POSIX compliant development seamless (at least on Intel-based Mac’s) but often limited by the tightly controlled Apple ecosystem.
Windows: The most “work-friendly” platform, especially utilising applications from the Microsoft ecosystem (e.g. Office 365). With the introduction of Windows Subsystem for Linux 2 (WSL 2), POSIX compliant development is now native, making Windows the most versatile platform.
Linux: Highly customisable and cost-effective, with the widest array of free and open-source software (FOSS). The main barrier (for me) is the lack of native Office 365 software (e.g. Word, PowerPoint, Excel, etc.)
If you are a long-time user of a single platform but have been considering a change. I feel there is no better time, recognising the maturity of the main desktop platforms and prevalence of web-based software.