Hacker News new | ask | show | jobs
by LecroJS 1385 days ago
I bounce between WSL2 running on windows 10 and an M1 mbpro max.

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.

1 comments

Thank you. Really well written and appreciate the insight. Regarding m1 macs, I see that people seem to be doing a lot of housekeeping trying to tie things together back again.

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!

A valid concern. My experience is that by now, most apps/projects have support for m1 Mac’s out of the box. For the minority that don’t, I always find a solution that fits nicely in the first gist shown by google. I honestly don’t even consider it to be an inconvenience when I hold it up next to my experience with wsl. Not to mention that the support for new Mac architecture will only continue to improve + be a priority given the market share.

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).