Windows 11 – A Dev’s Perspective

Nov 17, 2021 | Microsoft, Programming, Python, Windows

I have gone far abroad to a land where the developers turn it up to 11. I of course mean that I have been running Windows 11 as my primary dev machine. I cam to this quest skeptical, but after my experience with the OS, I am finding myself in an odd position. Read on and if you’re a *nix user like me, try to have something of an open mind.

Let’s get the obvious stuff out of the way. I am running a fairly high-end config for this. It’s a Lenovo Legion gaming laptop with specs as follows:

That’s probably more than anyone really needs to do but hey it was on sale on Amazon, so I took the shot. I should also mention that this machine came with Windows 10 but I upgraded it to Windows 11 for the purposes of this review and keep in mind, I am not looking to review the hardware itself; my goal is to take a look at Windows 11 from a developer who works on macOS / Linux’s perspective. With all of that said, I’ve found the Legion a more than adequate gaming machine for the price and if that’s your thing, check it out. The other obvious point to get out of the way is that I primarily code in Python these days in Visual Studio Code, a development language and platform that works on all three major operating systems just fine.

First Impressions: Upgrading to Windows 11 was surprisingly painless and there were no configuration issues after the upgrade completed, though I did have to do a bunch of Windows updates after the actual OS upgrade. With that said, getting hammered by OEM and anti-virus (for lack of a better term) spam upon each reboot is obnoxious. I know margins are thing and OEM’s are doing what they have to in order to make a buck, but coming from macOS this feels gross and is frankly annoying. Microsoft used to have a Windows Signature Program, a set of terms that forbade this type of scummy behavior from OEMs if you bought your PC at the now defunct Microsoft stores. That’s a program that I think needs to become the default Windows license. The constant Boardwalk pitch-manning of anti-virus and various after-market OEM services makes Windows feel cheap. The irony is that I found Windows 11 to be aesthetically pleasing and a good improvement on 10 overall.

Dev Tools Setup: This might be surprising to exactly zero people but installing Visual Studio Code on Windows is painless. Since the last time I’d done a clean install of VSCode, they’ve added some getting started tools that make setting up your toolchain of choice relatively straightforward; I was up and running with Python / FastAPI in less than a half hour. Postgresql, my database of choice, works just fine on Windows. Coder Radio listeners will know that I have been a fan of WSL for some time, however, for this challenge, I stuck with native Windows tooling. That’s right PowerShell! Upon install and launching the now built-in Windows Terminal, I was prompted to update PowerShell to PowerShell 7 and it’s great. If you only use BASH for basic terminal functionality or git from the CLI, you’ll be just fine on PowerShell. Also, Windows Terminal is the best terminal itself. It’s customizable and gorgeous:Shamelessly on brand

You’ll note my shameless https://tmb.inc branding for my terminal background and that’s all by default accessible via an easy to edit JSON file, but if you go to the Windows Store and download the free preview edition of terminal it has a helpful GUI.

Again, setting up my CLI was easy. For fellow Python developers you don’t source venv/bin/activate but rather just in PowerShell venv/Scripts/Activate.ps1. It’s a different command but has the same outcome and works perfectly; I’ll note that working in Ruby on Windows while possible was so annoying that I still recommend using WSL for it. So at this point my primary toolchain was fully installed. I took the time to install Visual Studio proper, because I am trying out MAUI for a future post and show content, but as far as my day to day work, I was done. I was happily coding!

Annoyances: By far the biggest issue I encountered was Windows not understanding that I have two Microsoft accounts that I want used in different contexts. For instance, in Visual Studio, I want my The Mad Botter account but for Xbox it’s all about my personal. Sadly, this just doesn’t work and I found myself caving and simply picking one account to use. While I understand the business reasons that make the account-based system attractive for Microsoft, I think it’s more of a hassle than a benefit. The other issue as I mentioned before was the incessant nagging of Lenovo’s Lenovo Vantage software that is just desperate to get my to register the device or buy a service agreement but worse than that was McAfee. Anti-Virus makes sense in a lot of cases for a lot of people, but there’s no excuse for OS level spamming.

Bottom Line: The hardest part about writing this was how surprised I was with how much I liked Windows 11. It’s great! WSL is an awesome solution for dealing with the gaps that still exist and Windows Terminal is by far the best terminal emulator that I’ve ever used. Do you recommend you switch from your OS of choice to Windows? No of course not. Am I likely to stick with it as a daily driver? Probably not right now, no but that’s more to do with my being used to *nix environments more than anything else. I should also note that Python is one of the most supported open-source programming languages on Windows, others (ahem Ruby) would likely have forced the WSL conversation and while WSL is great, it’s not exactly running native Windows is it? Is it….

Let me know what you think on Twitter and please checkout Alice!

More from Mike:

About Me

Hi! I’m Mike! I’m a software engineer who codes at The Mad Botter INC. You might know me from Coder Radio or The Mike Dominick Show.  Drop me a line if you’re interested in having some custom mobile or web development done.

Follow Me

© 2024 Copyright Michael Dominick | All rights reserved