This might sound like a post by a Microsoft fanboy, but honestly, WSL 2 on Windows 10 2004 is really great. It allows me to use Windows on my Surface Go, but at the same time use Linux (Ubuntu 20.04) on it, in a small optimized VM. For example I can run Hugo inside WSL 2 at Linux speed (fast) instead of Windows speed (slow). I just need to take care to save the Git repository with my site files inside the filesystem of the VM and not on Windows (passthrough is really slow). And it’s easy to start Visual Studio Code from inside WSL 2 by just tiping “code .” and the current directory will be opened in Code. I’m really waiting for official GUI support so that I can even use graphical applications under Linux. The best of both worlds.
I didn’t believe my eyes when I saw this: Windows has an official package manager now. The lack of a package manager was the thing that annoyed me most about Windows. That’s why I always used Chocolatey on Windows, but even that has room for improvement.
Last year I wrote a tutorial about how it’s possible to run Linux GUI apps on Windows using the Windows Subsystem for Linux. WSL 2 (with an integrated Linux Kernel) is coming soon, but Microsoft announced they are bringing support for Linux GUI apps to Windows 10 too. While I still prefer to use Linux directly, I think it’s still a great announcement and new feature. It’s definitely the year of Linux on the desktop.
During the last weeks I saw a few reviews (like this one) about long time experience with the Surface Go. I have mine for a couple of months now and finally finished the first semester where it accompanied me for a couple of different tasks.
Yeo Kheng Meng published an article about building a Slack client for the very ancient 16-bit Windows 3.1 (released in 1993) in 2019. It is very interesting to read about the challenges of developing for such an old system. To solve problems, one has to dig in books instead of doing a Google search or asking on Stack Overflow.
If you want to use Linux applications on Windows you have multiple options. Using the Windows version of the application if it’s available, cross-compile the app, use a VM or Docker, or use the Windows Subsystem for Linux with a X Server.
Yesterday I ordered an external SSD to have a bit more storage on the go when using my Surface Go, but also to exchange files between my devices (it has an USB C cable, so it should even work with my phone). I have a huge (4TB) external HDD already, but that needs more power than what comes out of the USB C port on the Surface, so when I want to use that, I have to use a charging cable and that’s suboptimal.