
Windows for Linux Nerds - geostyx
https://blog.jessfraz.com/post/windows-for-linux-nerds/
======
blunte
Want to _really_ impress us, Microsoft? Give us a Windows Subsystem for Linux.

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.

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.

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.

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.

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.

~~~
monkmartinez
Why not dual boot linux and windows 10 or use a Linux VM? It takes like 10-15
seconds to reboot a machine these days. I am about to take the plunge toward a
ThinkPad after many years with OSX (I haven't upgraded my 2011 17" to macOS).

My plan is to try dual booting linux and/or using a Linux VM. I think the
biggest hurdle will be changing my mindset. That is, looking for the OSX
version of whatever it is I am looking for. Wrapping my mind around Linux...
just Linux for as much as possible.

I am looking forward to using _just_ Linux as time goes on. I need to ween
myself off of a few things before I can make the switch completely... I did it
when I went from win to mac.

~~~
latencyloser
I'm in a similar predicament to OP. I prefer Linux in most cases, it's what
I'm used to. But I need or would vastly prefer one or the other depending on
what I'm doing. A VM is fine for just checking outlook..or using Skype for
chat and things like that. But the second I need to use an IDE for Windows
development, it's too slow to bear. Having better interchangeability between
these two would make my life significantly better. Whether that be a stronger
Linux subsystem for Windows, or a Windows subsystem for Linux.

Of course, I work at Microsoft. That being said, many devs I see are open to
or enjoy using Linux--myself included. I think, and hope, we'll see continued
growth in support for it. Though, I have little to no influence over such
things.

~~~
discordance
How is the attitude/atmosphere internally at Microsoft towards people using a
competing OS (Mac or Linux).

Does the group working on Windows OS feel alienated at all?

~~~
latencyloser
In my experience, pretty positive. I see Macs around campus frequently. In my
team, people mostly use Windows, so there's definitely no alienation there.
However, when people notice I mostly use Linux, I usually receive a chuckle
for not using Windows--either out of irony or since we are highly encouraged
to dogfood everything here. But that's usually the last I hear of it, so I
don't think anyone sees anything wrong with it.

------
userbinator
_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._

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:
[https://news.ycombinator.com/item?id=12980380](https://news.ycombinator.com/item?id=12980380)

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 _two_ files; Windows and Linux
can essentially use the same files simultaneously.

Going in the other direction, WINE also allows Windows apps to work directly
with the same files as Linux ones.

One then wonders, when a _networked_ filesystem with all its complexity can be
used nearly effortlessly across different OSes running on _completely
different machines_ , 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!?

~~~
jstarks
I'm sorry that we don't provide a way to access the Linux portion of the file
system directly from Windows yet. It's annoying, and we are working to improve
it.

For many use cases it suffices to symlink a Windows directory (e.g.
/mnt/c/Users/myuser) into your WSL $HOME directory somewhere and do your
source work, builds, etc. in that path. This breaks down if you need certain
features that aren't supported on these files yet (e.g. chmod), though.

I assure you that we find this annoying too and are working toward a better
solution.

~~~
unabridged
I know this probably goes well beyond the scope of your department but here is
my wishlist that would convince me to buy windows:

1\. Support for ZFS (and future open source filesystems as they appear)

2\. The ability to control every service running, and good honest descriptions
of what each service does. The ability to control all the servers my computer
is connecting to and a transparent view of the information they are sending

3\. Ability to turn off having to use Microsoft Accounts, store, etc. Leave it
on by default to make your money but offer a developer version/option.

~~~
monkmartinez
What do you use now?

~~~
unabridged
win7 & debian. I don't ever plan on going to win10, so my next computer will
be full linux.

------
tootie
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.

~~~
thinkxl
More snarky than usual, i don't know why. "why not just" or "just use" kind of
comments that you see more in reddit.

Even someone recommended an Electron alternative, on HN! the #1 Electron hater
community.

Interesting.

~~~
rbanffy
It's not snark, or feeling threatened. It's just that lots of people (me
included) fail to see the point of running Windows at all (unless you are
developing _for_ Windows, in which case it's foolish not to). If you want a
Linux experience, use Linux. If you want polished applications and a Unix
experience, get a Mac. Windows has somewhat polished apps (with very lax UI
consistency rules), a convoluted overall experience (ever tried to debug a
wireless connection?) and a Unix-like environment (and it had one from the
start) both with Cygwin and WSL.

IMHO, WSL is Microsoft's attempt to compete with Mac, not Linux, by adding a
Unix-like environment to Windows. I already did that with Cygwin, more than a
decade ago.

~~~
Jaruzel
I am not a pro-developer, but I do enjoy programming and all its associated
activities and by trade I'm a Windows Enterprise Architect, as such I need to
run Windows as my primary machine(s), but looking a the list of VMs I have
running on my Hyper-V servers, I have an equal smattering of Windows Servers
and Linux Servers.

So it's purely horses-for-courses. If my career had been built up designing
Linux solutions then my viewpoint would be the complete opposite. I really
don't understand the hate that Windows gets. Yes, it's not open-source. Yes,
it's controlled by a massive organisation. Yes, it can cost quite a lot if you
want to develop on it... but you know what, a lot of people (and
organisations) don't care. They happily run Windows because they always have,
it comes with support options, and it kinda always works (within reason) for
what they need to do with it.

Telling people to 'just run Linux' or 'Windows is Better!' is akin to pushing
your religion or your choice of diet at everyone you meet. If are an atheist
and have issues with organised religion, or if you are an omnivore and get
irritated every time someone says 'I'm Vegan, you should be too!' then maybe,
just maybe, it's time to rethink your position with regard to the OS wars.

\--

P.S. The Amiga was better than the Atari ST, and the Commodore 64 pwned the ZX
Spectrum. /s

~~~
rbanffy
What would be, from your point-of-view, the key advantages of working on
Windows?

> P.S. The Amiga was better than the Atari ST, and the Commodore 64 pwned the
> ZX Spectrum. /s

The ST was a much simpler and more elegant machine. The Amiga was much more
powerful, but too video-centric.

The C64 had better graphics and sound than the Spectrum (and a much nicer
palette), but the Atari 8-bit computers had the best graphics of that
generation by far. It's actually fun (but not surprising) to notice the Amiga
is more a descendant of the 8-bit Ataris and the ST looks a lot like a 32-bit
C-64.

------
eksemplar
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.

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.

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.

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.

~~~
staticelf
Funny because I used to be a "Linux developer", if there is such a thing, for
a long time. But nowadays I consider myself a developer who has invested my
time and energy into the Microsoft ecosystem.

Why? Because never before have I felt so productive on Windows and together
with my dissatisfaction with desktop linux it was an easy choice.

With .NET Core, the console actually gets usable and today Powershell is
simply a fantastic tool. Stuff that used to be a pain to setup is already
there when you install Visual Studio. Things like git used to be hard to have
to handle (I prefer the console) but now it is no longer true. I don't even
run git bash.

If you want to run stuff that usually is hard/annoying to run on Windows, for
example Ruby or PHP it is today a breeze with the linux subsystem.

I use .NET nowadays and together with Azure it's just unbeatable IMO. I get
start a new project and have it deployed withing minutes complete with a
database. It's super easy to setup git push deploy and you can deploy from the
IDE as well. Node is setup with a click, it feels like it's almost better
implemented on Windows than on linux. With both VS Code and the normal VS,
setting up stuff like task runners or to compile typescript is now simpler
than ever.

I don't really know what devops you're talking about because I think .NET Core
is much easier to run in production and you can still run it on the .NET
Framework if you want that.

~~~
eksemplar
Try pushing your .net core project to your iis and see what happens.

I mean, it's not like it's impossible to get a .core project to run behind
your iis, it's just not easy.

Then try doing something like the EU standards for SAML authentication which
is the easiest thing in the world in a lot of other environments yet is really
terrible in .net.

If Azure was my production environment I probably wouldn't be unhappy either.

------
bactrian
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.

Microsoft is losing on mobile, desktop, servers, and IoT. Their entire
ecosystem is a technological deadend.

If you're a Linux Nerd, you should probably keep using Linux if you care about
having a good career going forward.

~~~
santoshalper
Linux still sucks shit on the Desktop. I try it every year, and every year it
sucks very slightly less. It goes beyond drivers and application
compatibility, Linux distros are ugly and the people making them have no
taste.

The Desktop/Laptop market is not nearly as important as it used to be, but
within that space, Microsoft's dominance is about as strong as ever. Apple
might have been able to take a dent out of it if they were committed, but they
decided the obscene margins on iPhones were more important (and I can't
entirely blame them).

Outside of admins and linux developers, Linux has no chance on PCs. Every year
that passes convinces me more of this. We are going on the 20th "Year of Linux
on the Desktop". If they were going to do it, they'd have done it by now.

~~~
newman8r
Check out
[https://www.reddit.com/r/unixporn/](https://www.reddit.com/r/unixporn/)

I think the linux desktop user experience has improved exponentially over the
last few years, you should give it another shot.

~~~
jcastro
Nice UIs won't fix people's broadcom wireless cards.

~~~
mixedCase
Responding snark with snark: Then don't use them.

Most wireless cards out there work just fine. When I had to use a laptop with
a Broadcom chip for uni I used my Android phone as tethering (charging it as a
bonus) and the guy sitting next to me just used a dongle smaller than his
thumb.

~~~
jcastro
Most people (even developers) aren't willing to open up their laptop to
replace their laptop wifi cards or to have to use dongles to get on their
wireless or to play endless hardware roulette.

~~~
cma
OSX doesn't work on all windows-only hardware either. You have to buy
something with Linux support.

------
nickjj
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.

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:
[https://nickjanetakis.com/blog/create-an-awesome-linux-
devel...](https://nickjanetakis.com/blog/create-an-awesome-linux-development-
environment-in-windows-with-vmware)

I've been using this set up for many years.

The pros of the above method are:

\- It's free

\- It's as fast as native Linux

\- It's actually Linux from end to end

\- You get independent floating Linux windows (graphical apps work)

\- You can still run your Windows apps

\- Works flawlessly with dual monitors

\- No need to dual boot

\- Takes about 15-20 minutes to set up your first time

~~~
vegbrasil
Kinda sad to use old VMware and old Xubuntu...

~~~
nickjj
No need to be sad.

Before I moved to Windows 10 I routinely had 150+ day uptimes. The old VMWare
is rock solid and runs really fast.

Having to use an older version of xubuntu does kind of stink, but I'm pretty
sure if you really cared you could use 16.04, but just downgrade xfce to use
14.04's version.

It's not something I bothered with because visually I'm happy with the way
things look, using custom PPAs are easy and I use Docker for various
programming language runtimes and services.

------
cypher543
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.

~~~
wvenable
The Pico Process subsystem isn't fully baked yet -- in earlier talks Microsoft
mentioned that while the API itself is pretty generic but the current
implementation is just hacked together to support the Linux subsystem for now.

------
dhruvb14
For anyone wanting to automate using boxstarter and chocolatey without finding
all the packages manually I created this GUI about a year back.

It has a search bar to search chocolatey's repository automatically.

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.

Was a quick 2-3 hour job so it may have bugs

[http://dhruvb14.github.io](http://dhruvb14.github.io)

------
rbanffy
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.

~~~
crowbahr
"a polished app environment"

If you're meaning XCode then no.

XCode is never going to draw in developers... or at least no developer I've
ever talked to liked XCode.

I changed from iOS to Android development because I couldn't stand XCode
anymore. Constant crashing, walled garden bullshit where I couldn't even get
plugins running every time they updated, inexplicable code changes to my apps
which were un-diagnosable from within xcode because they obfuscate away all
layout files... It was nightmarish. I spent more time swearing at my computer
than I did coding.

~~~
rbanffy
I'm talking about iTunes, iWork, all IDEs that count with the exception of
Visual Studio, Skype, the built-in apps and even Microsoft Office if you are
so inclined. I've done some development in ObjC using Xcode and didn't notice
the problems you mention. Must be luck.

And one thing that others never replicated is the quality of the laptops. I've
had Dell XPSs and Thinkpads and the MacBook Pro is still my favourite laptop.

------
nunez
Congrats, Jess!

LXSS is amazing, but I had to stop using it because mounted volumes in Docker
straight up don't work within it.

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.

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.

------
dis-sys
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.

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.

Windows for Linux Nerds? Microsoft is not ready for that, Microsoft never had
the intention to do.

~~~
jmsmistral
Hear hear!!

------
Wehrdo
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.

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.

------
iammyIP
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.

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.

There is simply no going back from freedom to corpdom. It's one way only. You
need to understand this.

------
partycoder
It's hard for Windows to realistically compete with Linux as a developer
environment.

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.

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.

~~~
romanovcode
> It's hard for Windows to realistically compete with Linux as a developer
> environment.

That's the whole point of WSL

~~~
partycoder
The WSL is useful if you need Windows as a host system. That's not a universal
need. Most of the software I use supports Linux.

Then there's is Wine and finally virtualization. I haven't needed the latter
in years.

------
pbnjay
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.

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.

~~~
kyriakos
you no longer need Windows Insider preview for WSOL - its part of the
creator's update. still has a beta tag but its available without having to use
a full beta OS.

~~~
tacticus
When did this change? as my home machine required me to move to insiders for
WSL just on the weekend. (also the volume of spam they are sending to me now
:|)

~~~
detaro
Creators update came out back in April. I think you need the Insiders Program
right now to pick which Linux distro you want to install, normal way only gets
you Ubuntu?

------
seiferteric
> Imagine a Linux setup where you can launch PowerPoint without a VM

Wine?

~~~
api_or_ipa
Why not use a browser based presentation app like Google Slides and not deal
with stupid proprietary software that won't run on anything but a windows or
mac machine?

~~~
lottin
Exactly. Using non-portable formats when there are portable alternatives is
simply stupid.

~~~
pjmlp
Surely, because Google Docs runs on my computer without any part of that
closed source behind Google virtual walls.

------
symlinkk
I totally agree with his points about how terrible the Windows console is.

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.

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?

~~~
AlfeG
As a Windows developer for last year I can see very big leap in terminal
usability. Nowadays you can reset it as you Wish. Hotkeys works as expected.
Muse integration much much better. Try latest Insider builds. Console nowadays
mush better and faster then ever in Windows

------
chx
Here are my notes [https://github.com/chx/chx.github.io/wiki/How-I-set-up-my-
Wi...](https://github.com/chx/chx.github.io/wiki/How-I-set-up-my-
Windows-10-\(coming-from-Linux\)) on setting up W10 after using Linux for
almost a quarter century.

------
domenukk
Install hyper terminal, it is a lot more bearable than the ugly default
console emulation on Windows.

~~~
notgood
Conemu is where is at (for me at least), along with clink you have a lot of
niceties bash has (reverse history search, etc)

~~~
sp332
I've been using the WSL bash inside Conemu. I pretty much only use it for
SSH'ing to other boxes, but I spend a lot of time in it and it's the best
Windows setup I've found.

------
tkubacki
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)

~~~
romanovcode
Docker works pretty great with Windows nowadays using Hyper-V.

Because of that your point can be reversed: If you work with Docker there is
no point in switching from Windows to Linux.

~~~
tkubacki
Windows works ok as virtual box/vmware guest as well. I spent few years as
.net Dev this way and was more than happy with this solution. You need beefy
machine though.

Not using windows as primary OS limits risk related to viruses, malware. Also
moving to new hardware is just copy vm files (windows provision for Dev used
to take a lot of time)

------
shmerl
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.

~~~
will_hughes
I'm uncertain if you're asking "Why use WSL vs VM" or "Why use WSL/Linux VM if
you can run Linux directly".

For the first: Unified filesystem, memory, processor resources. You don't need
to have the extra overhead of running a VM.

For the second: The reason to run Windows is the same as the reason to run
MacOS - so you can run apps for those platforms. If you don't need to do that,
then obviously there's little/no point in doing so.

~~~
shmerl
Well, for running Windows applications on Linux we have Wine already. I'm not
saying WSL isn't an interesting thing, but if I'd had such choice, I would
have run Linux natively first, in VM as second best option, and WSL as last
resort.

~~~
will_hughes
Sure, those are your personal preferences, and in your current specific
needs/wants.

You did ask why, though, and you've been given a few examples of why someone
might choose WSL over VMs.

------
donquichotte
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.

Edit: apparently they added it in May [1], but I have no access to the newest
update.

[1]
[https://blogs.msdn.microsoft.com/commandline/2017/05/10/bash...](https://blogs.msdn.microsoft.com/commandline/2017/05/10/bashwsl-
insiders-build-now-supports-usbserial-comms-and-mounting-removable-storage-
network-shares/)

------
mikeytown2
I used to run [http://www.andlinux.org/](http://www.andlinux.org/) but with no
64bit support it's dead now. This was how to run Linux on windows.

------
malkia
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
([http://flutter.org](http://flutter.org)) on it... Currently it gets stuck in
the "pub upgrade" (the dart language packaging mechanism), as it runs several
tar's to unpack packages.

If you just follow the simple:

bash.exe...:

    
    
      $ mkdir p; cd p
    
      $ git clone https://github.com/flutter/flutter
    
      $ cd bin
    
      $ ./flutter doctor
    

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.

Still pretty excited about the development!

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.

------
kalleth
I've recently (~1y) moved back to Windows as a primary 'desktop' OS for
development. By day I'm a rails developer.

I've worked extensively on windows (back in PHP days), Linux (when I was doing
HPC software) and Mac (most of my rails career...).

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.

It's also closer to prod environments, which is a theoretical argument against
OSX.

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.

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.

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.

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.

------
makmanalp
Very neat! This reminds me of lx branded zones in illumos:
[https://www.youtube.com/watch?v=TrfD3pC0VSs&list=PLH8r-Scm3-...](https://www.youtube.com/watch?v=TrfD3pC0VSs&list=PLH8r-Scm3-2VmZhZ76tFPAhPOG0pvmjdA&index=6)

~~~
mwcampbell
Indeed. I wonder if Microsoft will eventually use their Linux emulation to
accomplish the same thing that motivated Joyent to work on LX-branded zones,
namely running Linux-based Docker containers in production on a non-Linux
server OS (Windows in this case) without any VM overhead.

~~~
tda
I believe this is already the case with hyper-v, is it not?

~~~
makmanalp
I thought hyper-v would be more for the case of full-blown emulation (I'm
creating a soft-CPU and hardware, a la VMWare) versus this is more like linux
emulation - I have some windows software that can parse and run ELF binaries,
and some layer that converts calls to the linux kernel into windows kernel
stuff.

------
dingle_thunk
Author should check out this script for an even more minimal setup :)

[https://gist.github.com/alirobe/7f3b34ad89a159e6daa1](https://gist.github.com/alirobe/7f3b34ad89a159e6daa1)

~~~
lostmsu
That gist is full of insecure shit.

~~~
electricEmu
Hi! Your comment is very vague and damning considering it contains no
specifics.

The gist is served over https so that's secure. It's well documented so it's
not really doing anything unintended so there's no problems there. It requires
admin privileges, but so would similar changes in other operating systems.

How specifically is the gist full of insecure shit?

~~~
lostmsu
I mean insecure configurations, like turning off automatic updates. For
instance, unconditionally marking current network as private.

~~~
dingle_thunk
It turns off Automatic reboots, not Automatic updates.

------
iwintermute
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.

------
nunez
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: [https://carlosonunez.wordpress.com/2016/12/01/enable-
linux-o...](https://carlosonunez.wordpress.com/2016/12/01/enable-linux-on-
windows-the-fast-way/)

Also, note that WSL can be disabled via Group Policy, and it is possible that
your sysadmins may have done so.

------
galaxyLogic
Linux on Windows 10 seems like a good thing. I plan to use it for testing a
Node.js application developed on Windows

~~~
nathas
You're probably going to have a bad time. Some of the lower-level network APIs
are pretty buggy last time I checked.

~~~
jstarks
We've made a lot of improvements in the last few months of insider builds. If
there are still blocking issues, I'd definitely be interested in hearing about
them.

------
explodingcamera
Weird I've been cloning git repos to an external NTFS drive mounted in /mnt
and never had any issues.

------
mizzao
I find that the copy/paste terminal stuff and keyboard shortcuts are much
better by using an X-based terminal emulator, e.g. xfce:

[https://askubuntu.com/a/867696/86161](https://askubuntu.com/a/867696/86161)

------
jadbox
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.

------
yanni79
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.

------
free_everybody
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.

------
api_or_ipa
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.

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.

Don't trust a snake.

~~~
sz4kerto
> Not sure how WSL is more compelling than using docker containers.

It takes much less resources and file sharing is easier. You don't need to run
a VM.

------
jadbox
i3 is simply amazing. I'd give up my Windows Desktop in an instant if I could
use i3 to start Window apps within the manager.

~~~
lisnake
Since you can start windows apps from WSL console, I bet something can be
hacked to launch them from i3, though i haven't tried myself

~~~
thomastjeffery
i3 can only be run in a window that emulates Xorg. So, no.

------
all_blue_chucks
All the linux commands I need I can find in windows-native format using
scoop.sh. No filesystem trickery needed.

------
lurker12390879
Drawbridge is what powers SQL server for linux and is a full windows subsystem
but is locked down.

------
arrty88
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.

------
thomastjeffery
An i3 user who is happy with WSL? I think you are in denial, my friend.

------
hacking_again
Why not just use Cygwin?

~~~
interlocutor
Cygwin cannot run Linux executables. Cygwin .exe's are specifically compiled
for Windows.

~~~
seiferteric
Cygwin is essentially a distribution, so like any distribution their packages
are recompiled for that specific distribution and available in their repo.
It's not too often you download a random binary for Linux and run it, but that
case I concede.

~~~
notgood
Very often; every ruby/node/etc library that has at least one dependency that
needs compilation ("native-extensions") can now run on Windows 10 without
issues.

~~~
seiferteric
Huh? If it was compiling the native extension, then it would work in cygwin
also?

~~~
notgood
Just as an exercise; try to compile latest Node on cygwin and you will be
welcomed by a ton of errors. Then try to compile it on linux subsystem (no
issues arise)

------
jlebrech
how about directX for wine?

------
megamindbrian
What does this mean for Cygwin?

~~~
roller
Cygwin still seems to be the go-to for any POSIX apps that need to interact
with the actual Windows environment. For example, wslbridge[1] that connects
wsltty[2] to WSL compiles the frontend component under cygwin.

[1]: [https://github.com/mintty/wsltty](https://github.com/mintty/wsltty) [2]:
[https://github.com/rprichard/wslbridge](https://github.com/rprichard/wslbridge)

------
Keloran
how is WSL any different to WISE ?

(a better explination of WISE than I could ever come up with
[https://news.ycombinator.com/item?id=11072143](https://news.ycombinator.com/item?id=11072143))

it sounds like microsoft up to its old tricks,

"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"

~~~
WorldMaker
WSL uses the "real" userland of the distro of your choice. If you are running
Ubuntu on it, you are using the same .debs and ELF binaries inside those .debs
that "real" Ubuntu is using. If for whatever reason the Windows team decided
to "cut bait" and kill WSL, you can quickly spin up an Ubuntu VM or reimage to
Ubuntu and continue to be productive.

If there is an opportunity for a Trojan horse here, it's for Linux developers
to encourage young geeks to install Ubuntu from the Windows Store and start
learning Linux commands in WSL and maybe from there eventually baby step to
running Linux full time. (That said, it's not like having BSD terminals
available in macOS has encouraged a lot of people to move out of macOS and
directly to Linux. Still seems to trend the opposite direction, if the laptops
at developer conferences are any indication.)

------
geggam
...but why do I need this ?

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.

Why do I need windows at all ?

