Creating my awesome Windows 10 dev setup
chimerical.ca
chimerical.ca
I'm not sure if these issues are because I don't use it very frequently, but every time I start it up:
* CPU gets eaten alive by telemetry related services for minutes at a time.
* A barrage of updates I didn't ask for get forced on me (Despite whatever settings I put)
* Anti malware tools cause system to be I/O bound for about a minute
Longer term observations
* The disk usage goes up and up and up, even though I'm putting no data on to it
* I keep getting nagged to use a Microsoft account to sign in
* The default internet browser gets reset to Edge
* Some older applications just stop working for no reason, only to start working again weeks later.
On the plus side, Visual Studio seems to be much improved from what it used to be.
Also Group Policy is not available on Windows 10 Home (without hacks anyway).
I've started using OOSU10 on all my Windows installs as well as Windows10Debloater. It makes a performance difference on resource constrained devices and for other devices I just like a cleaner Windows install.
I'm sorry, but that begs the question - what is even the point of telemetry then?
Wow.... looks like 100+ individual settings to toggle. It gathers them all together, but when I'm going through the configuration, I'm not only modifying the telemetry/privacy stuff but other preferences too, so it might not save all that much time.
(That UI is a little reminiscent of the Group Policy Editor, although I think the extra layer of ambiguous "slider buttons" make it even more confusing at first glance --- e.g. if the "App access to camera disabled" setting is red, does that mean the setting is not applied and apps can access the camera, or does the red mean the camera access is disabled? A "[*] Allow app access to camera" checkbox would be far more straightforward. That said, gpedit.msc's mix of enable-to-disable and disable-to-enable isn't much better either --- it's almost as if they are trying to mislead you.)
New dark pattern from Microsoft. One of the reasons to get off the platform forever. If settings change themselves they shouldn’t call themselves settings
Let me just reboot for you when you're afk without asking.
If you have a gaming or pro laptop in a bag, this is a fire hazard and could kill people.
I don't know how this was ever approved within Microsoft, but it is outright criminal negligence that should see them sued into the ground. Better yet, I'd like to see executives jailed if anyone every dies because of this arrogance.
Microsoft employees, get this through your thick heads: Your updates do not matter as much as my life!
Anyway, when I saw the monster price tag for Enterprise, I suspected that is what they determined was the cost of loss of analytics
You can still buy win 10. The major point of the free win 8 upgrade was to let them avoid supporting the old version, which indicates the value of it to them was more than the cost of getting everyone to buy a new license.
Note that the free upgrade is not supposed to be transferable. New computer means new license, so you gotta pay.
- ubuntu still does a lot of silly stuff.
(I remove or neutralize motd, appport, snapd, ubuntu-report, unattended-upgrades, ubuntu-advantage, whoopsie and more)
Your disk space issue may be related to automated backups, system restore service, and LAN caching of Windows updates. You can disable these. Disk cleanup wizard can help here too.
Edge hijack has never happened to me, although a handful of links inside windows apps/services/docs do force edge to launch (which itself causes a confirmation to make it default, which I decline)
Windows is famous for backward compatibility, especially compared to Linux or MacOS, so I'm not sure what issues you're running into there. There are some strange system dependencies that I've seen cause issues; cortana search powering the start menu search feature and disabling the swap file causing numerous invisible failures come to mind.
Faulting anti-malware is frustrating because on windows you basically have to run it, and the default one is pretty okay. Most commercial options like symantec, norton, mcafee, etc are absolutely terrible.
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.
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 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.
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.
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.
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.
which does not bother me one bit.
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'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.
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)
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.
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.
[1]: https://blog.yossarian.net/2020/12/24/A-few-HiDPI-tricks-for...
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.
Also i've tried WSL2 and Debian is much better than ubuntu. the ubuntu and snap fiasco is quite annoying. i know you can just uninstall snaps but i think a simple debian install is enough for most dev testing if you plan to go WSL2 because it's extremely lightweight and fast inside wsl2. Also vscodium is an option as open source without telemetry but wsl2 can't be accessed through it because it's apis i believe are closed source.
I put some small kids in front of some Windows and some Linux machines running GNOME 3. They had an easier time with GNOME.
Up until I set up a similar environment to the author, dev on Windows was always a nightmare. Typically I'd just ssh into a server and use vim when I was on windows as it was a better experience. WSL has been a game changer. Code... just works. It's actually impressive how well integrated they've made it. I no longer have to do strange hacks or worry about different line endings on windows. It all just works now. If you're on a decently powerful PC, I'd recommend trying it out. It's more resource heavy than a native Linux install for sure, but it means you no longer have to dual boot for gaming. That's a big win in my book.
I go back and forth between a personal Debian box and Surface laptop all day long and it really just emphasises the amount of bloat and drag that Windows experiences doing even the most basic things like manipulating files and using a web browser.
I can use VS Code on both OS's and everything is faster on Linux. Not sure why I would choose Windows unless I needed the C#/.Net toolchain.
Unless you're working on a legacy .NET Framework application, .NET Core will happily work on Linux.
For now.
You're missing out on Visual Studio... for Python, C++, etc.
As for VS being slow, it mainly depends how big your project/solution is. Where I know it can be unreasonably slow is when you have lots of projects (several dozen) and you're trying to change all their settings, or something like that. However, if you're referring to the startup time specifically, it might actually be due to your computer not having generated the native images yet (try running ngen.exe executeQueuedItems for both 64-bit and 32-bit). If you mean editing source code, it shouldn't be sluggish at all. But if you mean features like Find Reference, Go To Definition, etc., those rely on Intellisense which takes a while to update for a complicated language like C++ (or a dynamic one like Python)—I don't expect much variation across IDEs here.
___________________________
UPDATE: I think you deleted your reply, but I replied to it already, so I'll paste it here:
You're talking just about when you hover on the tool tabs, right? (i.e. the delay should not be there if you click, right?) It takes 400ms to open by default because that's the default menu show delay on Windows. It's the same delay you see if you right-click inside a folder and hover on New, for example. The delay actually works well for menus for older folks/non-techies, but it's glacially slow for developers (including for menus) unfortunately. You can reduce the delay by changing
HKEY_CURRENT_USER\Control Panel\Desktop\MenuShowDelay
in the registry from 400 to something else (I like 40) and then logging out and logging back in.I can't speak to what CLion does with the memory you give it, but it's generally bad for programs to take up arbitrary amounts of memory, given that'd deny the memory to other apps. I wouldn't judge a program positively if it takes up more and more memory the more I give it.
For the ngen thing this is specifically what you want to run:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executeQueuedItems
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe executeQueuedItems
If this is the reason for the slow startup, it should reduce the startup time drastically. For reference, on my laptop (almost 3GHz) VS 2019 takes around ~1 second to launch into an empty environment, which I find pretty acceptable for an IDE.As to what you're missing by using CLion, well the first thing is the subscription money and the second thing is that it doesn't support nearly as many languages. Beyond that, I'm not sure I can give an accurate response right now because CLion has changed a fair bit since I last tried it, and added new features it didn't use to have before. I know one thing I can think of off the top of my head is that CLion uses Make and/or CMake, both of which have so many rough edges (like relative paths, paths with spaces, etc.) that anything based on them turns me off a priori (and in fact terrifies me because it means my files might get accidentally wiped). Other than that, I'd have to try it again myself and see what might have changed. You should just give both of them a real try and compare; you might end up liking both for all I know. But I can't think of anyone I know who's given VS a real chance and disliked it—the only exceptions I know are people who just hate it because they hate things Windows things altogether.
My latest issue is a clean install of Ubuntu 20.04, 20.10, 18.04, all have screen flickering. Which doesn’t occur in other distros. (Not screen tearing)
But if I try mint, it has random UI freezing. Pop_OS! Has random things that won’t install because the distro name is pop and not ubuntu. Kubuntu runs flawlessly but then I can’t sign into vscode sync out of the box.
But when it works, it’s awesome.
Windows goes bizzerk within a week every week and somehow just maxes out my work laptop/desktops CPU for no apparent reason... needing reboots to fix it. Windows updates ruin all long-running tasks (like, unittests).. and unitTests cannot be run at low priority, cause they still effect normal priority apps way too much... If you start playing with low level systems in it, it'll just start blue screening . MS telemetry... Ad's on desktop... A LOT of crap I don't care about comes with it and runs by default.. vs ~32Mb of ram usage by the time I hit desktop.
Only if you're unaware of all the hidden spyware you have to find and disable... the last time I had to install Win10, there were so many dark patterns everywhere.
Windows is probably the best DE for Linux now. ( I'd still use i3 if I had a choice)
It's basically like homebrew for windows, and all programs are installed into a user folder, so no admin rights are necessary.
Windows has incredibly good keyboard shortcut support. A small example, the context/menu key on keyboards is the equivalent of right clicking wherever the cursor is at, making spellchecking as I type super easy, I'm sure MacOS has some meta-combo that does this, but over 20 years ago Microsoft made this tiny piece of accessibility a first class citizen on their platform by starting a certification process for keyboards that included such a key.
Windows has non-borked external monitor support, unlike a slew of MacOS machines. (See, every thread on HN where some subset of people report problems with external monitors).
Windows has insane hardware support, buy whatever upgrade is on sale today, throw it in your machine, and odds are it'll just work.
Speaking of insane hardware support, my current Windows install has switched motherboards and CPUs multiple times. Pop the SSD into a new computer, boot, wait a few minutes for the OS to setup proper drivers, and off I go.
The UI is a first class citizen, not an afterthought. At no point do I have to wonder if my setup supports screen sharing.
Its media pipeline is pretty darn powerful. Per app volume control rocks, but the entire media stack can be rerouted, split, and merged, in all sorts of fun and cool ways.
The clipboard works. really well. I have actually seen the source code to the clipboard in Windows, a lot of engineering effort has gone into making it work that well.
Apps don't randomly stop working because I upgrade. Major UI utilities that reach deep into the system that I started using on Windows 7 work just fine today.
Do I have complaints about Windows? Of course. IMHO it has gotten way to large, back in Windows 2k and even the Windows 7 days, the # of background processes on a clean install was a fraction of what they are today. My start menu only opens up every other time I click it (...). And as with every other OS, reliability has gone down over the years.
But Windows isn't some half forgotten wasteland. It is the single most popular desktop OS, and for over a decade it was also the single most popular development platform.
Would I do docker based development on bare Windows? No, but I've done Android and Web development quite happily on Windows.
For reference, I have done C/C++ dev on Linux, and right now I use both MacOS and Windows for dev.
I can run Debian or Ubuntu for weeks, even months, without rebooting. I can barely run Windows for a day or two without rebooting.
Others have mentioned the maddening and massive updates that happen frequently, and the weird application crashes and poor performance.
Windows has some cool stuff, like Powershell and .Net, but it’s otherwise too painful to use unless I absolutely must (which happens more often than I’d like these days, despite going 5 years without using windows at one point). Plus, Powershell and .Net are more readily available on Linux.
Does Windows even allow to not reboot? I've heard that if you miss the update popup it will automatically do the update and reboot. And if you click "Remind me later" or whatever too many times it will just remove the button and force you to update. Did they fixed that or is it still doing that?
I guess no one remembers the days when the entire industry (re: Slashdot) yelled at Microsoft that they needed to stop letting users run around with ancient exploitable installs of Windows.
So, Microsoft forces important updates.
Fancier versions of Windows let you turn off most updates. Sev0 exploits, RCEs, and the like, well, those updates still get pushed down unless you have a corporate install with policies disabling all updates.
There is a trade off, and for decades (!!) Microsoft let users decide, but eventually "1/4 of Windows users just got their machine 0wned" showed up in the press too many times.
Kind of like how every time there is a widely installed Android malware app, Google gets blamed. "Why don't they enforce their policies!" Then soon as they do enforce their policies "The Android app store should just be a dumb distribution mechanism!"
I get it, different people expressing those sentiments (I hope...), but balancing "keeping people from having their bank accounts cleared out" vs "user choice" is not the easiest of decisions. After many years, MS has gone full force on the auto-updating side of the debate.
But back when Windows update had the option to disable updates, people who shouldn't (e.g. little Timmy setting up Gramp's machine) turned them off.
Then Microsoft got dragged through the mud, and grampa lost his retirement savings.
Back in the early 2000s, things were really bad. Going over to a non-geeks house, better than 50% chance to find malware, if they had broadband, good odds they were part of some sort of file drop for a warez group (or worse).
The issue now days comes that MS also pushes down feature updates, that is something that very valid objections to exist, especially with the dropping level of QA that exists throughout the industry today.
> If this is actually true, there is something seriously wrong with your install
This is the problem. It's very easy for stuff to go wrong with a Windows install. They deteriorate w/time. Why do you think so many times we end up just re-formatting a family member's machine? I've had to do that many times, even when malware wasn't an issue.
I've never hard to reformat a Linux machine for such issues, even though I've been primarily on Linux for well over a decade.
None of the 3 Windows machines in my house reboot other than for monthly updates.
Actually, if you count my Xbox as "running Windows", I do have to reboot that slightly more often than once a month!
But seriously, now days a PC is a front end for a web browser, steam games, Adobe suite, and Office.
My current Win10 install started off as a Windows 8 install many years back.
Something is wrong here. I run Windows 10 for weeks at a time without rebooting. I'm typing this reply out on a Windows 10 workstation that has been up for ten days without a single issue.
Probably part of the problem is that I only use Windows every 1-2 months, and then when I do start it up, it spins the fan for an hour downloading and installing updates.
That said, I really do end up with many, many more issues on Windows than on Linux. For example, I just yesterday had - out of the blue! - some Visual C++ Redistributable to suddenly go missing, and not able to open up Visual Studio Code (I'm mentoring some students who use Windows). I had used Visual Studio fine on that computer multiple times, and had never touched any of the system folders. No idea what happened to the missing library. I re-installed it and it was fine.
I end up helping family members who come to me with mysterious Windows problems. Often the problem is just that the OS has slowed down over a year or two of normal use. I've tried registry cleaners, and they sometimes help a bit, but the only real success I've had in those situations is saving their personal folder and re-installing the OS. Sometimes there is evidence of malware on their computer, but often there is not.
Never had things like that happen on Linux. Nor on OSX/MacOS. Windows just doesn't strike me as a reliable system. And that's not even bringing up the resource requirements for running Windows - I can easily run Linux on machines that could no longer run Windows without running into massive performance issues.
This isn't some pathological Microsoft hatred: I'm favorably impressed with Visual Studio Code, with Powershell, with C#, with F#, with Typescript. I'm just not impressed with Windows as an operating system. It did get more reliable after the moved the the NT kernel, but still not half as reliable as MacOS or Linux.
And, there's a downside to Linux, which is hardware compatibility (although that's rarely as bad as Linux critics describe it).
Just last week, I moved my laptop back to Windows from Ubuntu because it froze up on me at least a couple of times a day (and that is a XPS13 - a system which is supposedly built to run Linux).
I have been using Linux since kernel version 0.99 or something, so its not like I dont know my way around it. I just dont really care which OS I run. It just needs to get out of the way and work for me and not against me. Windows does a good enough job at that.
yeah and they are all scarcely documented and basically impossible to discover. you just randomly come across them on obscure 00's era PHP forums, there's no big comprehensive list of them somewhere.
I haven't heard about this! Do you have a reference?
For audio.
I haven't done it with video streams in a long time, sorry. I do remember splitting audio off, changing it, and muxing it back together.
>obviously has never used Linux
U+1F923
Windows is still, to some extent, full of magic and dragons underneath... and while they're doing an increasingly good job at hiding it, it does occasionally bite you in the arse. But Windows has on the whole become a competent development environment that works very well with almost any kind of development workload - with the exception of native iOS and MacOS. Also GPU accelerated ML on Windows is still kind of sketchy.
For a dedicated backend application development desktop, I still prefer Linux. But hardware support is generally better on Windows, plus you have access to Adobe Creative Suite, better colour management, better graphics drivers, etc. and there are types of development that just aren't practical on Linux, such as 3D games, Excel add-ons, VSTs and lots of proprietary embedded development platforms don't support anything other than Windows.
On the other hand, .NET development nowadays is just as easy on MacOS, Windows and Linux.
There’s other things that annoy me like typing latency, apt taking forever to run, an awful terminal emulator with basically no customization, copy and paste often just does not work. It’s really so frustrating.
You absolutely can, I do it all the time. For example, you shift-click your desktop, click "Open Linux shell here" and run imagemagick or ffmpeg to your heart's content.
You can alias subl to your Windows sublime install and then subl ~/whatever will work as expected.
I don't experience any of your other problems. Apt is very quick, copy and paste works fine, typing latency seems lower than Linux (but I do have a 144hz G-sync monitor). I agree that Windows Terminal is a bit spartan, but I was never one for excessive terminal customisation on Linux either so it doesn't really bother me, I guess.
The reason I prefer it to MacOS is that it is actually a real Linux kernel with all the trimmings - such as apt, docker, eBPF etc. My recent experience on MacOS is that every update seems to break Brew, which, while better than MacPorts, doesn't even work all that well to begin with. MacOS is a weird BSD with poorly documented closed source system components such as launchd. If that's your thing, it's fine - but I personally find the Mac/BSD userspace unpleasant to work with and am tired of fighting against it every time Apple decide to break my attempts to make it more tolerable.
Versus a VM it's less clear, but the integration is actually fairly good, each of your WSL2 "distros" start instantly, you can launch them to the current directory in Explorer or use them from Windows Terminal without SSHing. For the most part, it _feels_ like Ubuntu is just a part of Windows.
My workflow with WSL2 is that I keep most of my repos in the Windows desktop and use Windows versions of JetBrains' IDEs or VSCode for most of my work, but then I use WSL for docker/kubernetes, running CLI-oriented things like vim, ffmpeg, imagemagick, shell scripts, python, terraform, etc.
Plus, I have a Ryzen 5950X with 128GB memory, which isn't strictly a limitation of MacOS, but it certainly makes my life a lot better!
There are a few edge cases that are tricky (for instance you can’t register a batch script in WSL2 as a file association handler) but for the most part it’s pretty smooth.
Disabling Windows updates is not possible.
You're joking, right?
i think this is older version (i ran oct update)
you can also run the scripts on existing install but be warned its uh, very opinionated
Browse to C:\Windows\SoftwareDistribution, right click on the Downloads folder, click properties. Security Tab, Advanced, Change Permissions, Disable Inheritance, Remove all inherited permissions from this object, Apply.
To enable windows updates, reverse this process. You may have to stop the service or go to safe mode to this, though I don't remember doing that.
Deleting a large folder like node_modules seems to take ages on windows as compared to macOS or Linux.
I'm sure there's more specialized cases where it's not up to par, but for the average use case, it's quite good!
Question: any issue with WSL2 and network connectivity to say services such as node running in your wsl2 that you would connect to from your browser? I’ve heard that in wsl2 there could be issues with this and you may have to do some workarounds or extra config magic..
Also, the WSL extension for VS code makes it hardly noticeable that you're even working in windows.
I believe there are some edge cases but you have to get into stuff that isn’t just “open a port and listen on it”.
You can mount the WSL2 file system in Windows, but then changes to files arnt communicated to apps. So your code editor wont know about changes made in the WSL2 env.
Not everything works or can with WSL2 either. There are some things you cant build and run.
I use Windows for games.
I also have a need for Adobe SW and MS Office. (requirment of my job).
macOS is great for dev, Adobe and Office. But I cant game on it...
There is no perfect OS for me right now. :-/
This killed me after switching from WSL1 to WSL2. I missed the part in the notes where it said you should no longer store your files outside WSL. Finally figured it out eventually and the speed improvement was huge.
function profile_alias { editor $PROFILE }
Set-Alias -Name profile -Value profile_alias
Why this instead of `function profile { editor $PROFILE }`?