The Good, The Bad, and The Ugly (and the Second Attempt) — Stories of switching from macOS to Windows

The Plan

I've been using Macs now since 2005, when I got a PowerBook G4. Back then, I wanted to do media stuff, but also have the nice userland and command line experience I had with FreeBSD, which I used before. MacOS did offer that.

Since then, a few things changed: Apple moved from PowerPC to Intel (almost certainly a good move in hindsight) to ARM, they introduced the iPhone, which became a massive success and has redefined – for better or worse – how we use mobile phones. The App Store was introduced, and with it, more rules and restrictions how apps can be published, and what process they have to go through to run without warnings. The latter is particularly worrisome for open-source projects, as Apple now requires notarisation in order to make your app run on macOS without big, scary security warnings. That introduces additional friction into the development and deployment process, while sometimes not even keeping malware out.

Warning shown by Gatekeeper for an un-notarised app. Source: Apple.

In addition, since the introduction of the iPhone, I got the feeling that Apple is a bit too much consumer-oriented, neglecting their professional users more and more. Back in the day, Apple's website even had a dedicated section for Pro and Science users, complete with interesting use cases, which is now long gone. The focus on consumers is further exemplified by their multi-year neglect of the Mac Pro, the lack of decent GPU options, and by saying farewell to open standards and APIs, such as OpenCL (they were even the initial developers and a founding member of the Khronos OpenCL working group!), OpenGL, or Vulkan.

So my decision was made to move away from macOS, to Windows. I've been multiplatform for development reasons for years, and Windows 10 seemed to be a tremendous step forward back from the time when I was last a full-time Windows user. The first step was to find a suitable laptop for day-to-day work,...

The Execution of The Plan

... that machine of course had to be powerful enough for development and data analysis tasks, while being light and having a long battery life. I know, I know. After a longer search, my choice fell to the 2019 Dell XPS 2-in-1, model number 7390. Quad-core with hyperthreading, 32 GiB RAM, Thunderbolt and a 4k HDR display looked like a very good, albeit expensive, deal. I ordered the device in late November 2019, and after some initial delays due to some parts on back order, it arrived in early December. My intent with getting a 2-in-1 device was to not only replace my laptop, but also my iPad, which had fallen into disuse, as it simply offered not enough flexibility. I don't want to take notes on one device, and have to sync them with some crappy half-assed cloud service to be able to use them on a real computer – a single machine for both tasks is what I had been longing for, and now, 2-in-1 devices seemed to have reached an acceptable degree of maturity.

Over the years, I had grown to love a few macOS applications and used them in my daily workflow. The most important of these are OmniFocus for project management and planning, and Papers, for reference management.

Thankfully, The Omni Group had in the meantime developed a web-based version of OmniFocus, that works in conjunction with the iPhone version that I still use.

Papers in turn I had already replaced twice – first, with it's official successor from ReadCube, and lateron with Zotero, as the new Papers/ReadCube app turned out to be an absolutely horrible, vendor lock-in, bug-ridden abomination. One with a subscription fee, that is. Since then, I am a happy user of Zotero, which is not only open-source, but also offers you to do synchronisation between different devices using your own WebDAV space. Together with the BetterBibTeX plugin, it proved to be a worthy replacement for the original Papers, even exceeding it in functionality – not so much in style, though.

With this, the worst aches on the software side were essentially solved. Nice.

The Good,...

With Microsoft nowadays not being the evil corporate giant of the 90s anymore (or at least trying to appear as such) and fully embracing open-source, Windows has gained the Windows Subsystem for Linux, or WSL. My initial statement about wanting to have an operating system that can handle media stuff as well as having a nice command line environment and userland had therefore gotten another option: I could run Windows, get all the nice media stuff (Creative Suite, Ableton Live, etc...) and still be a command line dweller for all the things where it's useful, such as when dealing with LaTeX – simply by getting WSL going and then having a full ArchLinux installation running in a terminal. With WSL2 now available, you even get access to Nvidia GPUs through WSL, e.g. to use CUDA from Python.

WSL2 has also brought some changes to the file system architecture, with all Linux files now being housed in a VHDX file, instead of directly on the NTFS file system. This has the benefit you can't screw up Linux files in the Explorer, but has the downside that some applications suffer a significant slowdown. I experienced this for example with oh-my-zsh and its git plugin, which often took several seconds just to query git status and show a new prompt. While at its core, this issue is still unresolved, I have found a workaround by using the Pure ZSH prompt on top of oh-my-zsh, which queries git status asynchronously, yielding a non-laggy prompt and pure command line bliss.

Hardware-wise the 10th-generation Ice Lake Core i7 processors also provided enough speed for my day-to-day development tasks. Even the integrated GPU, now dubbed Iris Pro, had made quite some leaps in recent Core generations, and was now sufficient for me. In addition, attaching an external GPU via Thunderbolt still remained an option. Cool. The 32GiB of RAM the machine offered were also extremely helpful in doing development, having what felt like 1000 tabs open in Vivaldi (which is definitely my favourite browser, apart from resource use, looking at you, Chromium), and running one or two VMs in addition.

The HDR display, apart from being a slight bit unevenly lit, had gorgeous colors and contrast, although it almost felt like a bit of overkill to have 4k resolution on a 13 inch display.

The quality of Dell's digitizer and pen was also pretty good, and I could finally go to a workflow of taking notes in seminars (or just for myself), and being able to copy/paste into the notes whatever I wanted, and not just what Apple allowed me:

Some notes I took for a paper revision.

After playing around with different applications, I did settle for Concepts, and app I was familiar with from the iPad times, and actually intended for sketching. It's however pretty great for taking notes, too, because you get an essentially infinite canvas, and you can easily move stuff around, scale, etc. – simply functionality some "serious" note taking apps do not offer. Concepts now also offers export to more interoperable formats, such as PNG, PDF, or SVG.

The Bad,

While the technical specs of the Dell XPS were pretty good, I have to complain (a lot) about build quality. Within a few weeks, one of the fans went from grinding noise to completely giving up in a matter of two days. After contacting Dell's (quite awesome and friendly) Pro Support, we could temporarily solve this issue with a can of compressed air (this was the only viable solution as I was travelling out of Germany at this point, although Dell did offer to fix the issue in the local country, which is also nice). After returning, the fan died for good, and Dell sent a technician to replace the entire motherboard. Macrium Reflect came in handy here, for quickly creating an image of the SSD (which is of course also soldered on the motherboard), and restoring it to the new one. Wait, sending a technician? Yes, this was before the first Coronavirus lockdowns started in Germany.

Further, the power bricks' cable was showing fraying within a few months of use. Looking at how it is designed to wrap around the sharp edge of the brick, this is no wonder:

Cable failure.

And while the quality of the pen was pretty good, it's magnetic attachment to the machine's body left its marks already after a short time:

Marks where the pen attaches magnetically to the case. No abuse took place here, just regular usage.

... and The Ugly,...

Coming from macOS and iOS, my eyes had been spoiled by years of using well-designed and aesthetically-pleasing apps. Apple for years published design guidelines, often followed by developers, leading to a great overall user experience (Apple however, every once in a while, decided to break with them... remember Metal applications? Nono, not talking about the graphics API here). On Windows, this looks a bit different. While surely being a matter of taste, a lot of applications unfortunately lack the level of aesthetic and usability sophistication found on macOS apps. There are simply no equivalents to the likes of OmniFocus or Fantastical, just to name two outstanding examples.

A further, and arguably more important ugliness comes more from deep within: Driver stability. While Apple certainly is in the fortunate position to have exact control over hardware and software, Windows installations need to deal with a much wider variety of hardware, and therefore driver quality. Microsoft has to some extent alleviated issues that'd lead to a bluescreen, e.g. by making it possible for Windows 10 graphics drivers to crash and restart.

I do not understand however how issues such as dead/laggy mouse after wake-from-sleep, crazy slow and unstable WiFi issues, or completely broken sleep behaviour that needs a ton of manual fixes do not only escape the quality assurance of a company like Dell, but then also take months to fix – especially as they do seem to consider the XPS to be one of their flagship products. The usage of Thunderbolt docks was also kind of frustrating, often leading to crashes and reboots.

It was also somewhat disappointing that Dell, after the same fan died again two months after the motherboard exchange, would not agree to replace the entire machine, but only offered to send the machine in for a check-up that'd take about two weeks. This was during lockdown, and I can totally understand the logistical difficulties, but would say that considering how much they charge for their support tiers, a replacement machine would have been appropriate.

Finally, Dell offered to take the entire machine back and refund me. Back to square one. I want to note here that the people in Dell's support team I dealt with were very friendly, quick, and professional – thanks for that.

... and the second attempt

In the meantime, Microsoft had updated their Surface Book lineup, now to the 3rd generation. In contrast to the XPS, the 13 inch Surface Book 3 offered a dedicated Nvidia GTX 1650 Max-Q GPU, which would be very handy for me. The display was a slight downgrade from 4k HDR to 3000x2000 and no HDR, but on 13 inch, this is more than tolerable. Unfortunately, the Surface Book 3 still does not offer Thunderbolt – Microsoft claims for security reasons – but with a more powerful dedicated GPU on board, this would be an okay tradeoff. So, off I went from the XPS to a Surface Book 3 in October 2020.

Online reviews of the Surface Book 3 have – among other things – criticised the design, which is essentially unchanged since the first generation. I would not agree with this criticism, for example the somewhat large-ish screen bezels for me are more of a feature than a bug: While the XPS had a preferred holding side when used in tablet mode, the detachable screen-tablet-thingy of the Surface Book has a bezel all around, and can therefore be used in various orientations much more comfortably, without causing spurious input. I've used this in poster presentations, e.g. for showing videos, and was very satisfied.

In contrast to the docking station experience with the XPS, using the Surface Book with Microsoft's proprietary Surface Dock is a breezy. I have so far only seen one crash on detach/reattach, which was probably my fault due to having a Zoom conference running while switching the screen, and detaching/reattaching the dock. Compared to a lot of the Thunderbolt docks on the market, the Surface Dock has a quite long (~80cm) and flexible cable, so I can comfortably use the Surface Book in tablet mode, with external screen and keyboard attached to the dock, and write on it additionally. The dock connector is also magnetic (as is the power cord) and works similar to the older MagSafe connector Apple has ditched on the MacBooks in favor of USB-C. All in all very, very nice.

With the drivers coming directly from Microsoft and having probably had a chance to mature over three generations, the stability experience is much better than with the XPS. WiFi works without issues in AX mode, getting close-to-gigabit transfer speeds, and bluescreens are only very rarely seen. The hardware itself also feels much sturdier than what Dell had to offer.

Once bitten, twice shy about fan issues, I was worried that the fan of the tablet portion was broken after about two months of use. I then learned, Microsoft doesn't put fans in the tablet portion of the Surface Book since the second generation. Well played, Microsoft, well played.