Until about a year ago I had been a full time Mac user of about fifteen years. I loved macOS (or OSX as it was known then) from the first time I encountered it, and I'd never looked back. I wouldn't describe myself as an "Apple fanboy" however - I've never owned an iPhone, iPad or even an iPod. My love for Macintoshes has dwindled over the years too (the aesthetics and build quality are no longer exceptional in my opinion). For better or worse, it is the macOS operating system that I buy Apple hardware for.
As events of 2020 transpired, I was left without a functioning Mac (one of the more minor inconveniences of that year). Macs being what they are, I needed an Apple Store to take a look at the iMac that had just died, but of course we were in lockdown, and there were no Apple Stores. It would have been premature to buy a new computer; I was short on options. My eyes turned to the gaming PC in the corner.
I started weighing up the options I had. Install Linux on it maybe.. no It'd be too limited in terms of design software. Hackintosh? Probably asking for trouble. I could try working on Windows I guess..
And so it began, my time working on Windows. I decided to take this opportunity to give Windows 10 a proper go, and not run back to macOS as soon as possible. Over a year later I am typing this on that Windows machine, in an application called Typora - one of the many discoveries I've had to make in that time.
What follows are some general negatives and positives about using Windows, followed by my experiences while doing design and development tasks in particular. This will mostly be a comparison of the operating systems, but will touch upon hardware. It's worth saying at this point that the killer "feature" of macOS for me is essentially that it, and everything that runs on it just works™. This is facilitated of course by the limitation on hardware it will run on. To the credit of Windows, it attempts to run on any combination of hardware, including whatever you cobble together yourself. It is partly for this reason that I had a functioning PC that I could repurpose, and ultimately get stuff done on.
General annoyances #
In the grand scheme of things, the two operating systems are pretty similar. They certainly have more in common than they have differences, and seem to be converging all the time. While you probably will have some "I can't believe this is so broken" Windows moments, a lot of what separates the two are small user experience details. But evidenced by the eternal PC vs Mac debate, these are details that people care about. Perhaps unsurprisingly the differences I noticed first were those that felt immediately unsatisfactory.
The business model #
This may sound like a strange way to start a list of user experience problems, but when you switch to Windows this becomes very apparent. Windows is full of ads, and prompts to get you to use Microsoft services. A lot of the ads and data collection stuff can be turned off with a bit of work. It seems you can never escape the prompts to sign into every Microsoft service you'll never want to use though. In the paradigm we find ourselves, you might be used to this and it might not bother you. I can't help but find it a bit obnoxious personally.
Interface clarity #
I need to preface this by saying that I was not comparing like-for-like here. I wasn't just swapping operating systems, but also displays. My Mac had an integrated 27" 5K display. I replaced this with a 27" 4K display (Benq PD2720U). While the drop from 5K to 4K might sound relatively trivial, it actually makes a huge difference. Because of the interface scaling you're going to require, the maths just works better for 5K at 27". You can use 200% scaling rather than 150%, avoiding sub-pixel blurriness. It's no accident that Apple opted for 5K in their iMacs. This is one of the legitimate occasions where Apple hardware is better value for money. When I bought my iMac at least, it cost about the same as a 5K display would have cost on its own. So operating system aside, some disappointment was inevitable here. That said, I felt Windows was doing a worse job of scaling, and brought with it various jaggedness and blurriness issues. The severity of these issues varies; in the worst cases some applications simply don't appear to have been updated since we started using higher pixel densities. These interfaces will look straight up blurry to the point of being virtually unusable. Other problems are probably more subjective, and tend to differ from application to application. For example I found the Figma native app to be blurry, but when running Figma in Firefox it looked a little better. Generally I found everything, but most noticeably text, looked either too jagged or too blurry in most cases. This was all very distracting for a while, especially during design work, but the good news is that I got used to it eventually and could start to see past the imperfections.
Other issues of clarity were less ambiguous. The Windows interfaces feel like they are lacking attention to detail. Things like dark text on dark backgrounds are pretty typical of the experience you can expect from the core Windows interface. There's a lack of consistency too, you can clearly see Windows 10 visual language alongside bits of Windows 8, 7, Vista, and probably earlier. Windows feels unfinished.
Native applications #
I found I as left wanting a little when it came to Windows applications. A lot of the applications we use are either Web based or available cross platform of course, but when that's not the case chances are what you want either doesn't exist or looks like it hasn't been updated since 2006. For example I wanted a calendar app that can sync via CalDAV. Apparently that's not a thing on Windows.
Customer support #
As far as I can tell there is no customer support for Windows. To be fair, I'm not sure how it would work. Is it realistic to offer support for all the variables that constitute a Windows computer? When you run into a problem, which you probably will, you're on your own. In contrast Apple's support in my experience is pretty good. You can speak to a knowledgeable and helpful human almost immediately.
The good stuff #
If you can get beyond these sorts of annoyances, there will hopefully be some pleasant surprises too. For me there were a few day-to-day aspects of Windows that felt like an upgrade.
Touch screen support #
I didn't have a burning desire for this, and it will be more valuable to some than others, but this is a really nice option to have at your disposal.
File Explorer #
This could be easily overlooked but File Explorer (Finder in Mac parlance) is possibly the part of the operating system you are going to interact with most. File Explorer is a bit of a mess from a design point of view, but simply for the fact that you can easily copy and paste the path to the folder you're in means it is better than Finder in my opinion.
Audio configuration #
Listening to music is something I often do while working, and I want to control that music from my desk but have it play through my hi-fi. For me this means having an audio device which some applications (a music player and a browser) output to. On Mac I had to use a third party application to achieve this, which I would need to start whenever I wanted to listen to music. On Windows this feature is built in, and you can set it once and forget about it.
Specific tasks #
Most of my time spent at a computer is spent doing either Web design or front-end development work. So how did that go?
Design #
If you can get past the clarity issues discussed above (which I did, eventually) the story is pretty good here. Windows is well supported by design applications these days, I didn't find myself missing anything. If you are a Sketch user you will need to find a replacement but you do at least have some options in the screen design space. Anecdotally I feel like a bit of a second class citizen as a designer on Windows. When there are bugs not getting fixed for a long time, you can't help but wonder if them being Windows specific almost makes them an edge case.
Not purely a design task, but one that I associate with design files is backing up. Design files are the thing that I care about being backed up and don't have a natural home in Git (as any code I write does). I relied on Time Machine for this in macOS, which I found reliable, and something I never had to think / worry about. Windows comes with no such backup tool, so unless you're already using a cross platform backup system you're going to need to shop around for something new. I tried quite a few backup applications, both free and paid for. I struggled to find something that worked for me in a comparable way to Time Machine. I came close, Acronis True Image was pretty solid, but when I did hit an issue, I found the customer support to be less than helpful. I had another nagging doubt about Acronis while I was using it, that being that it backs up your files in a proprietary format. This means that you are essentially locked into paying for a subscription to this product for as long as you want access to your backups. I eventually decided that this wasn't for me and cancelled my subscription. I had to broaden the scope of my search at this point. One option I explored was syncing my files to a "cloud", figuring that the files existing in two places was all the precaution I really needed. I used Adobe Cloud for this (as I was already paying for it), and in short I can't recommend it. Adobe some how deleted all my design files, those deletions were synced to my machine, and the files were lost. Adobe were unable or unwilling to explain how this happened or to recover the lost files. They seemed content to direct me to their terms of service which state they are not liable for lost data. Don't rely on Adobe for backups.. or anything if you can avoid it. The solution I settled on was a program called Restic. Restic is a backup solution, but different to what I was originally looking for in two key ways. Firstly it has no GUI - it's command line only, and secondly automated / scheduled backups are not part of what the application offers. Having lived with it for a while, I can say that running from the command line is not an issue - performing backups is really easy (admittedly that's coming from someone who uses command line interfaces regularly). The automation side of things might be more of an issue for you. There are two options here; use third party tools to schedule Restic backups, or do your backups manually. I haven't spent much time looking into the first option, but opted to switch my mindset to backups being a manual thing. In a funny way I think it being a command line tool helped with this. I now think of backing up design files in a similar way as I do about committing code to version control.
Development #
If I had come to this cross roads just a couple of years earlier, I don't think I would have entertained the idea of doing front-end development on Windows. Windows Subsystem for Linux (WSL) has changed this story dramatically, and means that when you're developing on Windows, you're actually developing on Linux. I like this idea a lot in theory. In practice it's pretty good, but not without its issues.
Working with WSL means working in Bash, which means your day-to-day tasks will be a lot like working in Terminal on a Mac. The significant difference will be speed. WSL does add a noticeable delay to any task you are running. Not huge, but noticeable. At this point we need to talk about WSL 1 vs WSL 2. If getting started with WSL now you might assume WSL 2 is the way to go. It's faster and brings with it some additional features. There is a big caveat though, WSL 2 essentially doesn't work with files on your Windows file system (it's prohibitively slow). If you're happy having all your files live in Linux then WSL 2 is probably the way to go. Personally I like using a Git GUI and the story there is a bit unclear for WSL 2 at the moment. With WSL 1 on the other hand, you can store your project files in Windows, run Git on Windows, and use any Git GUI that runs on Windows. For this reason I've stuck with WSL 1 for now and live with the performance hit, which is manageable.
Again I sometimes feel like a bit of an edge case when something isn't working with WSL. I'm not sure it's true to say that most front-end developers use a Mac; I've seen stats in the past that seem to suggest the split is around 50/50 with Windows. I do wonder though if this is the case in some circles, and perhaps those circles are important to you. Consider this, when was the last time you saw a demo of a new tool / library / framework not be demoed on a Mac?
One last consideration here is browser testing. In Windows there's no Safari. You also lose the iOS emulator that macOS has. This means more time in some sort of virtualisation software, which isn't always the best developer experience.
Conclusion #
That felt like long-winded way of saying working in Windows is mostly fine, so for those who have skipped down to here I'll try to sum up with a couple of pertinent questions.
Has Windows won me over? #
In short, no. All being equal, if I could freely choose what OS I run I would choose macOS.
If I was in the market for a new computer, what would I buy? #
This is a much harder question to answer, and I'm not sure the answer would be a Mac. I have for a long time been concerned about the decreasing ability to repair and upgrade Macs. Not only does this leave you in the lurch during a pandemic, it's wasteful. The only Mac from the current range that really appeals to me is the Mac Pro, but that's way over powered and over priced for my needs. I think probably right now I'd go for a used Mac Pro 5,1, but would still be a little concerned about the longevity. All of this highlights the compromises we make in Apple hardware in order to avoid compromises in the software. With those compromises in Windows feeling more or less manageable, Windows is a tempting option. With Windows 11 on the horizon maybe this becomes more compelling in the near future.