Aside from the potential to run into show-stopping problems like that, you may run into "big company" problems if you work for one, like I do. That is, VPN support within WSL only half-works, and because it's Windows you may be forced to follow domain policies that require Windows Defender to run, which slows down WSL, and blocks you from Insider builds that could fix WSL problems.
You can run a Linux VM on Windows instead of WSL. Which has its own set of problems and is overall a worse experience than developing on macOS, in my opinion.
So currently while, as a Mac user, I actually prefer the Windows 10 UI, the hardware competition, the keyboards, etc., I can't use WSL. Side-projects that you can adapt to WSL's limitations are one thing, but making it work as your development environment for a wide-range of professional projects is another. I saw all this with some actual sadness because I'm tired of investing in Apple when they've basically abandoned macOS and are making so many hardware choices I disagree with, that affect me (keyboard, touch bar).
That was only the last and final blocking issue I ran into, after a series of minor (or at least, not serious) problems that I powered through during too many late nights.
Couple of things:
- Hyper-V. Was excited for this and tried it, since I had already set up Docker for Windows and pointed the CLI tools in WSL at it. However, Hyper-V didn't appear to have any support for the "shared folder" concept that VMWare and VirtualBox do. Is your only option here to set up Windows share and use Samba?
- I dislike running VMs generally, but would have gone that route if I could have gotten a setup I liked. However, after reconfiguring everything to use VirtualBox (including Docker) and creating a single VM there to do Docker and Linux stuff on, it seemed to tax the machine too much (i5 8GB SB2). With a beefy machine that would have worked better, but Windows 10 isn't that appealing if I have to buy the highest-spec machines and run VMs... that's exactly where it was 5-10 years ago.
I have a lot more to say about WSL and Windows 10, and it probably deserves a blog post. I haven't returned the Surface yet because I'm kinda in love with it, but also if I can't do all my work on it, then it's not something I need to own.
Actually, it was as recently as this very week! Running with all the
latest updates on a new Surface Book 2, I ran into a variation of
this open issue: https://github.com/Microsoft/WSL/issues/1982.
Well that stinks. I'd swear I hit this and it got resolved with the inotify-related patches, but clearly I misremembered. Might be thinking of uwsgi or something.Re. Hyper-V: yeah, I do a Samba mount. This in my experience actually performs a ton better than VirtualBox shared folders, but it's been a long time. I have no idea how it compares to VMware's implementation. (VMware and VirtualBox also have the ability to cleanly virtualize a graphics-accelerated Linux desktop, which is not something I need or care about, but might be a show-stopper for both WSL and Hyper-V if you do.)
VirtualBox shared folders had their own problems. `npm` wants to create symlinks for commands provided by packages, but VirtualBox doesn't support symlinks by default on Windows shares. So you have to execute an arcane command to enable that feature -- every time you restart the computer.
Interesting to hear that performance is decent with the Samba share. I presumed it would be otherwise. In that case, Hyper-V with Samba may be my last shot at getting the machine to work for me... we'll see if I can muster any more enthusiasm.
[EDIT: Also, reading GP, it looks like their issue is something about VirtualBox support for symlinks, not Windows support for symlinks. Symlinks are enabled in Windows by default, so they'd only have to do something special if they were on a domain that disabled them in the group policy--but in that case, they wouldn't be able to turn them back on themselves on a reboot anyway.]
Which WSL distro did you use? Perhaps only works under, say, Ubuntu 18.04... (not perfect, but better, perhaps)?
This is the biggest problem I have with Windows. Microsoft lets corporate IT depts fuck it up. Such control should not be possible. It's my computer, I should be able to use it as I like.
At least they shouldn't be able to override existing functionality, like disabling edge and windows store.
I'm completely at ease with developing on Windows now, and I've "done Linux" since 1994, worked long for one of the major Linux vendors and even contributed a bit to the Linux kernel (networking and firewall), but if I had to do system administration I might have a stronger opinion (simply because I'M so sued to Unix ways in general).
It is like this Monty Python scene https://youtu.be/WboggjN_G-4?t=69 when people start arguing about their operating system.
For the last couple of years I looked at how nature (biology) "computes", not just neurons, the entire bio-chemistry with its machinery. Now that is something different - while everything people put on their computers works on pretty much the exact same principles unless you zoom all the way in to nanometer scale (figuratively speaking).
I would also clearly prefer windows for projects supposed to run on windows servers, and Linux for projects supposed to run on Linux. Mac OS Server is utter crap and completely useless, so Apple doesn't have that going for it.