Windows Subsystem for Linux (WSL) is my main programming environment, after giving up Windows in 2015. It is surprisingly good.
Shrink your virtual HD
The virtual hard drive in WSL seems to grow without bound (they grow as needed, but won't release space even if you delete data). After shutting down your WSL instances (i.e.
wsl --shutdown), run this in PowerShell (as an administrator):
Optimize-VHD -Path $VHD_PATH -Mode full
$VHD_PATH is usually something like
There's an alternative method using
diskpart described here which I've successfully used before.
Separately, there's a convenient package called
wslcompact that will run Powershell scripts for you to automate this process. I've only used it to show info, but most reports seem to indicate it works well.
Use WSL VSCode plugin
I was a long-time holdout on Visual Studio Code (VSCode), but I've completely switched from vim except for on-server editing. The things that made me switch were (a) Pylance, (b) rust-analyzer, and (c) Copilot. rust-analyzer is available inside vim as well, but the integration is less convenient, at least for me (I like being able to hover over variables and see the inferred type, it is extremely helpful).
You can use the WSL extension to open a folder for editing.
If you have VSCode installed, you can use
code . from inside WSL to open a folder inside VSCode. This will also reset
rust-analyzer if it ends up in a bad state.
See this post for advice on how to install CUDA.