The ability to run docker containers as wsl instances looks nifty. A bit more overhead since they now run as a VM instead of a container, but you get the ability to start a shell with Windows terminal or access files with Explorer (and thus every program running in Windows)
I'm glad I'm not alone in missing native apps. I get that it's easier to code a note-taking Electron app, but every time I look at a Linux terminal app written in JavaScript it makes me want to cry.
I know I'm beating a dead HN horse here, but how the hell is it possible that megabytes of embedded JavaScript in websites, to the point that LinkedIn uses about half the RAM I had for my first computer loading 32 MB of JavaScript files. Jjira loads 50 (!) MB of javascript, enough to include the uncompressed version of War and Peace 16 times. That's the size of a full installation of the entire Windows 95 operating system. GitLab's static landing page is 13MB of JavaScript, larger than that of Twitter.
What the hell are we doing here? Why can I spin up a 100 MHz, 8MB RAM VM with a hard drive size that's 1/16th of your entry level MacBook's RAM and have apps open immediately? I understand some backsliding as things get more high level, but a website loading 50 megabytes of JavaScript, to me, is like a bright neon sign that screams "something has gone wrong terribly here". Obviously programs, websites and operating systems have become incredibly more complex but your $200 A-series Samsung phone has about 8 cores at 2.2 GHz each. A $200 processor when Windows 95 was released had one core at 0.1GHz. making the processing power about 164x faster. Keep in mind this $200 includes a fully functioning computer in the palm of your hand.
The actual CPU part for a midrange phone like the Samsung A15 5G is the Dimension 6100+, which costs all of $25 bucks.
There must be some sort of balance between ease of prototyping, creating and deploying an application without bundling it with Electron or building websites that use tens of megabytes of a scripting language for seemingly nothing. Especially when we can see that a fast, usable website (see this very website or the blogs of many of the people who post here, compared to Reddit for your average medium or substack blog).
How the hell do we fix this? The customers clearly don't want this bloat, companies clearly shouldn't want it either (see research that indicates users exposed to a 200 millisecond load delay on Google, performed 0.2-0.6% fewer searches, and effect that remained even when the artificial delay was removed. This was replicated by Microsoft, Amazon and others. It's frequently brought up that Amazon has said that every 100 milliseconds of page load time cost them 1% in sales, though it's hard to find definitive attribution to this), programmers should hopefully not want to create crappy websites just like mechanics should hopefully not want to install brake pads that squeal every time the user breaks.
This got way longer than the two sentences I expected the post to be, so my apologies.
Most of the JS bloat comes from really aggressive analytics, error tracking, and a/b testing. Not many developers are willing or given approval to remove these features up for smaller bundle sizes.
The React Native reason is called C++/WinRT, the teams that internally rioted against C++/CX and came up with C++/WinRT (now in maintenance, go figure), never cared one single second about the Visual Studio experience (using C++/CX was similar to the Delphi/VB like experience from C++ Builder), that everyone else was losing.
Thus React Native is the only alternative left those teams had to have some kind of nice GUI design experience alongside C++/WinRT, when using WinAppSDK, think Qt with QML/C++.
I wish it was a TUI. Windows is a plague I try to stay away from as much as possible, and it already gives me headaches to setup WSL and manage them over ssh. Some things you just can't do w/o remote desktop... And sometimes WSL crashes and there's literally no way to recover except to restart the whole machine.
The only reason I use Windows is because Nvidia drivers are easier to setup. But once I'm inside my Fedora WSL, that feels like home, not the Windows host.
I think the UI is pretty slick but agree having a TUI option as well would be awesome. Everything in wsl management (import, export, register, compact, etc) can be done with shell commands I believe so a tiny performant TUI might be a straight forward thing for op to add in the future though.
Are you sshing into the wsl instances or he windows host? Pretty much all my interactions with wsl is using the wsl cli. Other than the very initial step of enabling wsl, mostly because I never memorized the powershell enable command.
Is there anything that can run a normal Linux VM guest with good quality graphics acceleration on Windows host (i.e. both full OpenGL and Vulkan support)? Not the gimped half VM over HiperV.
VirtualBox has really broken graphics support, you can only run software rendering Linux DEs that way.
This is great and all... Except I’ve long given up on WSL.
I really tried to make WSL work for many things, only to find the entire experience (reliability, performance, and beyond) was simply better in every way without Windows.
No matter what you do, there will always be some weird platform detection or line termination that pops up somewhere. And if it isn’t that, it’s degraded performance or kernel-level incompatibility.
Neat project. Merging the layers of a docker image and setting that as a WSL filesystem is a nice convenience.
I recently realized that 100% of what I use Windows for was as a WSL2 foundation: It had been reduced to being an extremely overbearing and heavyweight host machine for a Linux VM. Nothing in my life was Windows-only anymore, and it was basically just inertia that I even still had it installed.
I'd been a "Windows guy" for decades, had decades of Windows software dev under my belt, even got my MCSE, MCDBA, along with other Microsoft certs, and even wrote for MSDN Magazine. No longer did it have any leverage on my profession at all, which was shocking to me.
The next day I purged Windows from my two main working machines, so now I'm pure Linux and macOS. A few weeks later and I can say it has been a marvelous transition, and cuts out the no longer relevant middleman.
this is great and I have a feature request: A "refresh VM" feature that exports your home dir + packages into a new VM instance.
I've tried Optimize-VHD but renewing the VM this way frees up disk and speeds up the VM as well. None of the WSL settings for sparse disk / disk shrinking seem to work well.
Here's what I usually do
$ tar -czf /mnt/c/Temp/home-backup.tgz $HOME
$ apt list --installed > /mnt/c/Temp/packages.txt
delete the VM, create a new one, reverse the process.
I wish there were more ways to specify whether the Windows filesystem /mnt/c should be mounted in a WSL2 instance - it is kind of generally on or off. In cases where I want WSL2 to function as a "container" isolated from my desktop, I use a different Windows user just in case.
My WSL Ubuntu instance always gets disconnected after I come out of sleep or hibernation mode. Anyone else faced this issue and any solutions? I have tried everything found online.
16 comments
[ 2.7 ms ] story [ 41.7 ms ] threadWell, even Microsoft uses React Native for a lot of Windows-only apps.
I know I'm beating a dead HN horse here, but how the hell is it possible that megabytes of embedded JavaScript in websites, to the point that LinkedIn uses about half the RAM I had for my first computer loading 32 MB of JavaScript files. Jjira loads 50 (!) MB of javascript, enough to include the uncompressed version of War and Peace 16 times. That's the size of a full installation of the entire Windows 95 operating system. GitLab's static landing page is 13MB of JavaScript, larger than that of Twitter.
What the hell are we doing here? Why can I spin up a 100 MHz, 8MB RAM VM with a hard drive size that's 1/16th of your entry level MacBook's RAM and have apps open immediately? I understand some backsliding as things get more high level, but a website loading 50 megabytes of JavaScript, to me, is like a bright neon sign that screams "something has gone wrong terribly here". Obviously programs, websites and operating systems have become incredibly more complex but your $200 A-series Samsung phone has about 8 cores at 2.2 GHz each. A $200 processor when Windows 95 was released had one core at 0.1GHz. making the processing power about 164x faster. Keep in mind this $200 includes a fully functioning computer in the palm of your hand. The actual CPU part for a midrange phone like the Samsung A15 5G is the Dimension 6100+, which costs all of $25 bucks.
There must be some sort of balance between ease of prototyping, creating and deploying an application without bundling it with Electron or building websites that use tens of megabytes of a scripting language for seemingly nothing. Especially when we can see that a fast, usable website (see this very website or the blogs of many of the people who post here, compared to Reddit for your average medium or substack blog).
How the hell do we fix this? The customers clearly don't want this bloat, companies clearly shouldn't want it either (see research that indicates users exposed to a 200 millisecond load delay on Google, performed 0.2-0.6% fewer searches, and effect that remained even when the artificial delay was removed. This was replicated by Microsoft, Amazon and others. It's frequently brought up that Amazon has said that every 100 milliseconds of page load time cost them 1% in sales, though it's hard to find definitive attribution to this), programmers should hopefully not want to create crappy websites just like mechanics should hopefully not want to install brake pads that squeal every time the user breaks.
This got way longer than the two sentences I expected the post to be, so my apologies.
[1] https://tonsky.me/blog/js-bloat/ [2] Velocity and the Bottom Line, Shurman and Brutlag
Thus React Native is the only alternative left those teams had to have some kind of nice GUI design experience alongside C++/WinRT, when using WinAppSDK, think Qt with QML/C++.
Agree on the Flutter comment.
The only reason I use Windows is because Nvidia drivers are easier to setup. But once I'm inside my Fedora WSL, that feels like home, not the Windows host.
VirtualBox has really broken graphics support, you can only run software rendering Linux DEs that way.
No matter what you do, there will always be some weird platform detection or line termination that pops up somewhere. And if it isn’t that, it’s degraded performance or kernel-level incompatibility.
I recently realized that 100% of what I use Windows for was as a WSL2 foundation: It had been reduced to being an extremely overbearing and heavyweight host machine for a Linux VM. Nothing in my life was Windows-only anymore, and it was basically just inertia that I even still had it installed.
I'd been a "Windows guy" for decades, had decades of Windows software dev under my belt, even got my MCSE, MCDBA, along with other Microsoft certs, and even wrote for MSDN Magazine. No longer did it have any leverage on my profession at all, which was shocking to me.
The next day I purged Windows from my two main working machines, so now I'm pure Linux and macOS. A few weeks later and I can say it has been a marvelous transition, and cuts out the no longer relevant middleman.
I've tried Optimize-VHD but renewing the VM this way frees up disk and speeds up the VM as well. None of the WSL settings for sparse disk / disk shrinking seem to work well.
Here's what I usually do
delete the VM, create a new one, reverse the process.