Back to Mac
It's been a while since I switched from my 2015 15 inch MacBook Pro to a Thinkpad running Windows 10. Until that time I had worked almost without exception with Macs, so the switch was a kind of experiment.
From a hardware point of view, it was a no-brainer. The build quality of T- or P-Series Thinkpads is superb and definitely comparable with the MacBook Pro. In many respects a Thinkpad has the better hardware. It has a much better keyboard, a better battery life, and you can easily replace or upgrade components like RAM or storage. T- or P-Series notebooks also come with a 3-year-nbd-onsite warranty already included (at least in Germany).
So the big question was: How would I cope with Window 10 as my primary operating system? Microsoft has made a lot of progress in the last couple of years in terms of openness and open software support. Microsoft no longer seems to be the most evil company in the IT business. Visual Studio Code is a multi-platform code editor and became quite successful not only in the Windows world. Microsoft finally seems to acknowledge that being open is a good thing, and it's a good way to attract new developers. Windows 10 is a pretty stable and well-performing operating system. Microsoft's own Defender has become a decent antivirus solution, and it's no longer required to use any third-party AV solutions (nor is it any longer recommended, since every highly-integrated software also means new, unnecessary security risks). But Windows 10 isn't perfect. Windows 10 still has problems respecting the users privacy, e. g. you can't completely app recommendations or promoted app installations even in the Pro version. Windows 10 also still uploads loads of telemetry data about their users.
From a developers point of view, the most interesting feature of Windows 10 is the Windows Subsystem for Linux (WSL). WSL seemlessly integrates a complete Linux userland directly into Windows. You even have the choice of different Linux distributions (Ubuntu, Fedora, SuSE). WSL works pretty well, so well that you sometimes forget you're on a Windows machine. I'm not a Windows developer. A large part of my developer toolchain requires Linux shells and command line tools, so I spent most of my working day within the WSL.
The question I asked myself at some point was: Why should I run a fully-fledged Windows 10 installation just to run Linux? Would't it be better to run Linux as my primary operating system? Well, the problem is: Besides all the "year nnnn will be the year of the Linux desktop" promises, running Linux on current notebook hardware is still a challenge.
Power management has become much better with the latest kernel updates, but it's still not as good as on Windows. Fan control can be a nightmare, depending on the notebook manufacturer and model. HiDPI support is still rudimentary (most of the time, it's even worse than on Windows). And, most important, there is still no out-of-the-box support for notebooks with switchable graphics. Many of the modern notebooks have both internal and dedicated GPUs that can be switched dynamically depending on the app or or general performance requirements. While this works flawlessly under Windows, it is only partially supported under Linux.
But even if we assume we finally managed to find the perfect Linux setup: What about the application landscape under Linux? Screensharing with Skype? No. Google drive integration? Only partially. A good calendar app? Unity? CUDA for the latest distribution (which you want to run on your notebook)? Trackpoint and Trackpoint configuration without manually modifiying udev rules or X config files? No. A printer driver, that supports all of your printer's features? Not available. It's the sum of missing features that makes it difficult to use a Linux notebook as your primary machine. For some of the problems you will find workarounds, for others you won't. I've been using Linux since the very first Slackware release. I know how to use a shell, and I have no problems making things work on a Linux machine. But I just don't want that anymore. I want a notebook that works perfectly out of the box. With good power management and working fan control. With system-wide, unified HiDPI support. With the best possible Unix or Linux integration, and with all the apps I need.
So my choice was clear: I would go back to the Mac. The MacBook Pro is still the only hard- and software bundle that comes at least close to what I'd call a perfect fit for my requirements. Yes, I know. MacBook Pros are expensive, non-upgradable, they have a poor cost-benefit ratio, not the best keyboards, and you need a bunch of dongles to connect it to your peripherals. But MacBooks are also extremely fast, quiet, and reliable - and they have the best operating system available.