Hacker News new | ask | show | jobs
by shados 2077 days ago
I can think of a few things. First, you get Windows for everything else (if you use the machine for personal stuff, gaming, need Office desktop apps, if you need Photoshop, etc).

You get a lot of that on Mac though (well, less so on the gaming front, but Macs have some apps that aren't on Windows too). But that's "real" Linux, so you don't have to spend time installing GNU tooling or fighting with brew.

Dual booting can get annoying, because you have to, well, reboot.

You don't have to worry about hardware. Linux has come a long way, but there's still the random peripherical that doesn't work, or some where the configuration software is Windows only. It's pretty easy to avoid hardware that won't work with Linux, but in this world you don't even have to worry about that. Especially relevant in the desktop space where you have to look at every component.

WSL2 also has some interesting benefits, like being able to install a couple of different distros, or wipe out and start over in a few seconds if you screw things up. It's kind of the docker experience without docker.

In the corporate world, it also means not having to convince your employer to get a Linux install they'll support. The company I work for only allows Windows or Macs. Sure, I've worked at big companies where after some back and forth with IT we could get Linux on the PC machines, but it's nice not even have to go through the hoops.

There's some drawbacks: interop between the WSL2 file system and the Windows one works fantastic, but it's FREAKISHLY SLOW. If you're trying to git clone a big repo or npm install a big library and you're crossing boundaries between the two system, you're not going to be happy (as long as you stay within the WSL world you're fine though).

GUI apps are an issue. It's pretty easy to get most apps working using a Windows compatible X Server, but hardware acceleration is an issue. It looks like it might be possible to get working, but I sure as hell haven't been able to. The team is working on an official way to run GUI apps without going the X Server forwarding path, but it's not there yet. For now it works fine for simple things, like terminals and text editors, but trying to use Google Maps in Firefox is simply not useable (but it does work!).

I'm one of those weird people who actually likes Windows, and for 99% of my development use cases, Windows + WSL2 let's me do everything I need with zero compromise, and without having to reboot all the time. I can have a Windows-only game running with my Linux terminal open to do some development while I'm waiting for a group in my favorite MMO. Docker + WSL2 is great too.

5 comments

I cannot improve on this answer, totally nailed it.

I would like to emphasize the fact that I can get a windows machine and run WSL on it, and not get a bunch of eye-rolls from my IT director.

Additionally: Linux laptops are pretty OK, but Windows power profiles and power management make battery life on a windows machine MUCH better.

> First, you get Windows for everything else (if you use the machine for personal stuff, gaming, need Office desktop apps, if you need Photoshop, etc).

Does that include all the phone-home stuff and ads as well?

I only run Windows (10) on a work laptop, and I'm guessing it's the 'Enterprise' edition, so all of that is not present. I've heard that there's a lot of intrusive garbage in the home-oriented editions: is that accurate?

(I sysadmin, so dog food Linux on my workstation.)

Edit: why the downvotes? As someone who runs an Helpdesk/IT-managed Windows laptop I have no idea what the state of the consumer Windows sphere is. The parent lists many good things: are there any bad things worth mentioning?

I've never seen an ad in Windows 10 aside on blog posts talking about the ads, though I do have the Pro version.

The phone home stuff is likely still there though.

My Windows 10 Home Single Language license cost the OEM $50 AFAIK and despite that MS decided to put placeholder tiles on the start menu which are replaced with apps (e.g. Candy Crush) once you connect to the internet after setting up the OS and those are finished being downloaded.

Xbox app can be uninstalled, but not Xbox Game Bar? Bing on the Start menu search which for some reason I can't disable because there isn't any straightforward option for that.

When I try to download an app from Windows Store, the instant I press 'GET' button a dialogue window asking me to log into my MS account is opened upon closing which I can proceed to download the app.

I can shed some light on that. I am a long time linux user and recently brought a gaming laptop which comes pre-installed with Windows 10 Home. I made up my mind to use whatever software came with it rather than installing linux since I don't want to mess up with my system too soon. I gave away all my pro-linux biases and gave Windows a honest try. I didn't last two days with Windows, main reasons: 1) Privacy Nightmare: I was not able to login without first creating and logging in to an outlook account. They're pushing very aggressively than I'm comfortable with. And data stealing booby traps are everywhere. On the activities view, it always shows a "Keep more recent activity" button or something like that, which when clicked will send my browsing history to Microsoft servers to sync. I didn't find any way to completely uninstall edge. It rings similar to Android, we get extremely less control on our own system. For system updates, it will by default send update files to other users in the internet(like torrenting). 2)Excess data usage: When I was on linux, the data usage is almost null when idle but windows seems to be always downloading something. 3)Development: WSL2 definitely made Windows a bearable platform for development but I did encounter some problems. Installation was not straight forward, got some errors and fixed it by searching for an hour. There is no intuitive way to open bash in a terminal. Now, I don't know if I didn't search hard enough, but I was unable to setup a Ionic development environment on Windows and failed. That was when I realized windows wasn't really for me and switched to PopOS the second day. Everything expect the nvidea card worked out of the box, and fixed it after reading a couple of threads on reddit. Battery life reduced by about 1 hour as compared with Windows but I can live with that. The linux operating system and community is awesome, it is much frictionless to develop in linux than to use WSL2 in windows and you get a elegant operating system respecting our privacy than a bloated OS subsidized by data. And linux is free! I really wish linux will be around on desktops for a very long time and thanks to this recent experience, I will dread the day when Windows becomes the only available choice for personal computers.
> There is no intuitive way to open bash in a terminal.

I have the new Windows terminal setup to open the WSL2 Linux bash shell by default (and have it set so I can optionally use git bash if I need a shell in the Windows world).

Though a great way to use WSL2 is with Docker, which will leverage it for Linux environments instead of using a virtual machine (which it would do if WSL2 wasn't there). It's quite nice.

You can create an offline account by not connecting to the net during setup.
> You get a lot of that on Mac though (well, less so on the gaming front, but Macs have some apps that aren't on Windows too). But that's "real" Linux, so you don't have to spend time installing GNU tooling or fighting with brew.

So instead I can run IntelliJ under WSL2? Nope, not until there's a performant X server. Ok, so under Windows, pointed at my Linux filesystem? Wouldn't there be dos2unix file format issues there? And it sounds like it's painfully slow for now until they fix the networking.

But this is somehow better than having to "brew install" a few things? I'm very eager to try this out, but I think WSL3 might be a better starting point.

> So instead I can run IntelliJ under WSL2? Nope, not until there's a performant X server. Ok, so under Windows, pointed at my Linux filesystem? Wouldn't there be dos2unix file format issues there? And it sounds like it's painfully slow for now until they fix the networking.

What would the dos2unix issues be? Intellij on Windows can deal with and preserve all three line ending types, so it's not clear what the issue would be.

Can't say I've noticed any significant issues on performance. It does complain about filesystem case sensitivity (every time!), but it works pretty well overall.

> And it sounds like it's painfully slow for now until they fix the networking.

That will depend on the size of the project. If you're dealing with tens of thousands of files, yeah. In JS-land the problem comes around node_modules folder. BUt a few hundreds or even thousands of files would be okay. Reads are actually quite fast (using ack/ag from Linux to search Windows isn't bad), it's writes that are awful.

Also there won't need to be a performant X Server. The solution they're working on is using a seemless RDP window, where everything works (including drag and drop between the Linux app and Windows)

> Wouldn't there be dos2unix file format issues there?

I assume you'll have debugger issues if IntelliJ sees a different OS than you want your apps seeing.

LF on Windows is basically no problem unless you developing Windows OS specific things.
Very good points! Rebooting is so fast these days it isn't an issue, but I also only use Windows for gaming so I'm not rebooting a ton (twice a day at most). As far as Linux gaming has come it's still not there yet.

Incompatible hardware/software are definitely a real problem that probably affect a large enough percentage of people unfortunately.

> Rebooting is so fast these days it isn't an issue

Rebooting still means you can't do both things at once. And even if its instant, losing all my state is annoying. Sure, a proper window manager can restore state, and a good tab manager will preserve those too, but its a freagin pain in the ass. Plus the pre-boot sequence is slower than the actual OS booting, so I still consider that a pain.

Maybe I'm petty (to each their own), but rebooting once a week would drive me nuts, nevermind once a day.

Using Windows only for gaming means there is not a lot to gain from having work things opened while having the game running.

If you are going to use Windows for work alongside gaming, wouldn't game launching being so convenient affect your focus?

Also, if you even think about compilation/rendering, if those are supposed to take long enough to complete so as to let you game long enough, wouldn't the game also use some of the system resources, maybe just enough to make the work even longer to complete?

Probably depends on the game you play. I like to hack on some code while waiting for groups to form in MMOs for example.

And I'm not building 10 million lines of C++ on the side. For moderate sized apps (<100k LoC) in higher level languages (JS, Java, Python), building and/or running the code is mostly unaffected. While actually going through the code with grep or ag, cloning repos, reviewing PRs, making a commit, those aren't super CPU intensive.

And well, my gaming machine is so far beyond the macbook pros my employer provides, it's still going to be faster by a factor, game or not.

Lastly, even if there was a significant perf impact, being able to close the game and immediately fire up a terminal is still a lot better context switching experience than having to go through a reboot cycle.

That was actually part of it for me as well. Just running what you need in i3 is super productive. Windows is for gaming, with the occasional quick SSH to get something done (mintty though, Windows Terminal is slower for me).
Really well-written writeup. It would be suitable to pin for WSL2 newcomers.