A long-time Linux user's thoughts about Windows after using it for a week

— 7 min read

The last time I used Windows at all was right after the initial release of Windows 10 in July 2015. At that point, I had already been using Linux for a while on a separate computer (to avoid dual-boot issues). As I got more and more comfortable with Linux, I found myself using Windows very little. Not long after upgrading to Windows 10 on the Windows machine, I decided that I would start using Linux exclusively. Just recently, I spent a week trying out Windows again to see if it had actually gotten any better.

Ok, but why?🔗

I usually just run Windows in a virt-manager or GNOME Boxes VM whenever I need to, but I had to run the full Windows version of Visual Studio and the VM performance wasn't cutting it. Also, I've been seeing a lot of people I respect (mostly Linux users) seriously trying out Windows 10 as a development environment. Given that I both needed to use Windows now and I wanted to give it a try, I figured that I might as well install it on my second internal SSD.

The good🔗

It's not as slow as I remembered🔗

The last time I used Windows, it was on a spinning-rust hard drive. With an SSD, Windows is on par with Linux with a heavyweight desktop environment. In fact, GNOME feels slower than Windows. I've heard that Windows gets slower as you use it, so this might change as I install more stuff.

WSL is very usable🔗

For a lot of my work, I still want a Linux environment. Windows Subsystem for Linux works surprisingly well. Even though NTFS is slow, most operations are not too much slower than the equivalents on Linux. I haven't been using Linux graphical apps, so I haven't tried X forwarding or anything like that. WSL2 should make everything better.

Scoop has the packages I need🔗

To write this post, I'm using Zola, which is conveniently in the default Scoop repositories. Installing Scoop in PowerShell is very easy. For most everything else, I'm using WSL.

Intel integrated GPU performance is better🔗

I'm finding that a variety of different applications have better video performance on Windows. Sandspiel and Minecraft: Java Edition are both pinned at 60 FPS on Windows and are a little less framerate-stable on Linux.

SSH is built in🔗

Unexpectedly for me (given that I haven't been following Windows development), an SSH client now comes out of the box.

Scrolling seems more fluid🔗

Even with a compositor or in Wayland, there always seemed to be a little tiny bit of tearing in most applications. Windows looks a hair smoother.

Accelerated web video playback works out of the box🔗

If you want to exercise your computer, try playing a video on YouTube at 4K60---it will probably use software rendering on Linux. Chrome (and Firefox) on Windows uses proper accelerated video decoding.

The Xbox Game Bar makes screencasts easy🔗

Hitting Win+G opens a control that lets you make screen recordings. If you're using an application that it deems to be a game (in my experience, anything with VSync on will trigger it), the Game Bar will constantly record the last 30 seconds on your screen so that you don't have to remember to start a screen recording.

Due in part to a combination of the game-cracking scene and malware reverse-engineering people using Windows, it's the OS to use if you want the best graphical debuggers and reverse engineering tools.

The different🔗

ClearType (especially with Chrome) is weird🔗

I've gotten used to the way that Linux systems render fonts, so both macOS and Windows look strange to me. On Windows, everything is aligned to the pixel grid, making TrueType and OpenType fonts look like bitmap fonts at small sizes. macOS, on the other hand, makes its font rendering look more accurate at the expense of clarity. On Retina displays, they all look similar, but my display is a standard-DPI 24-inch 1920x1200 monitor.

I like the way that Linux makes fonts look accurate without being blurry, but I'm sure that I could get used to ClearType as well. It became comfortable after about three days.

Double-clicking a word also selects the following space🔗

I'm used to double-clicking a word in an editing field to select it. Unlike on Linux, doing that on Windows also selects the space after the word.

The bad🔗

The installer and updater still overwrite boot partitions🔗

This is the most serious issue I have with Windows. Even though I installed Linux on a completely separate SSD, the Windows installer decided to mess with the EFI partition on both disks. This behavior is annoying and potentially destructive. Luckily I have a backup of /boot on my primary partition; if I didn't I would have to redo my systemd-boot configuration. When I wanted to reboot into Linux, I had to delete an NVRAM entry because my motherboard would always choose the "Windows Boot Manager" option, regardless of whether there was an actual EFI executable there.

Tools like VS Code default to CRLF🔗

The fact that the Windows line endings are typewriter-compatible is useless given that nearly every other operating system just uses LF. You have to remember to switch to Unix line endings. Luckily, Git can be configured to make sure that only LF is ever committed to the repository.

It comes with lots of crapware🔗

Unless you enjoy playing Candy Crush on your desktop PC, all of the UWP games that come preinstalled and pinned to the Start Menu are pretty useless.

Advertisements have to be manually disabled🔗

There's little ads in various places (lock screen, sometimes start screen) that can be disabled, but the toggles are relatively hidden. None of the ads so far have been too horribly egregious; it never tried to stop me from changing my default web browser or anything like that.

The search bar and start menu only search with Bing via Edge🔗

While this is annoying, you can hide the big Cortana button and search bar. If you install the Chromium-based Edge, it will default to using that for searches instead.

There's no easy way to remap the caps lock key🔗

macOS has had this option for years, despite being "easy-to-use", so there's no reason that Windows shouldn't have an option to remap Caps Lock to either Control or Escape. You can edit the registry or install a third-party package, but you shouldn't need to.

The error messages are almost universally terrible🔗

On Linux, if something doesn't work perfectly, you'll usually get an error message with enough specificity to solve the problem. With Windows, on the other hand, most error messages just say "That didn't work. Please try again later." and leave it at that.

Throughout the UWP Settings app and even in traditional Win32 programs like explorer.exe, any help icon or link searches Bing for some vaguely-related phrase. GNOME and macOS do a far better job of including a traditional help system.

Installing without a Microsoft account requires bypassing a tricky dark pattern🔗

If your computer is connected to the Internet during the setup process, there won't be an option to set up with a local account unless you type a fake phone number about three times into the Microsoft account login screen. Even after doing that, it tries to get you to add your account in any way possible---activating Office will set up a Microsoft account and there's a message about various Microsoft-account-only features in Task View.

Takeaways🔗

The biggest difference between my earlier Windows usage and this attempt is that I can actually get my work done now. That's a pretty big statement given that I'm a heavy Linux user and I have been for a long time. It's not 100% enjoyable; it definitely feels like I'm less in control. I'll probably stop recommending Ubuntu or Linux Mint to brand-new programmers given that Windows is usable enough.