Thanks a lot!
MacOS is very good, no real complaints.
On Windows, the lack of packages and automatic updates running as an extra app for everything is absurd at this point. (Yes, winget is getting there and can be usable if you know about it and your apps support it) Each device driver thinks it's a marketing opportunity for the producer with yet another tray bar entry. Start search sucks every time (I'm told it's fixed in win11). WSL2 exists, but it's just a vm with nice tooling. Constant marketing spam that comes back after you disable it in a product you paid for. Failing updates.
Edit: Also, both have a layer below which debugging is extremely hard. Why did something fail? Haha, good luck, we'll just log "Operation: failed", hope you like dtrace and digging into the kernel to solve it.
So, I'm not recommending either. Macos is less bad due to posix-ish environment. Happy Linux user.
I highly recommend macOS with vmware fusion to run/integrate windows and linux VMs.
Mac is too apple lockeddown, strict and opinionated on trivial things, Linux is fragile and messy, windows is somehow over and under-engineered at the same time with legacy crap holding it back.
They all suck and rock depending on perspective so use them all on the same device (macbooks are solid), alternating between them to take advantage of their nice features and avoid the bad stuff.
I had never managed to get a nix laptop install to work nicely, including ma ny attempts with Solaris for example. That's what I get out of the box with macOS, and with decent nix tools support. Plus Homebrew is good!
W10 is the best Windows environment that I have used, and the Linux subsystem works reasonably well for me. But is is SLOW*. I think that there's something like a 2x CPU tax to run Windows in practice, and I've definitely repeatably measured consistent performance penalties for Windows over other OSes on the same hardware for my clients in the past.
I do pay a hefty premium for macOS, but it generally just does work more reliably and faster and more smoothly than Windows, for me, so I pay it willingly.
macOS is the way to go if you want to get shit done, native linux env, smooth OS, fast file system
battery life and perf/watt is unmatched
the fact that microsoft had to ship a whole VM speaks volume about what you need nowadays to function: a proper linux env
about WSL: it's awfully slow
> Out of 130 tests in total, Windows 11 WSL2 Ubuntu 20.04 LTS managed to run at 94% the speed of bare metal Ubuntu 20.04 LTS on the same system.
from Phoronix https://www.phoronix.com/review/windows11-wsl2-good/5
TL;DR is buy an M1/M2 Mac if you want to buy a laptop. I like both setups, but only because I’m done jumping through most of the wsl hoops.
If you go with windows, be sure to use Windows Terminal as all other terminals I’ve used (haven’t tried hyper) suffer performance-wise with wsl.
The biggest issue with wsl is easily the memory usage. No one seems to talk about this part of wsl, but if you use vscode, you’ll quickly fill up 16gb of ram while also doing things like running discord/slack + a dozen chrome tabs. I’ve since transitioned to (neo)vim and the experience is much better RAM-wise. Bare minimum for any windows computer running wsl is 32gb imo, especially if you’re using any amount of docker like that other comment mentioned. I ended up having to write a cronjob to manually clean up terminated containers still hogging memory periodically.
This brings me to another downside of wsl: just by having wsl on, it will take about 2gb minimum in my experience. This is unfortunate, as the only way to run the cron server in wsl on windows startup is to have windows task manager turn it on at startup, essentially forever hogging a minimum amount of ram on your machine. I play lots of games on my windows machine and it feels very clunky to have to always open power shell and run `wsl —shutdown` before I can play games. An unfortunate tradeoff between the wsl cron server, and anything else you’d ever like to do that requires significant memory.
Personally I think any sort of Mac desktop is silly (just get a powerful m1/m2 and external display(s), although be careful of the new m2 which only supports 1 external display iirc) and after using both of these machines/dev environments extensively, I can say that if I had to do it again I’d just go with a Mac laptop. If you have the funds I strongly recommend doing the same. However, if you’d like a pc for anything windows specific (like most games), wsl is a fine choice so long as you get an appropriate amount of ram and don’t mind the extra time/energy required for debugging some wsl specific issues. Most wsl issues are one time things that don’t take too long, but it definitely takes some getting used to.
Also worth noting that something I’ve found to be annoying about wsl is that there’s so few resources online for debugging issues when compared to the mac ecosystem. Not only that, but if you change your distro from the default Ubuntu in wsl, the set of people running into similar issues will be even smaller.
To add to my ramblings, I had issues setting up an xserver for a wsl gui and eventually just gave up.
One of the new Mac’s will just work out of the box.
Hope this helps you make your decision.