Thanks a lot!
Because many people want to get their work done, instead of playing around with the desktop environment, dotfiles, package managers or diagnosing / googling why their distro upgrade failed or why an app isn't working with Wayland, inconsistent global keyboard shortcuts and trackpad issues on laptops or whatever.
It's trillions of hoops for Desktop Linux to get to the consistency and equivalent working state of macOS just to get work done and many users view Linux Desktop as a piece of work in itself to get to the equivalent full supported state of Windows, hence why they emulate a Linux Desktop instead with WSL, rather than migrating files, clean installing, downloading poor app replacements and dual booting a Linux desktop.
Little to no-one has the time to try out the tons of distros or even migrate all their files and clean install for something that works less than macOS, or Windows.
Of course it is, nobody should be making MacOS with free software. To get to the equivalent working state of MacOS, we'd have to remove the package manager, add a first-party app store, add in OSCP surveillance/telemetry, remove OpenGL/Vulkan support, remove 32-bit libraries, axe the Nvidia drivers and close all contributions to the kernel. That will always be impossible, it's by design.
And Optimus seems to be bothersome with requiring constant restarts and hassle.
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
What did you mean by this?
> about WSL: it's awfully slow
Uh... it's equally as fast as emulating a Linux kernel on MacOS. MacOS does not support Linux programs natively (or Linux-based Docker containers). It's kernel is not Linux-based, it's commands are not Linux-equivalent. Only BSD-based software has a native compatibility layer, and even that is notoriously hit-or-miss.
But as far as I remember, something like WSL isn't even possible on a Macbook, right?
Can you elaborate on what makes Windows a dumpster fire? Windows 11 looks promising
MacOS is very good, no real complaints.
When there are issues, at least you can search and resolve them.
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.
Not sure about the deal here though, I have a really high-grade Macbook Pro at work and it is always, always constantly noisy and heating up with something as simple as compiling a medium-sized Java project.
I also put a fair amount of time into tuning my build systems to be efficient, which can help with the kind of (very real) problem you mention.
An unexpectedly nice feature of my MBA M1 is no fan noise at any time. I long ago switched all my other machines to fanless, eg so that they could run overnight quietly, but my laptop never making fan noises is good!
Windows and macOS have full integration, high consistency and developers support one type of OS for their apps to test and that is it. Now with WSL2, there is no need to dual boot or format, re-install a Linux Desktop after a failed distro upgrade / conflict and this fully works inside of Windows.
Also, 1 anecdote from 1 user isn't remotely sufficient evidence.
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.
Since the arm CPU is still new to a lot of apps/tooling, people are not left with much, other than some workarounds and hacks that will serve as a stop-gap solution for a lot of things.
I'm worried about this as well and wondering how much is this has been true in your case! Thanks!
Don’t forget that even if you somehow run out of avenues for support on a mac, you can always dual boot linux on it. You could probably even bootcamp a mac to run windows and then run wsl inside it (I’m kidding but you get the point).
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.
> 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