Two years ago, I made the jump from macOS to Windows despite being a long-time Apple fan. I'll be honest: it wasn't an easy switch at first, but as time went by it's become clear it was the right choice.

In 2019, the state of Apple's macOS devices is a disaster. The company refreshed its MacBook Air after years of requests only to stunt its hardware worse than before, and while we're slowly seeing higher-end Pro hardware arrive—the refreshed Mac Mini is probably the most exciting development in years—the stream of hardware flaws and poorly-designed keyboards continues.

In the two years since my switch, I worked to find the absolute best laptops money could buy, trying to compare anything that might be a great MacBook alternative. You can read about my 2019 recommendations for a MacBook replacement here, but I thought it was time to revisit Windows 10 and the state of things two years in—and whether I plan on sticking around.

What's new with Windows 10?

While Windows might appear less refined than macOS to some, I've been really impressed after switching by how rapidly Microsoft is releasing major updates for the platform and the refinement the company has been adding almost constantly—the OS sorely need it, but the company is shipping quickly.

The list of major changes to Windows in just two years, for free, is impressive:

  • The continued rollout of the beautiful 'Fluent' design system across the platform (albeit slowly)
  • A new system-wide 'light' theme for the first time
  • A seamlessly synchronized cloud clipboard, between mobile and desktop
  • Deep mobile integration with Android via 'Your Phone' to instantly grab images and reply to SMS
  • OS-wide dark mode, including Windows Explorer, and beyond
  • Snip and sketch tools that natively enable quick screenshots + annotation with digital ink (Windows Key + S)
  • Synchronized timeline between computers and phones for seamless handoff + historic tasks
  • Picture-in-picture across the OS for browsers
  • Native Yubikey support at the OS-level, integrated with web browsers like Chrome
  • A native emoji keyboard, with Kaomoji and other symbols, available in any text field
  • Massive improvements to WSL/Bash on Windows that have transformed it into a first-class Unix alternative

This is just the big stuff, with much more being tweaked and improved on what feels like a daily basis. Even the next Windows 10 update, due in May, ships with great stuff:

The good

1) Bash on Windows is maturing quickly

I'm still really satisfied with the WSL/Bash setup, which has really come into its own. Lots of people assume it's not able to function as a true, full Linux pipeline–and it’s reached the point where it's fully capable for most web-development workflows.

A few examples of this: when I first jumped into WSL, a bit of tinkering was required to make it work perfectly. A few tools might be a bit broken, or unsupported, such as things like Grunt's watchers.

In last year's "Creator's Update" most of these issues were addressed—but I don't think it was promoted well enough. Now you've got full file watcher support, native symlinking, the ability to use Vagrant via Bash, support for opening Bash files in Windows applications directly, and much, much more.

One of the most powerful shifts has been that WSL environments are now fully disposable, and can even live alongside multiple Linux distributions, all living together in a happy family. Broke your bash setup? Just duplicate it, then spin up a fresh copy to mess around with, rather than needing to blow away your whole machine.

The new, but rarely talked about WSL executable makes switching between them feel like genuine magic, and being able to make them portable between machines by exporting them is fantastic. Containers really change the way I think about my bash setup and offer a ton of potential in the future for hot-swappable coding setups when needed.

I've now reached the point where my entire, native PHP workflow works perfectly between WSL and native Windows apps, including debugging my code with Xdebug, breakpointing through, and spinning up Vagrant.

What's really surprised me is the community's embrace of WSL and how quickly they've come to start supporting tooling on Windows via that channel. Projects like Vessel, which spins up an instant Laravel environment with Docker, now support WSL specifically, along with many other tools I use on a daily basis, and it's a great sign that the community cares as well.

WSL is genuinely exciting, and continues to be a reason to jump across, if you're a developer. Along with new ideas like the Chocolatey package manager to replace Brew and projects like Boxcutter to automate setting up your environment, it's a great time to jump in.

P.S—There's also a terminal emulator that finally gives Bash on Windows justice: Fluent Terminal.

2) Touchscreens or bust

Now that all of my devices have a touchscreen, I find the lack of one on a MacBook just perplexing—and I keep touching other people's screens out of instinct.

Say what you will about touch on laptops, but it's so much more natural than using a mouse a lot of the time, and it makes for a great experience when you're just on the couch, pawing through Netflix.

3) 'Hello' authentication is awesome

I love Windows Hello—Microsoft's home-baked version of Face ID—on my Surface Book 2 so much that it's annoying when a device doesn't have it.

I went out and picked up the Logitech Brio to add it to my desktop, because it felt silly typing in my password so much—and 1Password support sealed the deal for me. Lots of laptops are now shipping with it as standard, and I hope that continues as it just makes the experience a little bit more seamless.

4) Windows Updates aren't slow anymore

One of the most persistent memes around Windows computers harks all the way back to Windows XP: updates are infuriatingly slow and seem like they're always happening when you don't want them to.

I'm happy to say that Microsoft has made updating less painful on Windows 10, changing the update process to actually apply the changes in the background and minimize the amount of time a machine is 'offline' during reboots. Most updates notify me that they're done and need a restart, which is no longer a 'update' restart but just a normal-speed reboot to switch over the last few files.

No more waiting around for "just a few more minutes" hour... while the machine updates.

6) You don't have to give up your keyboard layout

Most of my day is spent writing posts like this one—but one of the most infuriating things you'll notice immediately on Windows is how poorly optimized the keyboard layout is: getting an em dash is near impossible, unless you like ALT-codes.

I struggled with this for a while until I stumbled across the 'typography layout' for Windows—a third-party keyboard layout that essentially delivers the Mac character set on Windows, making my life a whole lot easier.

7) Great hardware choices

One of the best things about switching has just been the sheer options when it comes to hardware. While the MacBook continues to receive bumps to the same, broken keyboard design year after year, Windows hardware keeps getting better.

There's a bunch of new hardware out there like Surface Laptop 2, Huawei's next-generation MateBook, Lenovo's X1 Carbon and more that feels genuinely original and high-quality.

Looking into 2019, I'm excited that the Surface Book 3 might arrive, and about newer technology like this gorgeous OLED-equipped HP laptop.

8) Zero-thought app updates

A big shift in the last twelve months has been the appearance of popular, traditional apps in the Windows Store.

Everything from Slack to Discord, Flux and Spotify now lives there, which has a fantastic side effect: seamless updates without ever thinking about it. As Microsoft hones in further on Progressive Web Apps as a platform, this will likely become the norm, but it's great to have the apps I interact with on a daily basis showing up there.

All that seems to be suspiciously absent is Visual Studio Code, which is odd, given Microsoft actually owns that project.

The bad

1) The app story remains problematic

One of the biggest hesitations of most people to switch is that they use a fancy macOS-only mail app they can't live without. While that may be true, I've come to find that I now use many more native, first-party apps that simply didn't exist on macOS in the first place.

Netflix on the plane without a separate iPad just for that? Yup, you can even sync stuff offline. There's native official apps for Messenger, Instagram, Telegram, Hulu, Plex and so on, which is surprising, given that they don't have macOS counterparts at all.

There still remains a dearth of inspiring apps like you might see on the other side, but it's been years since something genuinely new arrived on macOS as well. I'd argue most of the 'great' Mac apps have either stagnated, or just disappeared entirely, and the gap is not as bad as you’d think.

What does feel like a missed opportunity is Microsoft pulling some of the flagship iPad-first apps onto Windows. Apps like Procreate are sorely needed to provide a compelling sell for the stylus, and I’m sad that they don’t seem to be actively targeting those popular apps.

I'm hopeful that designers and developers looking for something new and jumping to Windows will encourage better, beautiful, weird ideas again, and there are promising signs. Unigram, for example, is an exponentially better Telegram client than the official one, and demonstrates it's possible to build something great.

2) WSL performance is... unpredictable

Bash on Windows is generally great, but a performance issue emerged at some point that causes slowdowns on common tasks like npm install or large commits. It’s related to Windows Defender, which churns through files being added or installed, causing disk performance degradation.

This has been a known issue for months, with hundreds of developers chiming in about the issue... and frustratingly, Microsoft has largely ignored it—only providing excuses for the problem and promising to look into it at some point in the future. For a flagship developer feature, it’s a disappointing problem that persists even in the next major Windows update, 19H1.

Luckily there are a bunch of workarounds, and you shouldn’t worry too much about it, but I’d like to see better engagement with the community over these types of problems.

The ugly

1) Microsoft's design language is a mess

The Fluent design language—which was touted as far back as two years ago—is a fantastic new direction for Windows. Unfortunately, it remains largely an idea more than a reality and Microsoft doesn’t seem to have the guts to implement it across the board properly.

Fluent appears in lots of places, but it’s still inexplicably inconsistent and messy almost all the time—and you have no sort of easy way to understand where it'll be implemented.

Microsoft's "modern" design language against it's older one
Acrylic-enabled apps (pictured left) look nicer than older ones (pictured right)

The new ‘acrylic’ title bars, for example, only work in a specific subset of apps (I’ve only ever actually seen it on Edge), making them remarkably inconsistent. You’ll see the fluent controls in some parts of the OS, then the old Win32 nonsense in others, almost next to each other–don’t even ask me what happens when fluent gets thrown in at the last minute.

Microsoft’s focus on iterating on fluent so slowly means that it’s chosen the safer path, but it means we’re never going to see it actually fulfill its true destiny, instead relegating it to only the places the design team seems to have weight over.

Here's a great example: depending on the app or place you right click in Windows, you'll get a "new" style context menu (pictured left) or you'll get the insane mess of old-school compatibility (pictured right). I know why this is—technical compatibility—but it doesn't seem like it couldn't be worked around.

The new version of the right-click menu in Windows compared to the old version

Design needs to be higher up the chain at Microsoft, clearly, but it seems like there’s just no mandate to implement this properly, and it’s disappointing. Even simple things like rules around what icons apps can use when appearing in the taskbar, to try and align the ecosystem and make it more consistent feeling, would be a good start.

Microsoft needs to lead, not just play it safe.

2) The taskbar is weirdly broken... still

One area that seems to be ignored entirely is the taskbar. I don't know if it's because Microsoft is scared to piss users off again after the debacle that was Windows 8, or if it just doesn't realize how messy it is—but it's in desperate need of new thinking.

The tray is a mess

A great example of this can be found in the bottom right corner of the desktop, which I like to think of as the 'background dumping ground' where running tasks are relegated to a drawer that has no rules, consistency, or visual hierarchy.

For search in the forthcoming 19H1 update, the same could be said. Microsoft separated it from the Cortana assistant functionality—a wise move—but left it orphaned, floating, and just weird in general. Why can't this search bar be thought of in an entirely new way?

I'd just love to see a fresh approach here: what does the task bar, or the dock, of the future look like? Can't we come up with something other than this space-hugging array of icons and distractions? Or... at least make it feel consistent?

A good time to jump in

Like all things in technology, there's good and bad to your choices of software. What's great about the Microsoft of today is it's listening as well as iterating really quickly, adding useful features for both the consumer and developer—for free.

Windows has come a long way since I started using it again full-time, and I admire that Microsoft seems to be slowly, but surely, adding the kinds of features that actually matter to the platform.

What's just missing is a little more boldness—it's time to cut the dead-weight, and break away from some of these old, tired UI conventions, even if it means compatibility pain in the short term. Windows is clearly turning into something great—while the hardware is consistently improving faster than the competition—and it's never been easier to switch.

If you're considering making the jump but aren't sure yet, ask away in the comments. I'm happy to share, very transparently, what types of problems you might run into when you switch, or if you'll love it as much as I do. To see what hardware is worth buying, check out my 2019 laptop guide here.