VSCode + WSL makes Windows awesome for web development
world.hey.com
world.hey.com
it is, MS care about keeping people on windows, even through it sometimes doesn't look like it
That was the idea of WSL after Microsoft realized they kind had lost the server wars (if you want to call them that) and people in science degrees frequently ended up using Linux, too (not just STEM but also others, e.g. Linguistics):
make it so that people which normally might have tried out Linux because they use tools which are Linux first don't have to try it out and in turn might never notice that it has become fairly usable for a lot of use-cases even for non tech enthusiasts
but they love Linux sure, and they surely didn't do anything to make it harder to install Linux on new system in recent times like trying to convince vendors to not ship the 3rd party certificate needed to install linux with secure boot enabled
similar for VSCode, MS realized there are huge groups of people they will never convince to use VisualStudio so they made a IDE just for them, even open source
and then increasingly adds more and more MS proprietary extensions they believe are long term essential for productive using it
but sure MS has changed and definitely isn't having any bad idea like Embrace, extend, and extinguish anymore ... or maybe they just realized they need to be a bit more soft with their approach and care a bit more about image
anyway I'm (actually, not sarcastically) sure a lot MS Dev, including such involved in this projects, acted only with best intention not having EEE or anything like that in mind
problem is huge companies like MS are in the end committed to abuse their power as much as they can get away with
which currently means playing somewhat nicely and embracing competition ... for now
It was the confirmation many only care about a POSIX like experience, not really about the GNU/Linux ecosystem.
VSCode is the child of Erich Gamma, of Eclipse and Visual Age IDEs fame, briging it to the desktop instead of a Web IDE project, was pivot.
"VS Code Day 2021 VS Code an overnight success 10 years in the making with Erich Gamma"
I've been using Windows for two decades and before that I loved the Amiga Workbench.
When I had the choice between a Dell Windows notebook and a macBook I went to the Apple store and some enthusiastic person showed me the new 2017 models with larger touchpad and gestures to move between workspaces. I thought "these apple people. who needs that".
Then we ordered the macBook and because of my keyboard layout choice it took a week to arrive. I got a used Dell notebook for week, worked and then switched to the macBook.
When I had to give the Dell back I wanted to transfer some files to the macBook, and I used the touchpad and made some macOS gestures and wondered why the touchpad is so small and why the gestures don't work. This was the moment I understood why the person told me about these things.
I'm using macOS for 7 years now. Also had to deal with some bugs and stupid UX here and there. But overall my OS of choice for sure. Oh and the touchbar on the top of the keyboard was not even a good idea, I think. My last Windows was Windows 7 and I liked it a lot. Windows 10 I never liked, even when I only used it in a VM.
I use my (my employer's) macbook 99% of the time docked, so I don't really care, but yes objectively gestures are top notch.
It's all the other parts of the OS to which you aren't immediately exposed which get me. Most displays need an external tool to force a sane resolution. The command line tools are almost-but-not-quite compatible with what you use on servers. Docker is horseshit. Need another external program to see how many times I have to cycle through app windows. Need an external tool to invert mouse wheel scroll direction but not the touchpad scroll direction. Need an external tool for a sane clipboard. Need an external tool to tile windows.
The hardware is very much 'pro' but the OS is at most 'deluxe'.
This is probably my biggest gripe with macOS right now. Are there no developers at Apple who find this to be an issue?
While they get praised a lot for the UX, I personally find it questionable and more optimised to look good on a screenshot than actually usable.
That's surprising. The last few Windows machines I've owned I've had to fiddle with networking stuff. In particular, they would all begin to intermittently lose internet access after about 6 months, requiring me to go through a series of steps to flush the DNS cache, renew IP, and reset winsock. On the other hand, I've never had a networking issue on a Mac for the 15 years I've owned them.
It's weird how much people's experience can vary on these types of things. I've heard networking being a headache on Macs from others too. I've just never experienced any issues before.
* I prefer the command line and keyboard interactions to a mouse.
* I'm a focus on one thing at a time kind of guy so minimizing distraction is important to me.
* I want hermetic repeatable configuration for my system.
Because of this I have a preference for unix systems, because they have better Cli tooling and methods for minimizing distraction. I like mac's because the hardware is better and the OS is basically unix with some polishing bits. The window switching behavior also means I can stay focused a little easier.
Is it perfect? No but it meets my most important criteria better than anything else out there.
Other people have very different criteria than me though so the calculation will be different. Neither OS is subpar just focuses on a different market.
is about people forced to work on win vs their preferred linux/osx finding out productivity is, indeed, worse, but not as bad as expected
It's stuff like:
* Control and Command being separate buttons, so Cmd-C and Ctrl-C don't conflict in terminals
* Being able to hold-then-drag to quickly select a menu item in one press
* Unix-native built-in CLI utilities for working with the OS
* Better clipboard support for images with alpha channels in Adobe apps
* Built-in universal preview app with file manager integration
* Text cursor shortcuts (Alt-←/→ to move around words rather than Ctrl-←/→)
* iPhone integration (shared clipboard)
Honestly, I think all of these are pretty damn subjective and come down to muscle memory (aka learning PowerShell), while some can be more or less fixed up with AutoHotKey, but I keep finding these little behaviors that make it hard to switch.
WSL slow things down quite a bit, starting/stopping a server, deployments, git workflow... Even then still beats having to run things on a VM an it is better that the hell it was to set up dev environments in Windows before (for anything not .NET)
There's zero reason (and has been for quite some time, at least a couple years) for those things to be slow - the trick is to 1) make triple sure you're running WSL2 and 2) never store anything on the Windows drive, keep everything in WSL2 home directory. it's basically native Linux speed then.
I haven't had to worry about graphics drivers issues in over a decade across my 3-4 AMD/Intel laptops/desktops...
As for font rendering.. I'm actually curious what people mean by that.. To me the text in the apps i use: VS Code, the major browsers, vlc looks practically the same between windows and Linux . Terminal - i like my Dracula theme on Yakuake and prefer that too what cmd.exe/powershell provides in windows.. so is it some high dpi monitor thing?
I don't remember the NVIDIA drivers being that bad in the past
Also, not to start a flamewar here or anything but isn't Fedora like super bleeding edge/and sometimes unstable software generally? I remember them shipping wayland super early... Friends with Nvidia desktops generally used things like Pop OS..
And for the font rendering it's a matter of preference, I don't like much the pixelized font rendering on Windows.
I have been doing development (web, mobile and embedded) on Linux for more than 10 years now and always found it awesome.
The only people who think it’s not usable are the ones who are trying to make it POSIX or have built their code bases on tools that aren’t cross platform.
Depends on what you're having to do, but I often have better luck with just using Gitbash and VSCode and some amount of docker via Docker Desktop than I do with WSL.
The benefit is running Windows itself because the user also wants to use other software that runs better on Windows. E.g. DHH mentions one example in Fortnite:
>, and did I mention you can actually play AAA games on the PC? That $2,349 Dell ships with an NVIDIA 4070, which is plenty of power to drive everything from Fortnite to Cyberpunk 2077.
If Linux is the main host operating system on the computer instead of being a "guest os" such as WSL-Linux or a Linux vm, then one will have to do workarounds for Fortnite: https://www.google.com/search?q=how+to+play+fortnite+on+linu...
Likewise, NVIDIA 4070 drivers worked on Windows before Linux.
If running Windows native software is the main use case, a "Windows machine running a guest Linux os" will be superior usability to the opposite scenario of a "Linux machine running guest Windows os".
It's had many bumps in the road. Networking, VPNs, filesystem etc.
I'm trying to use it right now. "apt-get install dotnet-sdk-8.0" and the system is now totally unresponsive and commands are hanging. I have no idea what it's doing.
It's actually a great advert for native Linux. If your hardware works OK with Linux, run it, and put Windows in a VM if you really need Office/Power BI etc
(Hyper-V on the desktop is also a joke. The Ubuntu from the gallery (which I presumed would be properly designed, tested, QAd etc) had an issue installing the set up packages from apt. It was doing 1 every 5 minutes - maybe a networking bug or something. I gave up)
I started playing around with WSL1 shortly after it was released. Lady year, at a new employer (primarily a Windows based shop), I started using WSL2 daily. I have never had to manually kill the WSL process.
I wonder what's so different between our installations and systems to cause our experiences to be so different here.
Jul 2022 https://github.com/microsoft/WSL/issues/8529 "All WSL commands hang (including wsl --shutdown) but WSL is constantly using 30-40% CPU "
May 2021 https://github.com/microsoft/WSL/issues/6982 "High CPU usage"
Jun 2022 https://github.com/microsoft/WSL/issues/8529 "All WSL commands hang (including wsl --shutdown) but WSL is constantly using 30-40% CPU "
Jul 2019 https://github.com/microsoft/WSL/issues/4197 "[wsl2] filesystem performance is much slower than wsl1 in /mnt"
Feb 2020 https://github.com/microsoft/WSL/issues/4901 "Very slow network speed on WSL2"
[0] https://inkdeep.github.io/TextMate-Themes/#all_hallows_eve
The problem I ran into most using windows, which I never had in macOS - inability sometimes to copy into clipboard, or paste from clipboard: pressing ctrl+c does not change clipboard to the currently selected text in VSCode, I have to press ctrl+c three four times before clipboard changes. I recall having to do this 15+ years ago, but why this is happening is mystery.
Another problem, if I restart my laptop when it connected to 1080p monitor, and then connect it to 4k monitor at home, some apps will not support HiDPI resolution and will show up in tiny font (PuTTY hell)... so no, it is not awesome. It is horrible. Was, is and always will.
WSL is cool and all, but why deal with all the quirks and issue that come with it, why learn how it works and all the limitations ... when you can just have it all natively the way it was invented and supposed to work?
And I like to play AAA games and would, lose performance in many cases on Linux, so I happily bite the sour apple to play the latest games easy and fast without any issues.
The gaming industry is so heavily focused on DX12 instead of natively building for Vulkan for some reason, even though this matter less and less with Wine/Proton getting better and better. It still makes more sense to me to just boot up Windows 11. It's a dream for me to one day delete my windows partition, and I think it will actually happen in my lifetime, just not in 2024.
The relatively recent auto-shrinking volumes are also not always working in my experience.
I’ve also experienced networking issues in the past, either names wouldn’t resolve for some time, or hosts would be unreachable. If you look around you will find multiple GitHub issues for it.
I’ve been a heavy user of WSL 1 and 2 since a while now, it’s a fantastic system, but you will likely notice issues over time. Still worth it IMHO.
It's a shame Windows and Microsoft is so insufferable for everything else. And Macos hasn't really improved lately, in fact maybe the opposite, so there's that.
WSL is at is heart a VM, and as good of a job as Microsoft has done at bolting it on coherently and applying all the caulk they could, it still feels like.
Sometimes it just randomly partially stops working, where I have a command prompt, but cannot access the filesystem from applications. Whether or not `wsl --shutdown` will fix it is also random.
The filesystem is not accessible to Search Everything, so any files I create in WSL I have to access through a special method, either through \\wsl$\ in Explorer (which itself is awkward) or using Total Commander (I prefer it, but it doesn't have OS integration, so if I need to put a file into a file selector dialog, it's an additional step of Copy Path and paste.)
There are still issues I run into through inconsistencies between Windows path with backslashes (which in GNU-land must be escaped as \\) and Unixy paths using slashes.
The system time gets desynced more often than not, so I actually have to have `sudo hwclock -s` in my .bashrc, which itself randomly works vs. doesn't work, and when it doesn't work, nothing short of a full system reboot seems to fix it.
Sometimes http://localhost:2784/ randomly stops working in Windows applications while still working in e.g. Firefox that runs in WSL.
This is just a few random things off the top of my head, but there are many, many more issues I run into day-to-day. And all I'm doing is a simple web server, Git repo, and IntelliJ. I don't even run a database server, because I use SQLite for that.
It works, but it's hardly awesome.
You may ask why I don't just install GNU/Linux on this laptop. Initially, that was the plan, but I realized that so many people out there use Windows, I need to bear through this myself for a while so that I am on the same page, and so that my software can run on Windows and WSL. But coming from Mac, it certainly feels like a bit of the ol' Harrison Bergeron sashweights.
(My recycling salvage 8-year-old Mac was somehow fast enough that I could do all my work in a GNU/Linux VM and have a clean separation between my desktop and my workstation.)
Edit: https://learn.microsoft.com/en-us/windows/terminal/customize...