I'm not aware of any compromises I've had to make, whereas MacOS colleagues have to deal with compatibility issues with userland utils, Docker, running *nix VMs, and so on.
And as of a couple months ago, GPU passthrough with WSL2 enables using an Nvidia GPU for ML tasks using Linux binaries.
There is no good story for tpm-secured booting into a full-drive encrypted Linux OS. What I have now still requires a passcode at boot, and it was still a pain to set up.
The TPM and PIN has protections against brute forcing and offline attacks. The TPM only method for Bitlocker is more similar to FileVault.
That's swell, but what advantage do you perceive versus... just running linux? I understand if you're a .net shop, but I'm always confused about the lengths Windows users seem to go through to run Linux tools within Windows rather than just running Linux.
I have to fight against Linux to do standard desktop environment GUI things, while Windows just works for the most part. The rough edges of Windows are essentially all covered by the Windows Subsystem for Linux.
What most Linux people say when they say that they want the "Linux development environment" they mean some shell tools. Shell tools that are now available under Windows with better "fidelity" than under MacOS.
I run WSL2, and when benchmarking performance is almost identical to rebooting into Ubuntu.
I've never had a laptop where everything worked well in Linux (WiFi, Bluetooth, sleeping), even when trying laptops where I was told it would work well, like the Dell XPS.
Also, I work on (open source) desktop software, where the majority of our users use Windows, so I like being able to easily debug their problems. I work in academia and get lots of word and Excel documents I have to edit, and find while open office can view them it often breaks them if I edit and resave.
OTOH windows is slower than Linux, but it's a price worth paying for some.
I don't disagree with any of this[1]! But we're talking about developers, not most people, and it looks like this particular author went out of their way to install a CLI editor.
Others have pointed out that Windows is still the right platform if you're a game developer, which makes a lot of sense to me. Are there other specific hobbyist development cases that are best served by a Windows environment?
[1]: Except the 4K and video conferencing. Those actually work quite nicely for me (n=1) on Linux.
I hate to beat up on Linux. I'm a 15 year user on my personal hardware who wishes he could use it for work.
I suppose I'll add my n=1 experience that battery life has been pretty good oob.
:-)
I remember playing with governor's, disabling hardware, supporting Nvidia Optimus and other stuff in Linux in order to get decent battery life (actually, i got decent out of the box. I wanted good battery life)
This laptop is the first computer I've owned for myself though, and is what let me get into Linux. I tried dual booting for a while, used Windows ~2 times, and never went back.
I can get 8 - 10 hours pretty easily with Linux, and that's using GNOME, so I just haven't worried about it.
Corporate standards? Also, if you're in enterprise land, there could be some weird tool you need to use (or is superior to whatever you can get on Linux) that forces/encourages you to use Windows.
Also, there may be some weird little ergonomics thing: I recently switched from Windows to a Mac at work. We use Outlook, and IMHO Mac Outlook sucks compared to the Windows version. It's just missing a bunch of useful little features that I got used to. I was originally planning on using Windows Outlook in a VM, but got thwarted by new policies set by our new desktop support vendor.
which does not bother me one bit.
With tools like Looking Glass (https://looking-glass.io/) you don't even have to leave the Ubuntu Desktop environment.
Didn't have issues for almost a year.
Rule of the thumb for me is: AMD GPU for host, NVidia for guests. I use AMD GPUs for host because open source drivers are awesome and makes kernel/version updating easy. NVidia for guests is no brainer since they don't have PCIe reset issues. For motherboard, pick one that has good IOMMU groupings, usually x<3|4|5>70 for AM4 or x299 for Intel, or go Threadripper.
According to Wendell on Level1Linux, the reset bug should be fixed on AMD 6000 series gpus.
I'm a linux guy, I've used linux almost exclusively for the past 10 years, but one of my two laptops recently started running Windows10 + WSL2.
Why I use it:
- WSL2 is usable. Looks like a linux, smells like a linux, and performance is way faster than on my linux laptop (purely because the windows laptop hardware is much more beefy, I'm just saying WSL2 performance isn't a bottleneck)
- Games, obviously, and I'm sure you know that. There's a non-negligible overlap between gamers and developers. VR games on linux is a no-go at the moment.
- Printers. I've never had a linux laptop that just worked regarding scans and printing. Sometimes I works, sometimes (usually) it doesn't.
- My otherwise well-supported thinkpad has a crappy broadcomm wifi+bluetooth chipset. It's just not well supported on linux. I've had to stay in a hotel for 2 weeks covid quarantine, I'm glad I had my windows laptop with me, as linux didn't want to connect to their wifi at all. Bridging wifi from my android phone is another workaround I use
- Regarding bluetooth, it's bad too. Audio works after a decent amount of manual config (finding the right driver online, the one shipped on ubuntu is the wrong one), but with horrible latency (almost 1sec). My bluetooth mouse is now working without issues, besides a bluetooth systemctl restart from time to time.
The bad things about it:
- A couple of random BSOD. I have no idea where to even start to debug them. Only 2-3 in 6 months of usage though.
- Botched upgrades. This was a bad one, when I bought the laptop, the latest upgrade just didn't work, it would brick the laptop. It seems to be a problem with my ryzen cpu, so the only solution was to reinstall and stop all updates until microsoft fixed it
- Upgrades in general, they're shitty, forced, etc... Nothing new here. I use third-party programs to stop the forced upgrades, so at least I have control over that
- Autohotkey is required for basic customization, like shortcuts. I'm very specific about my shortcuts (I need my bazillion emacs keybindings to work the same as in linux), but ahk makes it work for me.
- Some annoying, but non-critical bugs in WSL2. It might get better with time.
- Virtual workspaces are now shipped with windows, but their keybindings suck in a non-fixable way
There you go. I'm still a linux guy, I prefer linux and will probably dual boot an ubuntu+i3 once I buy a bigger SSD, but WSL2 makes dev on windows quite painless. All I need for my work is a terminal, emacs and a browser after all.
I've used Linux since early 2000's and OSX on the desktop since 2010+. Before that Windows CE, 95 and think Vista or 7 was the last.
I was curious about what Windows looks like these days as it's been a decade and also curious about WSL2 as it seems online posts are generally positive over WSL. The surface go / surface line of devices looked interesting for a nsmall, stuff in the bag while traveling doing email/browsing/office type of machine. I was tempted to buy one to see what they are about.
At a contracting gig last year I was given a Windows machine. I'm not sure if it was because it wasn't the best and typical corporate laptop specs, or if it was because of the corporate lock-down, installed software, av, and other junk but my eagerness to try modern Windows and WSL2 quickly diapered. I struggled getting docker running, i struggled running docker in the subsystem, i found things where not working in the subsystem, had difficulty with paths etc. In the end the machine went back and I got a mac and was up and running in an hour with full dev environment and everything set up how I like using nix-darwin. Same for the other devs, they where unable to get a working dev environment on windows so sent the machines back for macs.
Some of it will certainly be my unfamiliarity but it just didn't seem compelling enough to overcome. Clicking the start menu and seeing ads instead of finding programs was a blatant yes this is windows moment.Even the UI /UX felt old which seems odd given that Microsoft have quite a lot of material out on user interaction and ux research.
An interesting observation about modern Microsoft is a lot of the onsite Microsoft Azure employees seem to be using Macs and Microsoft give them the option of running Macs.
After a month, other than keybindings, I’m very pleased. For me, the python experience made the difference. It’s 1st class with VSCode and remote debugging over WSL.
https://news.ycombinator.com/item?id=25612962 (corrupting repos)
https://github.com/microsoft/WSL/issues/5336 (no Internet access)
[1]: https://blog.yossarian.net/2020/12/24/A-few-HiDPI-tricks-for...
I've seen a few blog posts like this one where competent individuals attempt to construct a Linux-like development environment on their Windows install. It's clear that you're still fighting the host environment at the end of the day, and that anything that provides a Linux-like interface is going to suffer from both Windows' lackluster performance and the overhead of virtualization/translation/emulation/whatever approach your layer-of-choice uses. Is it familiarity, presence of other (non-development) applications, or something else?
Edit: I should say that I haven't used Windows since 2012 or so, but I have developed for it (mostly drivers and filesystem work) since then by running VMs. Ironically, my best experience developing for Windows has been entirely on Linux and macOS.