DEV Community

Vincent
Vincent

Posted on

About Windows for devs

I've read days ago a #discuss about why people prefer to use Mac (or Linux in my case) for developing instead of Windows, starting a kind of evergreen "OS war", however, my question is: is it so bad to use Windows in dev? independently from what kind of dev you are (web, mobile, desktop etc.)

PS This in NOT meant to start another OS war, please don't, my question is only about real and justified reasons why Windows is not so recommended for dev, even because I'm not a Win user.

Top comments (28)

Collapse
 
orkon profile image
Alex Rudenko

If Windows works for you and if it does not limit you, just use it!

Collapse
 
vingam profile image
Vincent

This is what I think, I mean, yes Windows sometimes is not so flexible and you need to make some effort to set up something, while on Linux (just because I use it as main OS) all you need is there and it's so simple to get it, but if you enjoy Windows or if those limits are not a problem for you, why not use it?

Collapse
 
mlapierre profile image
Mark Lapierre

all you need is there and it's so simple to get it

Windows doesn't have a mature package manager like all the linux distros do, but Chocolately and Scoop go a long way to solving that problem.

Thread Thread
 
itsbennett profile image
Bennett Mouton

Finding Scoop made me fall in love with Windows again.

Collapse
 
ardennl profile image
Arden de Raaij

The last time I had a Windows based system was 2013, so I'm a little out of touch. The reason for me to switch to OSX back then, was because the lack of improvement for webdevelopers. I didn't dislike Windows, I just wanted a proper terminal and for my ruby gems to install without tears. Many tutorials I came across were aimed at osx or linux, and getting these linux based things to work always seemed like such a hassle on Windows.

I believe nowadays Windows has taken great steps forward. You can actually install a bash shell on Windows 10, how cool is that? Microsoft seemed to have worked hard to close the gap.

What I still don't like is the bad build quality of many Windows based laptops. I used to have Vaio's and they were great, but with Asus, Acer and Dell I've had nothing but trouble. I just don't want to waste that time anymore.

Collapse
 
ben profile image
Ben Halpern

Yeah, getting into Ruby was what got me away from Windows. I suspect, though I haven't been watching super carefully, that Windows has been putting in work to improve for webdevs/open source. Sure seems to be what Microsoft as a whole is doing.

Collapse
 
ajw1970 profile image
John Welty

I would agree that hardware manufacturers hurt Windows. Hoping the Surface line will give them reason to up their games. Lenovo was the last one that wasn't dead to me before the Surface Book was first announced. I pounced.

My wife liked the build quality of that and wanted one but it had some quirks that only an early adopter would put up with so I encouraged her to shop around. She chose the MacBook Pro instead (she's not a developer). She got one right before the touch bar rolled out.

Collapse
 
ardennl profile image
Arden de Raaij

Ah that's a thing though! I've got a late 2013 MacBook Pro and it's a great machine. If it would die tomorrow, I'd probably try and get a 2015 MacBook without that useless touch bar. I'm not a big fan of Apples latest machines either 😭

Collapse
 
beee_sama profile image
Bee0la • Edited

Since the introduction of docker for windows, Windows has been a pleasant experience for all kinds of development work

As for shell environment, if one is comfortable with bash, there has always been git bash for windows so people coming from other os environment feel at ease.

I have done my fair share of dual booting between Linux and windows, removing windows completely and sticking with Linux but since docker for windows was released, there was no point anymore.

With the release of wsl, things just keep getting closer to a full blown Unix environment. I rarely use it and just stick with docker because its so cool.

Collapse
 
tcbyrd profile image
Tommy Byrd

It's definitely not bad to use Windows for development, it just depends on what kind of development you're doing. Visual Studio is a really powerful IDE, and people that use it basically live in it. This makes it awesome for doing things in the Microsoft ecosystem (Windows apps, web development using .NET/C#, deploying to Azure). For anything outside of that, it definitely takes a bit more work, and you'll find that resources are hit or miss, depending on what you're trying to accomplish. PHP and Javascript/Typescript web development? Sure. Ruby on Rails? Maybe not so much. As a previous system admin in a Windows-centric environment, I always found it frustrating to do things outside of the Microsoft bubble. Simple things like needing to SSH into a Linux server always seemed to be venturing into a territory that Microsoft people didn't care to support. But that seems to be changing.

This is one of the reasons a lot of people are liking Microsoft's new direction. Since Linux servers can run on Azure, it's actually in their best interest to support diverse workloads and build tools that give all developers a good code/compile/debug workflow. Windows Subsystem for Linux is a monumental achievement, but also they're starting to include tools in new builds of Windows like curl and tar that help developers outside of the traditional Visual Studio workflow feel more comfortable. This also means you can more confidently develop scripts on your Windows machine that should work in production environments.

I also think if you're doing development on Windows, you should not expect the experience to be as good as it would be on a Macbook Pro if you don't spend about the same on that Windows machine. Far too many people buy $500 Dell/HP/Lenovo machines and think that their experience is bad because of Windows. People that buy $1500-2000 Windows machines like a Dell XPS or Surface tend to like their systems just fine (in my experience). Those cheap machines always have lower quality displays, slower hard drives, frustrating track pads, and plastic cases. All of that leads to a system with a poor UX, and makes it not something you want to use every day.

Collapse
 
martingbrown profile image
Martin G. Brown

This question is flawed because it doesn't give any context. The best development environment entirely depends on what you are developing and the tool chain your team chose. If you are a C# dev Linux sucks. If you are a Ruby Dev windows sucks. Etc

Personally I've lived in Visual Studio on Windows for 20 years and have never been unhappy. But I'm a C# guy so it makes sense.

Something interesting to note is that Mac OS can't be run on anything other than Mac hardware without breaking the license agreement. Windows, Android, and Linux can be run on anything. Also Apple force you to have a Mac OS machine to install dev builds on iOS. This means if you want to do cross platform Dev and only have one machine you are forced to have a Mac.

Collapse
 
vingam profile image
Vincent

yep, it makes sense, good point

Collapse
 
sake_92 profile image
Sakib Hadžiavdić • Edited

Windows OS is not bad per se.

Batch scripting is awful, PowerShell is not familiar to many users and it's kinda cryptic (I'll try to learn it).

Many programming languages are Unix-first since they use open-source stuff that is mainly made for Unix OS-es. Ruby, PHP etc. are in my eyes made just for Unix. Either they don't know/want/can port them properly to other OS-es.

Java and other JVM languages on the other hand are just fine.

All in all, I like Windows because I'm used to it. File explorer is great (e.g. I can't paste a path in OSX explorer to get to it, why?). Linux is great also, installation from CMD is great, you don't need to think about that stuff.

Collapse
 
muehan profile image
André

as a .net developer and gamer windows is the only OS i need. but if there is a reason to use Linux I'm also happy to dive into the Linux console. OSX has nothing to offer for me. Visual Studio Code with git bash as terminal is all I need for JS web development.

Collapse
 
darthmaul profile image
Darthmaul

I prefer it. The only reason I have a MacBook is for app development. All of the software I use for development is cross platform, and dual booting was too much of a pain. Windows fits perfectly for what I do, and when I need to do some app development or development on the go I just hop over to the MacBook.

Collapse
 
vgrovestine profile image
Vincent Grovestine • Edited

I'm a die-hard desktop Linux user and have been for the better part of 10 years. I've still dabbled with OSX and Windows 7/8/10 during this time; however, I come back to Linux because it fits my workflow.

At the office, I'm the lone Linux user in a sea of Windows/Office365-centric folk. At home, my machines are Linux and my wife's are OSX.

To each their own, I say. So long as the operating system doesn't get in the way, it makes no difference what environment one chooses to develop in.

#osAgnostic :)

Collapse
 
codemycoffee profile image
CodeMyCoffee

I actually prefer Windows over Linux for development. IDEs and text editors are mostly cross-platform, any popular programming language is supported, and most of the times you can get around everything you would do with bash with some GUI and get the same results.
But the most annoying thing to me about Linux vs Windows is installing things. I really appreciate clicking "continue" a couple times to install Docker on windows than copying and pasting several lines on the terminal form the official site to get docker running, not to mention when you actually have only a source file in Linux.