
Ask HN: How is Windows for developers nowadays? - CJefferson
I don&#x27;t want any of the new Macbooks, but every time I have tried to run Linux on a laptop I&#x27;ve had nothing but pain. Therefore I&#x27;m tempted to use Windows as my primary OS.<p>I alternate between doing POSIX and Windows development, so I&#x27;m tempted to run Windows 10, with one of &quot;Bash on Windows&quot;, cygwin, or a Linux VM.<p>Is anyone using Windows as their daily machine, while doing POSIX coding? How does it work out?
======
munchbunny
If you're asking about being able to do the same things on Windows as you
could on Linux, then it takes a bunch of work to set up, and has some
substantial holes in it. You basically have three options: cygwin, Linux VM,
or the new Linux subsystem
([https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux))

I use a mix of cygwin and "native" tools depending on whether the language has
multi-platform support. It's good enough for most purposes (Python stuff
mostly), but not so good if you want POSIX threads in your C++ code, and so
on.

But, for example, if you're trying to do game programming, arguably the
tooling on Windows is substantially better.

Basically, it's maybe 70% good and highly depends on what tools you need.

------
TurboHaskal
WSL is okay for basic needs (I can do Go coding with the ACME editor just
fine) but you will find it lacking in the long run. There are some bugs here
and there, the need to build tons of programs from source (the apt library is
quite outdated) and there are tons of missing libraries. Incredibly promising
but I wouldn't recommend it in its current state for professional work.

I honestly think Windows is great for development, but for that you need to
embrace the whole OS and live in .NET land. If you need POSIX and commercial
applications such as Office, Skype and Adobe you're currently better off with
macOS.

~~~
Amezarak
> (the apt library is quite outdated)

It's exactly the same as that of Ubuntu, is it not?

~~~
TurboHaskal
It is 14.04 LTS and packages are missing.

~~~
Amezarak
What packages/types of packages? I haven't noticed anything so far, but I've
mostly installed Python related stuff and various libraries.

------
BjoernKW
The machines I use for development usually run some sort of UNIX or UNIX-like
OS (i.e. Linux). Sometimes I have to use Windows as well though for
development.

From direct comparison I can tell that Windows still sucks for general-purpose
software development (if you develop Windows software you'll be fine,
obviously):

Installing, maintaining and running common development tools takes
considerably more effort. Many of the tools used in software development come
from a UNIX background that often just doesn't quite fit the Windows way of
doing things. The Windows command line - though greatly improved in recent
years - is still playing catch-up with its UNIX equivalents.

Basically, what one commonly ends up with to make Windows usable for
development at all is installing some sort of UNIX environment (Cygwin, Git
Bash etc.).

------
ohgh1ieD
What do you mean by POSIX development ?

Yea well, I work for a .NET company and therefore I'm on windows on a daily
basis.

It depends a lot on, what kind of development I'm doing, for example if I work
in Visual Studio on some C# code everything is just fine, integration between
SQL-Server/VS/ASP.NET-MVC is just great but when I have to work on web
projects where npm is involved or commandline in general, it's a nightmare.

If found that the only useable shell on Windows is babun[0]. Executing Ruby or
Python scripts is also not good at all and therefore I just use powershell for
glue scripts.

[0] [https://babun.github.io](https://babun.github.io)

~~~
CJefferson
By POSIX, I mean standard command line POSIX APIs. In practice, things that
run on Mac / Linux / BSDs. They often don't build on Windows due to a lack of
pthreads, or fork. In some cases, I'd like to make these apps truely windows
compatible (unless Bash on Windows gets so good we can just ask people to
install that).

I hadn't heard of babun. It looks like a much neater cygwin distro, I will
give it a try.

------
Meph504
To be honest, no operating system is perfect for both POSIX and Windows
development at the same time. But windows is very workable in a lot of
situations, and when it's not, I run a VM. I don't believe that you will be
able to get around that (without dual booting, Remoting, etc...)

There are just a lot of development tool sets that aren't based around working
in windows. In that same respect though .net development is improving on *nix,
it's clearly not something you want to do for production yet.

------
ddorian43
It sucks for python for example. Currently I either use a vm or linux.

~~~
kennell
Care to elaborate what some of the pain points are?

~~~
bckygldstn
The lack of an open Fortran compiler makes installing a lot of scientific
packages difficult.

~~~
AlexeyBrin
You mean gfortran ? It works just fine on Windows, you can find a binary if
you install MinGW or the one provided by equation.com.

------
eb0la
Sadly Windows is still a second class citizen when you are developing for Big
Data.

There are lots of Java stuff that would be machine independent but in fact
rely on native libraries that you cannot find easily.

------
samfisher83
You can just use virtual box or VMware, or use use putty and log in to server.

------
wprapido
a linux VM works just fine. with all advances in linux integration, there is
no full POSIX support yet. even cygwin is a pain in the ass

