Why do people prefer using Windows for development?

As a Linux user who only really uses Windows for compilation, I've always wondered what the argument for using Windows for development was. From my perspective, there are a lot of disadvantages to Windows for (maybe) a single positive, with the single positive being that you're on the OS that most users are going to experience your program.

On the other hand, on Linux, you have numerous advantages:

A package manager (for more easily managing packages for whatever language you're using, if it has them)

A higher level of customization (so you can feel more comfortable in your development environment)

A built-in robust shell that I would argue is a huge asset for any programmer, especially considering programmers are better at thinking in the ways that most shells expect

More control over your system as a whole

I don't dislike people who program on Windows, but what's the argument for doing so?
Last edited on
At risk of sounding like a Microsoft shill... (I'm not): It's like a positive feedback loop. Microsoft got its foot in the door, and then grew from there. The more people that are comfortable with the system, the easier it is to train others how to use it (if they need training at all), and the more people using Windows encourages people to develop and make pseudo-standards for Windows. Windows also has a cross-OS ecosystem (like Active Directory built-in to their Server product), and backwards compatibility for various older programs.

A lot of major products are only supported on the biggest platforms: Windows and MacOS (e.g. Adobe Photoshop). Why would a company spend the extra money to increase their market by 5% if it costs them 25% more money to maintain yet another platform [percentages arbitrarily chosen, could be inaccurate]? Companies like Wacom don't bother making tablet drivers easily available for Linux, and their public examples are only for Windows, so it's harder to set up your own (still possible, though). But as a counter to this, companies like Steam are taking the effort to port their games from DirectX to OpenGL to support Linux platforms, so bless them. But I doubt every company is in the position to do this, especially if shareholders of public companies disagree.

Windows also has a more-so unified GUI and window manager, while Linux has many to choose from. Yes, Linux lets you customize just about everything, but most consumers don't require that, and it can add confusion.

Also, there are some nice programming tools on Windows, like Visual Studio. MS pushed .NET as a unified interface for developing applications, compiled into a common assembly. And you can emulate/port many Linux utilities like gcc, make, and other command-line/shell tools. Also utilities like cygwin and msys2 exist, filling in more gaps.

At my work, for example, I work mostly on Windows, and most of our customers & people we hire to help with the products would be more comfortable with having the product be on Windows than Linux, even if Linux would have some advantages development-wise. There are many parts of Windows that annoy the crap out of me, and I wish I could burn most of it.

A security downside is that since Windows will be closed-source, there's no community to report 0-day attacks or other exploits.
Last edited on
If Windows is all that is used where one works, one doesn't develop Mac or Linux or Unix applications.
closed account (E0p9LyTq)
Being a self-taught, still learning, hobbyist I've tried Win and *nix programming. And still prefer Windows since it has a greater installation base than *nix.

More people use Windows, home and work.
There really isnt much 'real' difference. Visual studio is a better tool than anything unix offers, at least IMHO. Eclipse and kdevelop etc have been left in the dust.

unix can run visual studio, in a vm or whatever, though.

windows can run cygwin (i can mix and match dos and unix shell commands in my cmd console all day, even write batch files that call ls or grep etc). That is, windows can have the full unix shell, or so near that you won't miss the stuff you can't do.

The configuration of the OS stuff is really not a compelling argument. What exactly do you configure that is so darn important that can't be mimicked in windows?

you got me on the package manager. I don't remember what it even does, or why we need it, though. Ive gotten on just fine since before dos without one.

I can't offer a compelling reason to move to windows. There isnt one, because they can both do everything that needs doing.

Does unix still use makefiles (hands-on, not as a hidden mechanic)? Not using those is a MAJOR benefit to windows coding.
Last edited on
In my Computer Science studies, they forced us to use Linux for coding. After been using Windows since the beginning, going to Linux was a long and round-about way of coding in my eyes. Using something like Visual Studio puts everything you need in one application with the ability to get packages as needed. Doing this on Linux may seem easier when you've been doing it for so long, but for me it seemed like the long way around.

In the end, it's more about the feel of coding. If you start on Linux you probably will stay on it and same with Windows. But I think Windows has much more flexibility in how you code (Plenty of IDEs and can code like you would in Linux if you really wanted to).

BTW - With the newest Windows version, you can open up a Linux Shell. So that takes away a big reason to stay with Linux as I see it.

Hope this helps.
closed account (E0p9LyTq)
zapshe wrote:
BTW - With the newest Windows version, you can open up a Linux Shell.

Didn't know that until you mentioned it. Did a 'net search and found this link of particular usefulness:


The old method of having to dual boot a Win machine was, was IMO, a bit of a pain.
In VS 2019 you can write your Linux code and run it in a VM.
I get the impression that some people think that developing on Linux means doing everything from the shell, and rolling their own make files. Maybe my impression is wrong?

Linux has lots of IDE's and most of them generate their own make files automatically. I have used Code::Blocks, qtCreator, KDevelop, and most recently Eclipse. I didn't like C::B because it doesn't seem to have any version control, and doesn't do background parsing. qtCreator is fine for Qt. KDevelop is a mature app and is fine for C++ development. Then I discovered Eclipse which has plugins for everything: want to program in any one of dozens of languages / scripting environment? Install the plugin. The plugins are not restricted to just languages though, there are all kinds of things available. https://marketplace.eclipse.org/

Some people also have the impression that Linux doesn't come with many apps. In fact there are over 20,000 free apps available for most distributions.

jonin wrote:
you got me on the package manager. I don't remember what it even does, or why we need it, though

Package managers are for installing and updating software. They are aware of dependencies and will download them also. Software can be built from source and installed in one operation. They can use secure keys. Each day I use the Software update facility, it checks for any new versions of all the software installed on the system through various repositories, the whole lot can be updated in one go if required. The kernel is included in this process. One can even use this for updating to a later version of the current distribution, eg from Fedora 29 -> 30. New versions of the distribution appear every 6 months.

I have been using Linux since it's first version Yggdrisil (https://en.wikipedia.org/wiki/Yggdrasil_Linux/GNU/X), UNIX before that, so I have a strong leaning towards it, and this is reflected in my opinions.

I have heard many good things about VS, but I have never used it, probably because I was never going to pay for it. I did have a go with VS 2013 Community, but was turned off it mainly because at that stage VS was way behind in C++11 conformance. But these days VS is doing really well with conforming to new standards, and has the ability to use other compilers like gcc and clang.

But which system one uses is dependent on a number of things, all the systems will have disadvantages somewhere, and I guess they all have their own idiosyncrasies. So use what best suits all of the requirements, I guess.
Exactly. You can do everything on both was my point :)
I didnt know about the winx shell, ive used cygwin for so long. that is really cool!

Qt .. drives me nuts. Its lack of WYSIWYG (unless they have added it) makes it an exercise in frustration to get things to look right. It works, and it works great cross platform, but I really dislike the interface (and love the final results). Eclipse is the slowest, clunkiest thing I have ever tried to use for anything. Ive got 4 or 5 programs at work that were written on it, and a year or 2 back we had a real solar eclipse, and I finally understood the name... you stand around forever waiting on something to happen, is where they seem to have gotten the name! KD is very good, as you said.

Its whatever you spent the time in, really. Our systems targeted windows machines at my early job and college used VS (and defunct borland builder) and windows. I ran a group of sillicon graphics machines and a couple of linux machines tied to them (lolz at the 1/2 million dollar quad 386 effectively SGI box --give me a few min and I may recall the model) but I was brought on for the windows dev, and time I had to deal with those it was just as keeping them up / sysadmin not coder. So I spent all my time in windows, still do, so that is where I code (though my targets now are unix, there are so many layers between, its irrelevant, and my work machine is winx).

Last edited on
Topic archived. No new replies allowed.