
Is WSL actually ready for developers? - carlosbaraza
https://medium.com/@carlosbaraza/is-windows-an-option-for-developers-in-2019-6fafaee8ea03
======
strictnein
The question isn't "Is Windows ...", what he's actually addressing is the
question "Is WSL actually ready for developers?"

Windows is. All of his issues either seem to be from WSL, complaints about
keyboard shortcuts, or not setting up his monitors properly (his claim that
Windows doesn't properly support 4k monitors is a strange one).

To be honest, I don't get why he's installing VS Code on top of WSL, when you
have native windows VS Code. This seems completely unnecessary, but maybe I'm
missing some benefit?

~~~
robrtsql
> To be honest, I don't get why he's installing VS Code on top of WSL, when
> you have native windows VS Code. This seems completely unnecessary, but
> maybe I'm missing some benefit?

When I develop Python with Visual Studio Code, I run it from a virtual
environment. I have auto-formatting enabled, so whenever I save a file, it
will automatically be formatted with the formatter which is installed in my
virtual environment.

I don't know if the same is possible if your virtual environment is in WSL and
your VS Code is in Windows.

~~~
amanzi
There are some integration issues between VS Code on Windows and WSL. (there
are currently 29 open issues on Github for this.)

------
m_mueller
Agree with all of these. But compared to Macs you get a couple of things:

* native and fully supported MS Office

* ecosystem of professional windows apps (atm. I need MS SQL Management Studio as an example)

* much much better connectivity on laptops. bye bye dongle land.

* a wide variety of hardware options to choose from, including ones with great keyboards. even the latest Thinkpads have vastly superior keyboards compared to 2016+ MBP.

* gaming

At the end for me personally, the tradeoff was worth it. I switched last
summer and by now I'm not missing much. Same with iPhone - switched to an S10e
last week and I'm already used to it. There's a couple of things still stuck
in Apple land, such as our photo share - not yet sure what I'll do about that.

I was an Apple customer for 13 years before - at some point I had to cut it
off, it made me too angry.

~~~
CoolGuySteve
Having worked for companies that used both, I actually vastly prefer G-suite
to Office.

Office seems to have stagnated over the years in the corporate environment.
The two main issues are 1) email search is slow and returns weird results and
2) shared document editing is non-existent so people email everything to each
other, things go out of date, no version control, etc.

I’m much happier now using Linux with G-suite than I was using Windows and
Office just because the rest of the developer experience in Linux is so
smooth.

In finance, there’s also something to be said for the culture of a company
where people know to use numerical software like R or Pandas instead of
leaning on Excel. Like over the years I’ve noticed that the kind of person
that insists on sending me Excel spreadsheets is markedly less conscientious.

~~~
smhenderson
I'm not a huge fan and managing it is a bit of a pain but if you use
Sharepoint you can configure it to allow simultaneous document editing. I
believe this was introduced in Sharepoint 2010.

~~~
c256
It exists, but it’s been a pretty terrible experience every time I’ve tried it
(roughly once every 12-15 months since ~2011). GSuite has some occasional
issues arising from connectivity issues, but these also happen to Office365,
and are at least as bad (often worse) than in Google Docs and Sheets (I almost
never use PowerPoint or Slides, so maybe things are different there.)

~~~
smhenderson
I hear you. Concurrent editing is not enabled where I work because the
headaches aren’t worth it.

I honestly don’t have enough experience with GSuite to make a good comparison,
just mentioned Sharepoint because we just recently reopened the conversation
about concurrent editing. Once again we’re passing for now!

------
ChrisRR
I stopped reading at the second line: "As you may all know, developers are a
social tribe that is well known for using MacBooks with stickers on them"

I don't know if this is an American thing or the industry I'm in, but I've
never seen a single developer use a Macbook or have stickers on their laptops.
Is this is a silicon valley, web developer kind of thing?

Edit: Just to clarify, I'm a low-level C developer in the UK. Most everyone I
know uses Windows/Linux and laptops are mostly Dell/HP

~~~
ghaff
I doubt I've been to a conference that's even vaguely oriented towards
developers or even technical folks more broadly in the past 10 years where
Macs with project stickers on them aren't the most common laptop, often by
far. This is true even at conferences where one might expect Windows to be
more common (don't know specifically about Microsoft events but VMWorld, say)
or Linux (Open Source Summit and the like).

This is broadly tech industry I'm talking about but not some narrow Silicon
Valley or web dev space. I'd never believe Macs were only about 10% market
share based on pretty much any of my own anecdotal observations including
walking into a random coffee shop.

~~~
sametmax
Definitely a US thing. In every french conf I go, PC are a majority. In the
french PyCon where I regularly give talks, Linux PC always are.

The diversity is even a problem in workshops because everybody has a different
config and you get weirds errors due to this or that combo.

But yeah, you will see stickers. Lots of them.

~~~
ghaff
I can't say I've taken a survey but Macs certainly don't seem conspicuously
absent at a venue like FOSDEM (Brussels). Of course, that's an international
event even if it's disproportionately European. It's probably fair that the
further you get from US tech companies in general and possibly Silicon Valley
in particular and the closer you get to developers doing open source in their
spare time in non-US countries, the fewer Macs you probably see. If only
because of price.

ADDED: And, of course, if you look around inside a company that mostly runs
their infrastructure on Windows, most of the developers will be running
Windows on Dell/HP/Lenovo/etc. machines.

------
Crinus
I do not think Windows ever stopped being an option for _developers_. Perhaps
web developers prefer to use a Unix-like OS since a lot of the work they do is
running on Unix, but not all developers are web developers and not all web
developers are using a Unix-like OS (FWIW none of the web developers i
personally know are using Linux or macOS).

I think this sort of perspective is a bit of a bubble, considering that
Windows has something around 85-90% desktop/laptop market share and developers
aren't really any sort of special snowflakes to expect anything different
(even if Unix-like OSes are more likely among developers, it will only be a
bias towards them, not something that inverts a 9 out of 10 statistic).

------
pixelpush
_" Windows high DPI screens support sucks. I have a 4k screen and everything
looks very small. There is an Accessibility option to increase the size of the
windows. However, when you do that, most of the applications look very blurry
and it is even more annoying."_

In my opinion, Windows 10 has the best High-DPI support of all systems. It
allows you to change scaling in fine increments on per-display basis. Moving
windows from one display to another scales them pixel-perfect, if supported.
Pretty much all applications I use regularly work fine.

On Linux, the only thing I found to work out reasonably well is 2x scaling. I
can't speak for Mac OS, but in my recollection the non-2x scaling isn't pixel-
perfect.

 _" The text is rendered very poorly in Windows, creating a kind of chromatic
aberration around it."_

This is ClearType sub-pixel rendering and again in my opinion it's the best
font rendering of all platforms, though FreeType on Linux works about as well.
Font Rendering on Mac OS is just blurry by comparison. With Retina displays it
doesn't matter so much anymore, but it was really annoying on the lower res
displays.

Perhaps the author has it misconfigured for his displays and needs to run the
builtin "ClearType Text Tuner" tool.

 _" Microsoft has made great efforts to support the needs of developers and
creators, but as of 2019, I think OSX is still a stronger option for
developers."_

If you implicitly rely on a lot of UNIX-specific stuff, Windows will suck.
That probably won't ever change.

------
robmaister
As someone who develops primarily on Windows and occasionally uses a Mac Mini
to build iOS binaries, I feel vastly less productive when I'm using macOS.
I've also come to realize I use my Home/End keys a lot since my Magic Keyboard
doesn't have them.

It's not that macOS isn't "developer ready", it's that I'm used to the Windows
way of doing things and have those keyboard shortcuts in muscle memory.

The main reason I like Windows as a development environment is Visual Studio.
I wouldn't trade my data breakpoints, variable watch list, memory views, and
Intellisense for anything. Then again I'm working on games, i.e. multi-million
line C++ projects that run on 4+ platforms. Most of that stuff is unnecessary
in other situations.

Also good luck getting any of the console devkits/SDKs to run on anything but
Windows.

~~~
nnq
> Home/End keys

On MacOS it's good to get used with unixy/emacsy shortcuts like Ctr-a/e for
Home/End. Fn+Left/Right works too (and Fn+Left has a slightly different
behaviour). Basically if you love Linux and unixy tools you can get productive
on a Mac in no time...

The developers who love Macs are the ones who love the "unix spirit" but for
whatever particular reasons can't do all their work on a Linux desktop, if
you're not into that then stick to Windows :P

------
orev
It has always bothered me that developers insist on using Macs for
development. Sure, it’s Unix, but how many servers are running macOS? Zero.

You need to develop on a platform that matches what’s running in production.
Production almost always uses some form of Linux, so you at least need a local
VM running Linux. Then it doesn’t matter if you have Windows or Mac as your
main OS, and you can use the tools you need in those platforms, but otherwise
actual builds and testing should be happening on the VM.

~~~
jmull
If it doesn't matter whether developers are running MacOS or Windows, why does
it bother you that some developers prefer Macs?

Isn't completely fine?

~~~
orev
You are mischaracterizing the discussion. The builds and testing should be
done in an environment that matches production, and macOS does not match any
production server environment available today. Developing on Macs is
frequently done on the MacOS itself because it’s Unix so people think it’s
close enough. Once you use a VM for the builds and testing, _then_ it doesn’t
matter.

------
Areading314
I develop on windows using wsl and jet brains suite, and I've never been more
productive. In general I find windows to have much better keyboard shortcuts
than mac, because of universal alt key menu navigation. I've also learned over
time that the more you can script away your cli workflows, the less RSI you'll
develop. Plus the hardware is much cheaper.

------
davidhyde
I find Windows to be more and more hostile towards development these days.
Windows 10 may have a very impressive kernel but the UI (aka Explorer) is a
nightmare of "simplified" screens. Something like UI spaghetti.

Windows search and windows defender constantly spin your laptop cpu fan to max
speeds because, you know, nobody minds a noisy laptop that they are not
actively using.

Windows updates are constant, slow, often fail altogether and completely out
of your control. Your machine may reboot at any time so good luck with that
long running task. It's like they shipped a swimming pool that was actually a
sieve and they are madly patching it every day.

Windows doesn’t respect the users desire to put the laptop to "Sleep". It will
wake up at any time and often just stay awake and drain the battery.

Windows has also become some sort of hybrid advertising and tracking device
which you can, admittedly, disable although some things like the search
listening service Cortana really does not like being disabled.

Not everything is doom and gloom however. The virtual machine engine HyperV is
extremely fast and easy to manage making things like Android development is a
pleasure. Visual studio keeps getting better too.

------
shawnz
> The text is rendered very poorly in Windows, creating a kind of chromatic
> aberration around it. Coming from an Apple MacBook, this turned out to be
> quite annoying, because I didn’t know if my design looked bad or if it was
> just Windows messing up with it.

I think the OP is describing an intentional feature (subpixel antialiasing).
Mac OS Mojave disabled this feature by default because you don't need
antialiasing if your screen resolution is very high. The chromatic aberration
is ugly, granted, but the technique allows you to get a higher effective
horizontal resolution which ultimately improves readability on low-resolution
displays. And if you don't need it, well, it can be disabled on Windows too:
[https://www.isunshare.com/windows-10/turn-off-or-on-clear-
ty...](https://www.isunshare.com/windows-10/turn-off-or-on-clear-type-text-in-
windows-10.html)

------
gfiorav
I use WSL for NodeJS professionally, and I can't find any troubles. It was
hard to get to the point were my terminal was easy to look at, but that's it.

There's also a great community of Windows employees bettering Windows Console,
with honesty and humbly (they even created a themer that reads iTerm2 style
files).

With a bit of patience, you can get it to the point where you never look back.

Also, very important: my employer disables real-time protection, which
otherwise would make WSL unbearably slow. Make sure you test on an old PC
before committing fully to it.

------
hunta2097
IMO there is a slight history of people wanting to "look the part" by having a
Mac. This seems to be changing though, my company has shifted to XPS-15s
running Ubuntu and people seem to be loving it.

If your company relies on MS Office (we use G-Suite and Confluence) you might
not have such an enjoyable time.

------
GnarfGnarf
The article refers specifically to Web development.

I manage & develop a Win32 desktop app (because that's what my customers use).
I am converting to Qt so I can also run on macOS.

I cannot imagine why I would ever consider an option that does not run on the
Mac, such as WPF or WinRT.

(My customers hate Parallels, VMWare Fusion and Wine).

~~~
Const-me
> I cannot imagine why I would ever consider an option that does not run on
> the Mac, such as WPF or WinRT.

For some applications cross-platform frameworks are good enough, Electron has
become quite popular.

For others, native frameworks just work better. Works both ways, same for
Cocoa. For example, it’s hard to integrate Direct3D or Metal into QT.

------
dariusj18
I used to use a mac, but moved to Windows when it became obvious that Apple
isn't making top of the line laptops anymore. My old MBP was one of the best
computers out and stayed at the top, spec wise, for a while. Eventually I
needed more, but when I looked at what I could get for the money, Macbook Pros
were ridiculous.

Moving to Windows had its hurdles, when an program doesn't support font
scaling it's a pain in the ass, I bought a non-4k monitor just to make sure I
would always have the ability to use apps that broke on my 4k.

WSL is amazing and easy to use. Mostly I found I missed the Windows ecosystem.
OSX has a few nice programs, but does not compare to the options available for
Windows.

------
avryhof
Just moved from Linux to Windows at work.

It's not WSL I find myself using to have a good shell experience. It's
MinGW/mintty. I even got a plugin to wrap it around WSL, since the Windows
console experience is pretty painful. I miss my middle-click pasting and nice
color schemes.

I just wish I could setup the path translations in PyCharm to use the same
mapping. Things work, (and not too bad) but I just hate having to rewrite all
of the paths in my environmental variables.

My other gripe is with the Cisco VPN client running all internet traffic
through it, rather than having OpenConnect sort it out ahead of time.... but
that's not really a Windows issue.

------
scarpino
My company doesn't allow Linux machines, and I prefer a Unix-like environment
for the work we do, so it's Mac for me. I could do most of what I need on
Windows, but I feel like doing my work on Windows takes ten more steps than it
does on the Mac.

I prefer using Windows at home, and I _can_ write software on it just fine.

------
dwags
I've got a pc and mac and I web develop on both -- Normalized hotkeys in
vscode and I use git bash. Have to hop in to cmd for some very specific things
but I could really care less which machine i'm on if i'm just developing

------
modzu
yes, we're in a more cross-platform world now than ever before!! you have WSL
and git bash, intellij tools are class-leading, etc. that said, if you're not
a gamer, why not linux?

EDIT: oops, thought this was an ask-hn.

------
smrtinsert
I don't understand the Mac dominance. The last few updates on MacOS have
bricked so many coworkers machines. Unbelievable.

Font rendering, yeah ok, still seems to be nicer, literally that's the only
advantage I see.

------
austincheney
I typically write Node apps. My build step, test cycles, and application
commands all execute identically on Windows and OSX.

------
nnq
As someone who kept switching Window -> Linux -> Windows -> Linux -> finally
Mac, I can say that _a MacBook is a breath of fresh productive air for anyone
developing software intended to run on a Linux server somewhere but still
wishing to have photo /video-editing and ms office software at hand:_

\- all Linux stuff you'd want is available and "just works"

\- default Terminal is amazing and enough for me and most (iTerm 2 is there
for whoever wants more) you'll get a sane Linux-like experience where copy
paste just works in the terminal etc. (not the hellish terminal experiences
you'd have on Windows even with smth like WSL) - also, even things like the
touchbar play well with Terminal, you can open a man page from touchbar,
change terminal bg color shade from TB to mark a production server ssh
terminal tab as "dangerous" with a shade of red etc. ...lots of "small
touches" that matter a lot

\- mac keyboard is amazing for developers (you'd get the wrong impression that
it's bad for developers from people complaining about the touchbar upgrade,
but disregard that):

\-- having Cmd and Ctrl keys be different means that you can have all you
unixy/emacsy ctrl-p/n/b/f/a/e just work in all your desktop GUI apps too (the
feel of having ctrl-a/e work in Chrome, VSCode, and other "regular apps" is
_amazing!_ ), and the same time you can Cmd+C/V copy/paste in the terminal
same as in other app - _it 's hard to put in word the nice warm fuzzy feel
this good mixing of unixy-world with GUI-world gives you!_ (it's the opposite
of Windows where the "two paradigms" feel like locked in a cold war with each
other and you always have to switch your brain when switching tools)

\-- Fn key is in the right correct place you'd expect it, bottom left, _just
like on the Thinkpads you know and love!_

\-- OS settings allow easily remapping things like CapsLock -> Ctrl that lots
of people will do (if you're more into Vim than Emacs you'll do CapsLock ->
Esc, that's in standard settings too)

\- multiple virtual desktops + external monitors etc. works productive and
intuitively: if you love Gnome, you'll likely love MacOS too! (Also, tools
like Divvy give you some features of tiling window managers if you're into
this, and they also enable windows-like split-left/right shortcuts. Btw,
there's an equivalent tool for Gnome/Gnome-based-Unity on Linux side too).

I'd urge _all_ developers coding for Linux or Android to leave Windows for a
while and try either (1) Linux on a Thinkpad (preferably a Gnome-based desktop
if you're a developer new to Linux: Ubuntu, Pop!_OS, Fedora etc.) or (2) a
MacBook: both experiences are slightly annoying to get used to at first, but
dramatically increase your "feel good" factor and productivity! Windows may
seem enticing hardware-wise (SurfaceBooks are amazing with their nvidia gpus
etc.), but unless you write software targeting the Ms ecosystem, they are
horrible machines for both developers and creative people imho... Window
should be _your last option in 2019 if you 're a developer!_

