Want to _really_ impress us, Microsoft? Give us a Windows Subsystem for Linux.<p>I chose a maxxed out Dell XPS15 laptop with Windows 10 to replace my 3 year old rMBP with the (foolish) expectation that it could replace my Mac. Apple had lost sight of what mattered to developers, and I was angry. But now, 2 months later, here I continue developing and existing on my old rMBP.<p>Bash in Windows is incredibly slow on some actions. I didn't document all my activities, so I can't point to which thing was slow. But for a developer using Python, Elixir, Node, Nginx, PostgreSQL, MySQL, Git! SSH! and some other smaller accessories, WSL was far less performant than a Linux VM on my Mac. And it was far, far less performant than on native Mac.<p>I very much appreciate what Microsoft is trying to do. Perhaps in a generation or three they will finally leave behind most of their protectionist behaviors and embrace what works for them (for better or worse) - MS Office and the host of Windows apps that businesses depend on.<p>Apple is no saint or savior. But thankfully, some of what they did in the years past (dare I say during the reign of Jobs) is what has made them special. #1 - latency. My Macs work 99% of the time as expected. They run for weeks or months. My high end Android phone, even after factory reset, has occasional mind-boggling hangs (after which 1000 UI events register and take effect). The same applies to Windows 10! It works fine, sometimes, for a few things. Then it goes nuts. Wipe and reinstall (remove the Dell bloatware) and it's better. But it still lags so far behind macOS.<p>There is no utopia. There is only pain, frustration, and anger on the part of users. But please, give us developers (who practically _live_ in your environments) something.
<i>If you need to access files in VolFS, you can use bash.exe to copy them somewhere under /mnt/c, use Windows to do whatever on it, then use bash.exe to copy them back when you are done.</i><p>IMHO this is the worst-designed(?) part of the whole WSL. Copying files back and forth is the antithesis of a "seamless Windows and Linux experience", to put it mildly. From that perspective it's no better than running an isolated VM. To add insult to injury, although I haven't personally tried it, apparently trying to access the files directly from Windows as if they were both on the same filesystem (which they are) results in all sorts of ridiculous breakage: <a href="https://news.ycombinator.com/item?id=12980380" rel="nofollow">https://news.ycombinator.com/item?id=12980380</a><p>I have mounted CIFS/SMB shares from Windows machines onto Linuxes and Macs, and gone in the opposite direction with Samba; in both of these cases, there is no need for wasteful copying and managing <i>two</i> files; Windows and Linux can essentially use the same files simultaneously.<p>Going in the other direction, WINE also allows Windows apps to work directly with the same files as Linux ones.<p>One then wonders, when a <i>networked</i> filesystem with all its complexity can be used nearly effortlessly across different OSes running on <i>completely different machines</i>, and WINE is like the inverse of WSL, why couldn't Microsoft do the same with two subsystems on the same machine using the same filesystem!?
A lot of snarky comments here, but I've been using Ubuntu shell on Win 10 for the past few weeks and it's really fantastic. Way faster than a VM and much more compatible than cygwin or msys.
I've been a Microsoft developer for a long time, but in recent years it's become increasingly hard to justify and the Linux subsystem hasn't helped. Not because it's not an interesting feature, but because my desktop has become even more useless as anything but development than it already was with Visual Studio infecting everything.<p>I'm sure it's a step in the right direction for a lot of people, but I bought an old 2015 MacBook and it's been a so much better experience than windows that I'm actually considering getting a ubuntu machine to see if it can work as my main machine. If this sounds odd to you, you haven't programmed on a MacBook with a Danish keyboard.<p>Honestly Microsoft does a lot of things right these days, but it all comes with terrible user experiences. .Net core is great, but the devops required to run it in production, frankly has us considering java spring.<p>Sorry about the rant, but the fact that you even needed to write this blog is a good illustration of what's wrong with Microsoft. Tech is supposed to run out of the box, with minimal effort required.
This post was interesting in a morbid way but you can count the Linux nerds that want leave the open world of Linux for Microsoft very easily. They all work at Microsoft.<p>Microsoft is losing on mobile, desktop, servers, and IoT. Their entire ecosystem is a technological deadend.<p>If you're a Linux Nerd, you should probably keep using Linux if you care about having a good career going forward.
I tried WSL a few times but for real world every day development it's just not usable at all. The file mount performance is crippling slow. A Rails app takes 30+ seconds to see changes vs nearly instant on native Linux.<p>If anyone is interested in running Linux on Windows in a way that's suitable for full time development then check out this screencast / blog post: <a href="https://nickjanetakis.com/blog/create-an-awesome-linux-development-environment-in-windows-with-vmware" rel="nofollow">https://nickjanetakis.com/blog/create-an-awesome-linux-devel...</a><p>I've been using this set up for many years.<p>The pros of the above method are:<p>- It's free<p>- It's as fast as native Linux<p>- It's actually Linux from end to end<p>- You get independent floating Linux windows (graphical apps work)<p>- You can still run your Windows apps<p>- Works flawlessly with dual monitors<p>- No need to dual boot<p>- Takes about 15-20 minutes to set up your first time
I really, really wish Microsoft would open up the Pico Process APIs to third-party driver developers. Right now, WSL is the only driver allowed to install Pico Process callbacks. It would be cool to implement a Darwin layer or a Classic Xbox emulator with that tech.
For anyone wanting to automate using boxstarter and chocolatey without finding all the packages manually I created this GUI about a year back.<p>It has a search bar to search chocolatey's repository automatically.<p>It has search and allows you to save the GIST straight to github and then invoke installer straight from website. Uses cookies to store script on machine so you can come back to it and add/remove more.<p>Was a quick 2-3 hour job so it may have bugs<p><a href="http://dhruvb14.github.io" rel="nofollow">http://dhruvb14.github.io</a>
Correct me if I'm wrong, but WSL looks more like an attempt at stopping developers from moving to Macs in order to get a polished app environment with a Unix-like OS underneath and to keep them in the Windows ecosystem.
Congrats, Jess!<p>LXSS is amazing, but I had to stop using it because mounted volumes in Docker straight up don't work within it.<p>How don't they work? When you do a "docker run -v $PWD:/whatever <image>", "/whatever" will be blank. This occurred even when I tried to mount a directory on the FUSE mount to the Windows filesystem.<p>I'm guessing that given her experience in hacking container runtimes, she can probably lend a big hand towards fixing it. I'm currently using Vbox + Vagrant as a substitute, and it works well, but I'd prefer to use WSL.
Microsoft never made any change to its core strategy. There is no alternative platform to run Windows applications with official Microsoft support (you can name a couple exceptions, they are exceptions, e.g. SQL Server), there is no way for average developers to read Windows/Office source code. That is the best proof.<p>Windows for Linux Nerds? I run 5 Linux machines in my study room, Microsoft would be charging me thousands of $ for Windows Server licenses, I read source code of the software I am using on daily basis, Microsoft wouldn't let me do that. Every code of weeks, I hack the software I use and share the changes with others, Microsoft lawyers are not going to be happy if I choose to do that on Microsoft software.<p>Windows for Linux Nerds? Microsoft is not ready for that, Microsoft never had the intention to do.
I have been super impressed with WSL after using it for close to a year now. The Creators Update fixed some issues like file watching and symbolic links which had been preventing certain programs from begin usable.<p>I now do all my C++ and node.js development through WSL so I can still use all the Windows GUI applications (which tend to have fewer bugs and be easier to use than Linux GUI apps, in my experience). VS Code even allows you to run gdb on WSL, and interface with it on Windows, if you can get the setup right.
Stop dangling your rotten carrot!
You can't impress me with these stale gimmicks.
The choice of operating system is not a purely utalitarian, but also and mostly a social choice of morality and utopia.<p>And the choice has been made already, for freedom, not corpdom.
Therefore, i'll stick with even the shittiest desktop and OS imaginable, as long as it's open for me to any change i can think of.<p>There is simply no going back from freedom to corpdom.
It's one way only.
You need to understand this.
It's hard for Windows to realistically compete with Linux as a developer environment.<p>GNU/Linux and userland software is made by developers for developers, and a lot of it is open source. If you are a developer, on Linux sky is the limit. Everything can be played with. On Windows that's not the case. Many areas are off-limits and you don't get to see how they work, and you cannot change them if you need to.<p>Then, Microsoft can sunset a project at any time, and that's final. In the open source world an orphaned project can always be forked or picked up by someone else.
TBH I dug out my Surface Pro when Jess started talking up WSL... Finally got Windows Insider Preview going so that I could try it out for myself.<p>I spend most of my days in a text editor and a terminal, and macOS has been making even that painful sometimes. Linux was my desktop for ages before I switched to mac ~7 years ago, so it'll be nice to see what it can do now.
I totally agree with his points about how terrible the Windows console is.<p>Scrolling past the current line into blank space makes no sense. Having two identical settings menus (Defaults and Properties) that affect the current terminal vs every terminal makes no sense. Having no color theme support makes no sense.<p>As far as third party terminals go, ConEmu is pretty good but crashes a lot for me. I don't see why I should even need to get a third party terminal though. Microsoft is a multi billion dollar company. Can't they hire a team of guys to improve the one thing that every single programmer and sysadmin cares about - the god damned terminal?
Here are my notes <a href="https://github.com/chx/chx.github.io/wiki/How-I-set-up-my-Windows-10-(coming-from-Linux)" rel="nofollow">https://github.com/chx/chx.github.io/wiki/How-I-set-up-my-Wi...</a> on setting up W10 after using Linux for almost a quarter century.
WSL is waste of time if you work with docker - Linux desktop experience (not laptop) is just good enough these days (and future seems even brighter since Ubuntu goes back to Gnome)
Why would you use WSL instead of straight VM for example (assuming you are somehow banned from running Linux proper directly on your hardware)? And I'm a bit confused about the benefit of launching PowerPoint from WSL, when you have the Windows host itself sitting there.
WSL is nice and I would use it more often if USB devices were transparently mapped into it. I want to use it for embedded development on my Windows machine, and without USB support this is just not possible.<p>Edit: apparently they added it in May [1], but I have no access to the newest update.<p>[1] <a href="https://blogs.msdn.microsoft.com/commandline/2017/05/10/bashwsl-insiders-build-now-supports-usbserial-comms-and-mounting-removable-storage-network-shares/" rel="nofollow">https://blogs.msdn.microsoft.com/commandline/2017/05/10/bash...</a>
I used to run <a href="http://www.andlinux.org/" rel="nofollow">http://www.andlinux.org/</a> but with no 64bit support it's dead now. This was how to run Linux on windows.
Thank you for WSL! I've been using it to learn more about what it could be done with it, and at home have been trying to compile flutter (<a href="http://flutter.org" rel="nofollow">http://flutter.org</a>) on it... Currently it gets stuck in the "pub upgrade" (the dart language packaging mechanism), as it runs several tar's to unpack packages.<p>If you just follow the simple:<p>bash.exe...:<p><pre><code> $ mkdir p; cd p
$ git clone https://github.com/flutter/flutter
$ cd bin
$ ./flutter doctor
</code></pre>
it'll soon get up to speed, and eventually hang. Off course all this works on Windows, but I wanted to experiment with something as it encompasses several different things - language, environment, packages, jit-ing, etc.<p>Still pretty excited about the development!<p>Heh, one thing I've learned the hard way, I made a symlink on my /mnt/c/ as /mnt/c/something - and this was making several windows tools unhappy, had to deleted from WSL and now it's fine.
I've recently (~1y) moved back to Windows as a primary 'desktop' OS for development. By day I'm a rails developer.<p>I've worked extensively on windows (back in PHP days), Linux (when I was doing HPC software) and Mac (most of my rails career...).<p>Generally the code always runs on Linux -- and WSL isnt' there yet for background processes and the "platform" your code needs to run on; most of the stuff I need needs worker processes, elasticsearch, mysql, et al, all of which need to be running long-lived in the background which WSL isn't great at supporting -- it's "user mode" after all.<p>It's also closer to prod environments, which is a theoretical argument against OSX.<p>I clone and do terminal operations on either a VM or a physical ubuntu server in my house, and edit locally using gvim or visual studio code using an NFS or Samba mount. Nginx proxying using port forwarding over ssh. Long story short; it works for me, but this is a frankenstein-ish setup made familiar solely because I've used all 3 OS's day in, day out for ~20 years. When I explain it to Junior devs they look at me funny.<p>WSL with ConEmu and openssh is close to replacing PuTTy for me, but that's it. You still can't use it to have a painless node, ruby, etc development experience on windows.<p>Microsoft should be focusing on optimising for someone who's in a coding bootcamp, not people who've been in tech for decades already and already have the solid technology base.<p>Right now, people grow up using windows for day to day office work in other careers and at school, and for PC gaming and browsing at home, but have to switch off it when they enter a development career because the native tooling isn't there. If Microsoft can address that shortcoming, probably through further development of WSL and (hopefully) implementing Bash as a "first order citizen" in Windows, then they're home.
Very neat! This reminds me of lx branded zones in illumos: <a href="https://www.youtube.com/watch?v=TrfD3pC0VSs&list=PLH8r-Scm3-2VmZhZ76tFPAhPOG0pvmjdA&index=6" rel="nofollow">https://www.youtube.com/watch?v=TrfD3pC0VSs&list=PLH8r-Scm3-...</a>
Author should check out this script for an even more minimal setup :)<p><a href="https://gist.github.com/alirobe/7f3b34ad89a159e6daa1" rel="nofollow">https://gist.github.com/alirobe/7f3b34ad89a159e6daa1</a>
Slow file writes - working with WLS I found that integrated ms antivirus really doesn't like my python scripts for some reason. Turning off "ongoing protection" speed up things considerably.
Also, for anyone with a Windows 10 (Anniversary Edition or above) machine that wants to try this, try the quick PowerShell script I wrote some time back that sets this up for you: <a href="https://carlosonunez.wordpress.com/2016/12/01/enable-linux-on-windows-the-fast-way/" rel="nofollow">https://carlosonunez.wordpress.com/2016/12/01/enable-linux-o...</a><p>Also, note that WSL can be disabled via Group Policy, and it is possible that your sysadmins may have done so.
I find that the copy/paste terminal stuff and keyboard shortcuts are much better by using an X-based terminal emulator, e.g. xfce:<p><a href="https://askubuntu.com/a/867696/86161" rel="nofollow">https://askubuntu.com/a/867696/86161</a>
Note that Android emulation (or most kinds of emulation aside from docker) will not work under WSL. Yes, I know I can do Android development under Windows, but I'd prefer Linux for day to day development for everything.
I remember "Lindows" from the good ol' days - I think it ended up being called Linspire, but alas it died back in 2007. It would've been great to give to my grandparents right about now.
I wanted to read this but I honestly don't care about how Windows hacked away a lesser version of a linux machine into their already bloated OS. I'm just going to use linux.
Not sure how WSL is more compelling than using docker containers. I can very easily download, compile and run basically anything I want with minimal friction and way less domain knowledge than managing a VM.<p>Also, this might just be me being snarky, but MS is absolutely losing the battle for developer tooling and that's what's prompted them to try to sway developers back to their ecosystem. If the circumstances were any different, I'm sure they'd be perfectly happy letting us suffer using cygwin and putty.<p>Don't trust a snake.
I love my late 2016 mbp with new keyboard & touchbar that i never use. It's a million times better than the surface pro 4, surface book, dell xps, lenovo, or any other equivalently priced winbox. Granted, I don't game at all or need high performance graphics.
how is WSL any different to WISE ?<p>(a better explination of WISE than I could ever come up with
<a href="https://news.ycombinator.com/item?id=11072143" rel="nofollow">https://news.ycombinator.com/item?id=11072143</a>)<p>it sounds like microsoft up to its old tricks,<p>"look its really easy to develop for windows now you have done that, well now we have dropped that so guess your going to have to only develop for windows now"
...but why do I need this ?<p>Work gives me a Mac which I have a Linux VM inside of to get work done. Personally I have Linux / BSD laptops and BSD servers.<p>Why do I need windows at all ?