DEV Community

Jason C. McDonald
Jason C. McDonald

Posted on

Windows and Linux: A Sane Discussion

Let's face it — neither Microsoft Windows nor Linux in its many distributions are the same as they were ten years ago. The face of the computing ecosystem has changed. The past few years especially have brought many surprises, not least of which included Microsoft's wholesale embracing of open source and the Linux community.

I think it's time we reopened the conversation about Windows vs. Linux. What's working? What's not? What factors go into choosing one over the other?

I think @shadowjonathan made a very good point in response to @kailyons's decision to archive his posts surrounding this very topic...

I haven't even looked into the comments, your articles were already clear enough and much of a statement to make me start thinking what microsoft has going for them regarding windows, and besides its large velocity in user base, its mostly some key software vendors that keep supporting it as its sole target OS. Hell, microsoft themselves are starting to provide their services on linux.

But yeah, the internet is the internet, and I think your statement attracted way too many people for it to always go right, I can't say im surprised, but i'm also a bit disappointed, since there should be legitimate conversation around this.

My apologies on behalf of the more shady and gollum-like parts of the internet, I'm curious what you'll write about next, I've already followed, I wish you good luck.

That got me thinking...THIS IS DEV! Not only do we have a moderation staff who cares, but we have a nifty little tool that allows authors to hide comments.


What are the pros and cons of Windows vs. Linux? What factors go into deciding to use one or the other?


Here's the rules:

  1. You can share your opinions and your technical views, in favor of Microsoft Windows, Linux, any other operating system, or both...but you MUST be polite!

  2. Disagreement isn't rude.

  3. Healthy debate is fine, but hostility, elitism, and ad hominem attacks are not.

  4. Unconstructive comments, even those that are "just shy" of violating community rules, WILL be hidden, and reported as needed.

  5. I also don't want to receive any argumentative or offensive DMs about this. Any such messages will be reported, and then summarily ignored.

  6. If you're concerned about getting attacked for your views, please DM your comment to me, and I'll post it anonymously on your behalf! (I will not post replies under most circumstances, only initial comments.)

Since I'm obviously the guy with the "hide posts" ability here, understand that I'm going to be more than a bit zealous about keeping this conversation safe for everyone, even the folks who have altogether opposite views from me. If your post gets hidden, move on.

Oldest comments (54)

Collapse
 
codemouse92 profile image
Jason C. McDonald

Thanks to @shadowjonathan and @kailyons for inspiring this.

Collapse
 
deciduously profile image
Ben Lovy

You can just go download yourself some Linux for free.

Collapse
 
_hs_ profile image
HS

Not if you don't have another OS where the download happens. Unless you already have Linux and you want more Linux so you end up in a loop :D

Collapse
 
deciduously profile image
Ben Lovy

Fair - you'll need to get yourself a USB stick and find a public library!

Or jack it directly into your brain, your call. Linux is about choice :)

Collapse
 
sergix profile image
Peyton McGinnis

Windows is still by far the best platform for .NET development as a whole, even though it's been cross-platform for a few years, mostly because of tooling. Windows also still simply has a larger market share of desktop applications (correct me if I'm wrong) than other operating systems, although macOS and Linux are quickly catching up.

Linux (Arch/Gentoo in particular) is best suited for overall software development. Nowadays you can develop virtually any application on a Linux box, and programs like Wine greatly help.

So, I'm not really sure where I stand in the debate. I've used Windows extensively the past few years but have found many frustrating aspects of the OS. But, I still prefer the Windows desktop environment over XFCE/KDE/GNOME/etc.

Also, AutoHotkey.

Collapse
 
codemouse92 profile image
Jason C. McDonald

Have you ever tried Cinnamon? (It's native to Linux Mint, but also runs well on Pop!_OS)

Collapse
 
sergix profile image
Peyton McGinnis

I've seen some people discuss it before and have seen some screenshots but I've never personally used it. I've never been that interested in trying Linux Mint before, but what are it's advantages over other distros? Have you used it?

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

I used it for over a year. It has its pros and cons, but it's certainly the most Windows-like UI. Very polished interface, but with all the refined control of GNOME 3.

Personally, I like running Cinnamon on Pop!_OS, though.

Thread Thread
 
sergix profile image
Peyton McGinnis

Awesome, I'll have to try both Mint and Pop!_OS out soon then!

Thread Thread
 
codemouse92 profile image
Jason C. McDonald

Cool! When you do, see this: Pop!_OS: Change the Desktop Environment

Collapse
 
sirseanofloxley profile image
Sean Allin Newell • Edited

When making a new small .net core api, I've actually found VS to be a little overkill compared to just VSCode. And as such, i believe the .net dev experience may be less of a factor for windows OS dominance as we move towards a unified .net with .NET 5.

Collapse
 
dinsmoredesign profile image
Derek D • Edited

Agreed. I work at a .NET shop as a front end dev and, while I don't write a ton of C#, I find running VS to be overkill for 90% of anything I do. The only upside I see of VS is if you REALLY need ReSharper, in which case you should just use Rider. VSCode is fast, has great Intellisense plugins and feels overall more polished than VS now days.

Collapse
 
elmuerte profile image
Michiel Hendriks

I have Windows on my workstations, because I also play video games. WSL makes Windows usable for development, especially if you have to deal with files. Performance of WSL is shit though, but the upcoming release of WSL2 should improve that.

All other kind of systems (Servers, HTPCs, ...) run various (Debian based) Linux distributions.

I just wish GUI devs of the OSes would stop screwing it over. The Windows 95 UI was really good, it had some improvements in 98, and 2000. But after that it started to go down hill. Sometimes improvements came along, but overall it's getting worse. And for some reason the Linux GUI people joined in on this mess with the likes of Gnome 3.

For a pure development system I think I would just go for Linux. Probably one with MATE. I don't see any benefits of using Windows for my kind of development work.

Collapse
 
_hs_ profile image
HS • Edited

Ugh, about the UI, I just hope someone made some kind of old school KDE or Gnome a bit prettier and not burning my laptops anymore. Like, do they need to use 300% of graphics card to run ? What happend to simplicity. Although I like some part of Win10, where you have 1 colour and flat design, but those loading screens when firing up things like settings... I mean it should be fast for such a simple design but apparently UWP behaves as Gnome and KDE do nowadays

Collapse
 
v6 profile image
🦄N B🛡 • Edited

To be honest, I kinda prefer the insane kind. You're probably gonna want to hide this one.

They're almost all awful by the standards we would apply to most tech that doesn't need a CPU. And the panoply of failure, combined with the concurrent demand to consume that steaming junk heap of failure, is just another example of how software is still a wild, wild west, and the computer revolution hasn't happened yet.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Eh, it's a valid position that's worth keeping in here. It reminds me of what my IRC friend _habnabit loves to say: "everything sucks".

Collapse
 
moopet profile image
Ben Sinclair

I think that it doesn't matter what Microsoft do. They could turn themselves wholesale over to making medicines for everyone and I still wouldn't trust them with anything important. They spent too long poisoning the industry.

I'll use things they make if they fit with my interests, like VSCodium, but I'll never invest time or money into any of their products in a way that isn't directly self-interested.

I see most of their "embracing" of any technology as the first of those three lovely phases ending in "extinguish", and I can never be sure that they have users' interests in mind.

I appreciate that others will, but I think that those who forget the past are doomed to reinstall it.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

That leads to the question: is a corporation a mega-entity in and of itself, with its own inherent behaviors, or is its behavior reflective of its management? The C-suite is altogether different at Microsoft now than in the Ballmer era, so one might argue it's a completely different company.

By the same process, would you continue to consider Red Hat a trustworthy company if they close-sourced everything they did, started installing encryption backdoors on the system and launching campaigns against open source projects? Or would you conclude they were now no longer safe, because their behavior had markedly changed?

If the latter, what is the diff between that and Microsoft? (honestly want your take)

Collapse
 
v6 profile image
🦄N B🛡 • Edited

a mega-entity in and of itself, with its own inherent behaviors

That one. This is the reformists' fallacy, where they believe that simply by replacing the people that they can make systemic change. But it's only temporary until the system itself changes or, better yet, is sacrificed on the altar of the public good.

And if RedHat made a wholesale change like that, I'd begin to grow suspicious, but I'd trust a closed source product from them more than an "open" sourced product from Micro$oft whose devs and infrastructure they happen to pay.

Much of my work, especially recently, has to do with ensuring that people don't lose (as much) control of what they're putting up on someone else's computer.

Thread Thread
 
codemouse92 profile image
Jason C. McDonald

So, on that basis, what would you expect to see for there to be a systemic change?

Thread Thread
 
v6 profile image
🦄N B🛡

Governance changes atypical for the industry.

To pick one extreme example, a move to employee ownership, that kind of thing would make me start questioning.

Collapse
 
moopet profile image
Ben Sinclair

I think the point is that I don't know, and can't know, what's going on in a behemoth like that. The only data I have to go on is that they've been consistent bad actors in the past, who have actively tried to sabotage progress in fields they see as competitive.

I think there's a certain amount of management sway, but it's difficult to tell how much is honest and how much is just a spin on their regular behaviours.

I like your flipped example. It makes me think, but it's always going to be much easier to believe someone(s) has changed for the worse, so apologies for the incoming hyperbole:

Say I had a friend who used to be a serial killer. Maybe they're "ok" now, they give to Help The Aged and work in a soup kitchen. I have another friend whose life went the other way and they turned to assassination after working for charity all their life.

I'm afraid even trying really hard, I'm not going to trust either of them. It's not like a minor issue, not like they used to commit petty crimes, they actively tried to damage other people.

Maybe that's a bad prejudice on my part. Maybe if they disbanded the company and gradually reformed under a different name I wouldn't notice and would think they were great. It's all a bit emotion-driven.

Collapse
 
v6 profile image
🦄N B🛡

Yes, I share your deep suspicions.

Meta entities like Micro$oft are driven by the need for control.

And I suspect that if they're pivoting away from a war for source control, it's because they've smelled an opportunity to take control0 some other way.

Collapse
 
michaeltd profile image
michaeltd

THANK YOU!!!

Collapse
 
sarafian profile image
Alex Sarafian

This is going to be a bit off topic but it is incredible that someone asking a question of preference feels the need to fill 3 quartets of the text with how to be civilized in a discussion.

Is it the topic, is it experience or just something pc driven?

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

It's experience, unfortunately, both first-hand and second-hand based on the aforementioned article/comment. I wouldn't waste the time on the preamble otherwise, as you'll notice from every other discuss post I've done. ;)

What's incredible is that there are people who need the reminder!

Collapse
 
v6 profile image
🦄N B🛡 • Edited

I'd have thought the same. But no, it's not a PC thing, and not motivated by some desire to do language policing.

I mean, I can't read minds, but there's another possible motivation that's more obvious.

It's from direct, recent experience in a what devolved into a D-Day level flame war.

Collapse
 
snikhill profile image
Nikkhiel Seath

I use Windows 10 to play games, trying out video editing software. I use Fedora Workstation for development purposes. LAMP Stack, git, composer...

I haven't logged into Windows for a while now. I guess I like the way terminal works. :)

Thanks
Nikhil Seth

Collapse
 
sirseanofloxley profile image
Sean Allin Newell • Edited

My dad is pretty much a MS, .NET, and Xamarin zealot. As such, i have 'inherited' windows. I got an ISO of win10 preview and always had free access to win10. Been playing games my whole life.

Then in college i became a software engineer.

I played with the linix environments at school, had to do some server work at various jobs, did more and more web development.

Then I tried WSL, then I tried dual booting ElementaryOS... Then i went in way too deep and installed NixOS on my laptop and now am happy with a debian10 laptop and win10 desktop.

As developers it seems to me that we love, prefer, and nearly demand (as seen with VMs/docker/WSL) *nix systems for getting things done. As I've matured as a dev I have grown to appreciate linux more as things really do fit together better.

As a consumer, a computer is an investment. And the OS is sometimes just a bundled deal from an OEM. Hardware and software are not decoupled from the market's perspective. But things like System76 and more options to mix and match like we do with graphics cards and CPUs, may turn this general ignorance into a new general market demand. In the future, it may not acceptable to just sell dell laptops with windows preinstalled anymore. I think that's what it would take to put windows and Linux on even footing in the general consumer market.

And if Apple decoupled Macbooks from MacOs and sold their hardware with PopOS on it.... Then we would be living in a computer revolution indeed! 🐷✈️

My wife just got a 2019 refurb macbook pro; people want to know that it'll 'just work'. She's an artist who uses adobe products a lot. I'd rather her use the open source, free, Linux versions of each app she uses - but I also would not like to spend the next 3 months slowing her creative process and business down.

So it seems to me that habits, productivity, manufacturer/OEM/fortune-500s choices and consumer attitudes dictate the OS wars in these times. And then that leads to the situation where we are now - android doninates mobile, Linux dominates servers, the PC corporate install base is overwhelmingly windows, and the creative industry chooses apple for an experience they can count on.

As Linux becomes more visible (as it has been recently) I see this slowly changing over the next generation.

Collapse
 
jsn1nj4 profile image
Elliot Derhay

Adobe definitely does have a grip on the design industry too, so there's that.

Collapse
 
dinsmoredesign profile image
Derek D • Edited

For good reason. I was previously a designer, now a developer. I've tried most of the competitors and not many of them are as good. The few that ARE as good are only alternatives to one single Adobe program. Designers rarely only work in one program. It's more cumbersome to use one non-Adobe product and then Adobe for the rest than it is to just go all Adobe, especially since they've adopted their subscription model and it's basically all or nothing now.

The only deviation I really see in the industry is for web/UX design. This is because Adobe didn't have a good competitor once Sketch was released. They're still playing catch up on XD while things like Figma are rolling out and killing it.

FWIW, I really like the Serif Affinity suite of programs, but they're only made for Windows/OSX. I've yet to try anything on Linux that even comes close to the offerings on the more mainstream OSs.

The only thing keeping me from using the Affinity suite more lately is time. They are very close using them compared to their Adobe counterparts, but there's some things that are different and end up making me take a lot longer to do. That said, I continue to use Adobe products because my work pays for them for me. If I didn't have a paid subscription, I would use Affinity because their model of buying a license is far more appealing.

Collapse
 
wrldwzrd89 profile image
Eric Ahnell

Both have wonderful development tools. Linux's tools have historically been better at the CLI, while Windows excels at the GUI. Linux is very community driven and tends to adopt a philosophy of "put the best bits from the community together", which is great... when it works. Windows, on the other hand, prefers the approach of "build it and they will come", which is popular but far less flexible. Ultimately, finding where you work best is what matters - and now that all Windows supports Linux tooling, you don't have to live without your awk on a Windows box, if you don't want to.

Collapse
 
projectescape profile image
Aniket • Edited

I'm only going to say this
There is a reason why Microsoft had to implement WSL

Collapse
 
scriptautomate profile image
Derek Ardolf • Edited

Disclaimer: I run everything on Linux, so there is definite bias in that direction.

My interest in using Windows systems in a work environment came from seeing PowerShell v2, and the lack of administrators/engineers using it.

Learning PowerShell, bash shell, and Python allowed for me to be more competent in a cross-platform approach. But, I think much of this comparison has to do with the goal of the individual.

Note: About five years ago, I removed the last Windows system from my home environment. My experience with Linux had been too positive, and working with Windows had become too frustrating for me to justify keeping it.

Why You Should Use Windows

  • Do you want to play AAA video games? You will still need a Windows OS, for best support and functionality. Though, a variety of games can work on Linux. This is one of the most often cited barriers for people, that I see online, who have wanted to move to Linux but haven't.
  • Do you administer Windows systems? You should use a Windows system at work, unless you can be approved to run it in a VM locally or elsewhere as a system to connect to.
  • Do you develop software with Windows OS as the target client and/or server? Windows will likely be your best bet, especially if using something like .NET instead of .NET Core.
  • Do the engineers/administrators know how to navigate a shell, or are they only familiar with Windows? They are unprepared for supporting and configuring Linux systems.
  • When using the Windows Desktop, such as Windows 10, do you use Windows-only or Windows/Mac OS only software? If so, the software may only work on Linux when using customized tooling to try and emulate Windows libraries. Though, even after a ton of tweaking and troubleshooting, the software may just not work. Though, many tools have open-source alternatives which may be attractive options to try and migrate over too.
  • Is the environment using proprietary, third-party software that only works on Windows? Then you are stuck on Windows unless you develop a migration plan. This would be the case for servers, most often, but also the case for Linux desktops. Linux client OS on laptops/desktops is rare in enterprise environments due to lack of experience, support, and more.
  • A lot of major design and art-focused software only works on Windows or Mac OS. This can mean Linux is just not an option.
  • Use WSLv2 or a Linux VM to expand the capabilities of what you can do via a Windows system. Look at using tools like Docker Desktop for Windows, vagrant with Hyper-V (for native hypervisor functionality, and official PowerShell support), etc.
    • A big thing to note: if you are developing Windows containers, developing on Windows will be a native experience. Developing Windows containers via a Linux OS I think can be done if you are using docker-machine with properly configured Windows VM host in something like Virtualbox.

Note: There is not a Docker Desktop for Linux, but only for Windows/Mac OS. Though, the same functionality can be achieved with docker, docker-compose, and docker-machine with a local hypervisor such as Virtualbox.

Why You Should Use Linux

  • Do you administer Linux systems? You should use a Linux system. Using a Windows desktop, with WSLv2 or a Linux VM, to primarily take care of Linux systems is a painful user experience. Though, many people may not have this option in an Enterprise environment due to support and policy. As a result, many Linux administrators/engineers interface with Linux environments via a Windows client OS and jumpbox or local VM / WSL.
  • Do you want updates for not only the OS itself, but automatically for all of your installed software, at a fraction of the time it takes for a Windows system to update? Go with Linux. If you have found yourself frustrated when turning off your computer, or starting it, and staring at the Windows update progress slowly moving forward, then you will be relieved to no longer have that experience.
  • Do you want complete control and customization options that will feel nearly limitless with your OS? Linux is your go to. There are many distributions, tweaking options, user interfaces, and communities.
  • Are you a fan of PowerShell on Windows? PowerShell Core is cross-platform, and can work on both Linux/Mac OS.
  • Do you use a desktop primarily for web-based use? Email, Netflix, Hulu, Prime Video, Youtube, etc. all can work via a Linux desktop.
  • Linux support for many video games has grown overtime, if that is a factor. People can look up how well their favorite games work on Linux.
  • LibreOffice has come a long way, but it would take time to get used to if someone is coming from Microsoft Office. It can be installed on Windows, also, which could be a way of migrating over to the free office suite over time. Though, if in a workplace environment, it may just cause frustration and weird formatting differences. If on a personal computer? LibreOffice can really be a way to save money.
  • Visual Studio Code (VSCode), Atom, and other IDEs work on Linux. They are also free. As cross-platform IDEs, a developer would be empowered to develop in a similar environment regardless of the base OS. Visual Studio Code has become my primary IDE.
  • Linux is a free to use OS, with distributions and the base kernel being developed by a global community. Google, Reddit, StackOverflow, various blogs, forums, etc. can be searched to discover solutions to many problems a person may run into.
  • Do you want to play with IoT devices, like Arduino or Raspberry Pi? Get into Linux, and make cool things. I've seen Microsoft attempting to get in on IoT with some kind of Windows variant, but I don't think I've ever seen anyone using it (or if it is still under development?).

I personally think Linux is a better option for both personal use and work use. I used Ubuntu 12.04 - 16.04, before migrating over to Pop! OS with 18.04. I've been impressed with their direction, and like seeing what System76 is doing when it comes to both hardware and software. I use Linux for work. I use Linux for play. I use Linux for everything. I personally feel that everyone should at least try Linux. It is incredibly rewarding for hobbies and for careers.

If someone goes the Windows route, learn PowerShell. Using Windows, and not knowing how to use PowerShell, will only hold a person back. Systems admins and engineers who don't use PowerShell will have abilities that pale in comparison to the people who do use PowerShell. Also, evaluate a package management tool like Chocolatey.

The learning curve for Linux, when coming from only ever having used Windows, can be difficult and frustrating for people. This is the case for anything new: change is difficult. Though, over the years, much of what Linux distributions do will "just work" when being installed on systems. It can also be tested via bootable USB drives. Patience will be incredibly rewarding. Impatience will lead to a potential nightmare.

Trying to convince a Linux user to use Windows, instead, may be an impossible task. Often, this is because they came from using Windows, and can no longer go back. Though, for Windows users, it's different reasoning. It usually is not the case that a Linux user has converted over to using Windows: it is more so the intimidating aspect of a different OS, and the lack of specific software support. A certain personality type is required: one that wants to constantly learn, experiment, and test out/compare software alternatives.

One last thing to keep in mind: with all of this said, this means it isn't merely all-in on one OS or the other. What are you trying to do? Do you want to be capable of working cross-platform? Do you want a gaming rig being a dedicated Windows system, but Linux running on everything else? Do you want a system setup where a dual-boot exists, helping achieve what you want in whatever OS you want, based on what you are doing? On a Windows desktop, one can have a Linux VM or WSL. One a Linux desktop, one can have a Windows VM. Though, you'd need a Windows license for the VM. Linux requires no license, and can be used with zero cost.

Collapse
 
tonymet profile image
Tony Metzidis • Edited

I think it's better to compare them to particular use cases, e.g. production hosting, development, gaming, general productivity on desktop, media server, etc.

Production hosting linux is ideal, because of broader app environment compatibility (e.g. node, php, python, golang, etc), better debugging (gdb), better remote management (bash, perl , python, chef, puppet, etc)

Development: More competitive. Personally I prefer Windows as the core OS and then VMs running linux. This way hardware is well managed (e.g. networking, battery, display drivers). Best of both worlds.

Gaming: Windows -- no brainer

Media server: overall windows IMO due to codec and hardware compatibility, but with the right build linux can compete.

NAS: linux hands down. I would go with specialty NAS appliance like qnas / synology but even a home-built linux server is more flexible due to various daemons for file hosting.

Productivity: Windows wins here. 80% of offices run MS Office.

tl;dr : Buy a PC, run Windows 10, and develop using WSL2 or Linux VM + cloud instances

Collapse
 
_hs_ profile image
HS

I think, if big software houses and gaming companies did more support and development for Linux, Windows would be gone long time ago. However MS held monopoly on support for games, drivers, and office tools and that in my head makes the main reason why people didn't get used to it. Imaging having support for MS Office, Adobe tools and games by same companies that made them on Linux. Would you ever use Windows? This way they pushed as much as they could by playing a little dirty and gave up so now you have .NET Core written in VS Code on GNU/Linux machine, Azure offering Linux stuff, Steam and others making effort to enable gaming on Linux... I think it's pretty much heading to Windows UI running on Linux with support for DirectX and such.

Collapse
 
tankerkiller125 profile image
Matt Kilgore

Both operating systems have their uses. The simple reality though is that in a business or enterprise environment where controlling what users can and can not do is vital for security and operations windows just the hands down winner.

On the other hand though when it comes to things like web development or web server hosting I feel that Linux has a upper hand. I personally use both of these operating systems.

Collapse
 
codemouse92 profile image
Jason C. McDonald

I don't know. I've seen some pretty solid Linux-based systems that handle permissions. UNIX groups are the gold standard for computing privileges after all; Windows modeled its own groups on it.

Collapse
 
felipperegazio profile image
Felippe Regazio • Edited

I like to know about all those pros and cons and i respect all them. I think Windows are evolving a lot since the last years, etc. But despite all the discussion and analysis, i just dont like Windows. I dont know, since i used Linux for the first time a long time ago, it was love at the first sight :P

Some comments have been hidden by the post's author - find out more