I've been trying Windows Subsystem for Linux (WSL) and it's a great idea, I can see my self moving to windows (from Linux) in the next months when they fix the slow IO.
The combination would work great for me, a terminal with Linux tools + a nice windows 10 experience (nice fonts, devices support) .
Great work, I'll definitely be checking this out. I find myself using the WSL more and more recently. It still has plenty of rough edges, but Microsoft seem to be committed to improving it. The lack of a full Linux like terminal is probably one of the bigger reasons I can't switch fully over to Windows.
Yikes, do you mean Windows Subsystem for Linux? I really appreciate MS folks putting in the effort to try something new, but WSL is close to worthless. I tried it a while back and could not get basic services to work. And why would you want Windows OS around if you just want to run Linux?
Coming from someone who probably is your average HN reader (programmer, power user, technically oriented), I've been enjoying Windows 10 more and more. They have put a huge effort into creating a better experience for developers. WSL was a great start, and I'm excited to see what a full Linux kernel will bring. Windows Terminal is in preview and is the terminal emulator that I would want on Windows. I already use VSCode on mac as well.
It's quite obvious actually.
What people want from Unix is the terminal. The GUI experience on Linux is subpar. Random strange bugs and driver issue are still rife in 2021.
Windows has the opposite issue.
WSL promises to solve this by giving you the best of both worlds.
Yes! I primarily develop on Linux, but lately have been working on Windows porting. In many ways the WSL has been a massive savior. It makes developing on Windows at least possible for Linux users. But it's sooo slooow.
The performance bottlenecks I hit seem to be disk i/o related. Things from path tab completion on the command line, to Vim's YouCompleteMe compiling code in the background, to a plain "git status", are just painfully slow right now.
If Microsoft can fix these performance issues, and someone ships a better terminal replacement (currently using ConEmu, also has issues), developing on Windows would be almost painless for Linux users (after learning how to integrate projects with Visual Studio...though I've read VS 2017 has better cmake integration).
This is great. I recently shifted to woking more with windows/WSL after much frustration with mac. However the terminal experience was not great. The electron based options where not fast enough, default WSL shell was comparably fast to iTerm but did not even have basic tabs. Microsoft is really doing a lot of good and exciting stuff nowadays.
I also do almost all of my development on Windows 10 these days after years on Linux and find that it basically just works for almost all cases. For terminal I mostly use Cmder and Msys2, when not using WSL.
As to performance problems with regards to WSL and disc IO, there has been problems with how Windows AV software's real time virus protection interacts with WSL. Adding an exclusion to the part of the file system used by WSL should give a significant performance increase.
I really like WSL. And Windows 10, well, it's not awful. I don't hate it anymore than I hate Mac OS's GUI. I find things especially nice with the new Windows Terminal.
But the piece missing is still first class support for X (or Wayland) Linux applications. Without GUI Emacs, for example, or some way of integrating the Windows Emacs well, I find the WSL experience not as productive as booting into my actual Linux partition. But it's like... 90% there.
One thing I really like is that the Windows version of CLion will use SSH to connect into your WSL installation and use the Linux toolchain. So you can develop both Linux and Windows applications using the CLion GUI IDE on Windows, it's quite seamless.
Windows Subsystem for Linux (WSL) allows Windows users to install a Linux distro (several downloadable from the Windows Store) and WSL 2 (https://docs.microsoft.com/en-us/windows/wsl/wsl2-index) recently arrived. There's mad bit of satisfaction in being able to do this and it's useful. I was able to work on a Python/Linux stack project and other developers on the team were using WSL too. You can even open a WSL terminal in VS Code.
WSL is not a good solution from what i've seen, most of it's proponents have never used Linux on real hardware and are comparing it to gitbash for windows or whatever, or have never used linux before. Some things run fine, others are insanely slow due to either slow translation layer or simply because the behaviour of the underlying windows kernel actually is really many times slower than linux, e.g forking - I didn't know this, just found out first hand. The file-system integration is a bag of shit - the common issue being trying to use git in linux while editing files from a GUI in windows will cause frequent explosions, failed fs updates to to arbitrary windows locking are not fed back to linux which really fucks with git. (i'm talking about using the linux fs from windows which is the way with the least issues - doing the reverse has even more severe consequences). Also the terminal app is the worst i've ever seen. FYI I'm talking from experience helping my colleagues who use windows. </rant>
IMO, if you must use windows and need linux/gnu stuff, just stick linux in a VM with a full GUI, it may seem more resource intensive running a whole other kernel and GUI, but it will work reliably without horrible surprises.
WSL is not nearly the same as actually using Linux. If it actually interacted with the rest of the system instead of just in it's little box it might provide some value. The way it stands you really have to search for everything. There are lot of tools for devs that just work on Linux/Unix that just don't work on Windows. I find Windows a pain (and am a C# developer professionally). I also like to game so of course Windows stays on my desktop at home, but my next laptop (MBP currently) will have Windows replaced with Linux for sure.
I find IO on windows is fine, the problem with WSL1 was that the standard windows model doesn't line up well with Linux (fairly fundamental things like in Linux you can delete open files, which you can't do in Windows).
You couldn't switch Windows to a more linux-like model, it would break all existing windows programs.
Oh man, Windows Terminal is a wonderful thing! I've used Konsole extensively; I've been a filthy dual booter for many years now.
But I never did much development on Windows until a particular job I had about a year ago. It was a Windows shop and we did everything between WSL2, VSCode, and Windows Terminal. It was actually... a really nice developer experience. I was very pleasantly surprised by how well things worked. WSL2 isn't perfect by any stretch of the imagination, but the newer WSLg on Windows 11 solves some of those problems.
If I could have the Windows Terminal in a Linux desktop distro, I would take it in a heartbeat. I think you're in for a treat if you give it a try!
From a slightly broader view, Windows + WSL2/WSLg + Windows Terminal is a pretty great experience that manages to combine a lot of the best of both Windows and Linux worlds, IMHO.
After couple years on OSX, many years on linux, I've gone back (I was using windows before I've started working as a developer) to Windows (10) - and I'm very happy with it!
WSL works great for my needs (Node.js / front-end development mosty, but I run RoR / Python apps without any problems).
After years spent with Linux, then with macOS, my solution has been to finally move to Windows 10. My linux subsystem is as stable as I want it to be, I have full control over it. It takes a bit of time to get used to the Windows world and find the good GUI tools, but once you get more familiar with it things work ok. And Windows doesn't break my system with every upgrade the way macOS does (the things that change over time are mostly UI updates, not fundamental changes).
That's not for everybody, but after ~1.5 year I can say I'm satisfied with my choice, WSL has really been a game changer.
reply