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:
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!
Disagreement isn't rude.
Healthy debate is fine, but hostility, elitism, and ad hominem attacks are not.
Unconstructive comments, even those that are "just shy" of violating community rules, WILL be hidden, and reported as needed.
I also don't want to receive any argumentative or offensive DMs about this. Any such messages will be reported, and then summarily ignored.
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.
Top comments (54)
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.
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
You can just go download yourself some Linux for free.
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
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 :)
I will try to share negatives of each OS
Why I don't like Windows:
Why I don't like Linux based OSs:
Why I don't like Mac OS
So far, Appimage and Flatpak are pretty darn close; they run on every major distribution. Snapcraft too, to a point.
Somehow I didn't get any notification for this inclusion, and it's 2 AM over here, so I'll say this; thanks for creating a conversation out of this, this was a big surprise to me when I discovered mentions of this in my notifs, but it's also a great first impression of this platform for me, wow.
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?
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!
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.
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.
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.
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.
Have you ever tried Cinnamon? (It's native to Linux Mint, but also runs well on Pop!_OS)
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?
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.
Awesome, I'll have to try both Mint and Pop!_OS out soon then!
Cool! When you do, see this: Pop!_OS: Change the Desktop Environment
I'm a .NET developer for the most part. I also play games. I've tried this on Linux and have had a good experience but found that I really missed Visual Studio and (many, not all) games still seem to be problematic on Linux.
I think Linux is a better operating system in general. It's so much lighter and more configurable than Windows and at least one can change the desktop environment if need be. I really don't understand what Microsoft has done with the UI in Windows 10. All the older (and more powerful) interfaces are there but often hidden and the newer ones sometimes have specific functionality for Windows 10 specific config that you need to use. It's just a bit of a mess if you ask me.
The command line in Linux is king. I've used PowerShell quite a bit but I still prefer bash. It's a much richer environment in that you have more tools, the syntax is less verbose and I just find it more intuitive.
Also, the support for Docker in Windows is there but I have had some issues since it's basically just starting up a Hyper-V instance in the background and then sending your commands remotely to it. After having installed and deleted a few containers on my old work PC, I ran into a problem that it completely filled up my hard drive with strange files and I had no permission to delete them... I managed to fix it, but I now install docker on my windows PC's with some trepidation because of it.
I've also noticed strange background processes on my PC. I'll be doing something quite trivial and I can hear my laptop going super saiyan (Fan gets really loud, CPU 100%). Whenever I open up task manager to see what it is, it's always a myriad of Windows services doing who knows what. I find that frustrating and it's happened on a few laptops. I swear, sometimes it even stops just after I open Task Manager...
As a server, if there are no issues with legacy applications, I would much rather use Linux. All the amazing tools like Docker and Kubernetes run natively and the OS itself is more performant.
I understand the hate that Microsoft got in the past. It made a lot of big mistakes in the industry but I guess they were one of the first software-driven corporations to have such a huge impact on the business world as they did, so mistakes were bound to be made. After all, software is a different type of business compared to traditional goods. They also did some unethical things, but what big corporation doesn't?
A lot of people still hate everything they make though which is a shame since they make a lot of really great stuff, for example:
I wish I could include Windows on that list, but in good conscience I just cannot :-)
Here's my own two cents:
My System
I and my family have been using Linux exclusively for the past six years. Aside from coding, I'm an author, editor, typesetter, and graphics designer. I enjoy making videos and music. I've used many DEs, usually on Ubuntu-based systems, and I've watched the UX improve exponentially on Linux in recent years. I haven't missed Windows yet.
I do keep a Mac around for running a synthesizer that doesn't work on Linux—something I blame the vendor for, especially as they're using
vst
format in a non-standard way. I have VMs of Windows 98, XP, and 7, but the former two are for running old games (I still love 98), and the latter is for testing for Windows deployments. I intend to pick up a budget Windows 10 laptop to make it easier to test and deploy software for that platform, but I'm not eager to make regular use of Windows 10.Ethics
From an ethical standpoint, I no longer consider Microsoft an active threat. I don't know what the future holds, but I know they've invested a lot of time, money, and intellectual property in Linux and the open source world, and if they were to go rogue again, they'd be unable to recoup the losses from the immediate and cataclysmic fallout. I've also read through their Terms of Service several times: I remember the legal "spyware" loophole in Windows 10's original ToS, and I remember when it was rephrased to eliminate the problematic language.
I'm impressed that Microsoft has been using its lobbyists to push for stricter privacy regulation at a Federal level, including GDPR-level privacy law, net neutrality, and a sweeping ban on facial recognition. Those are not the actions of a Ballmer-minded Microsoft.
Technical
A little relevant background on me, here: I've been fixing WIndows (and Linux) machines for almost two decades: I've replaced nearly every part in a standard computer, removed malware (manually as well as with tools), removed cruft, fixed the registry, diagnosed and installed drivers, repaired the bootloader, reinstalled the operating system, and just about everything in between. I can personally testify to the XP SP3 debacle, the Vista drivers issues, and the Windows 8 backdoor. I've trained users, many of whom were computer illterate, how to use everything from Windows XP to Windows 10 to Ubuntu to Linux Mint to macOS.
From a technical standpoint, I still consider Windows to be inferior to Linux. Its only real user advantage is the vendor support Gates and Ballmer manipulated into existence.
However, I believe their technical inferiority too is something they're trying to correct, as evidenced by the fact that their built-in antivirus is now on par with Kaspersky (the industry leader) according to all independent lab tests.
I think Microsoft's adoption of Clang, increasing support of Linux for their tools, and their WSL, are all moves in the right direction. I used to believe their motives were "Embrace, Extend, Extinguish", but I no longer believe that to be plausible: not only is "Extinguish" inherently impossible in open source, but Microsoft would wind up losing their hard-won trust, with nothing to recoup the loss.
I won't comment on Windows's interface, as UI is always a subjective topic: I don't like it personally, but neither do I like GNOME 3. (I'm a MATE guy.)
Why the Change?
It helps to know the reason Microsoft has done all this: Microsoft wants to compete with Amazon AWS. Personally, I'm glad they do! Amazon is, in my mind, the single most corrupt and malicious corporation in the history of the world, combining the utter lack of ethics inherent to the railroad industry of yesteryear with the technological agenda of a maniacal supervillain in a dystopian nightmare. Amazon opposes privacy, workers rights, marketplace ethics, and human rights on every possible front, whereas Microsoft has shown an interest in supporting all of the above. Someone needs to dethrone Bezos, and it will take a behemoth to do it.
Can a corporation change? Absolutely! Corporations are not "things" in and of themselves, but are the product of their people. Systemic changes come from bringing in people with a different mindset, and giving them the authority to steer the company. Companies, like countries, and like open source projects, can change for the better or the worse by their people alone. The entirety of human history proves that without a doubt.
To that aim, I think it's important we keep a realistic view. I think there are many in the Linux world who are, understandably, bitter against Microsoft. It's reasonable to move slowly and require them to earn our trust, to prove their change...but I believe we have an ethical obligation to let their actions speak for themselves. We need to be as forgiving as we expect others to be of us. Forgiveness does not mean we forget, nor that we blindly trust, but rather that we give them a chance to prove themselves. We can be cautious and protect ourselves, but to assume that they're still and foreer Ballmer's Microsoft is, at best, utterly unfair.
My Conclusion
I still consider Linux to be superior in most regards to Windows. I'm a Linux-only user, and I advocate strongly for that operating system. I've introduced many average computer users to Ubuntu, and most of them are happily using it years later!
But does Windows have a place in the tech world? I believe so.
I welcome a world where Windows and Linux start competing direct with one another on a level playing field, and it looks like Microsoft is actually interested in that now. Ubuntu is gaining measurable market share over Windows, and yet Microsoft continues to add cross-compatibility tools so that software can be built for both operating systems. They're even adding Linux support for their rebuilt Edge browser.
So, come on Microsoft: earn your place! Keep making Windows worth looking at, not because "my software needs Windows", but because it actually has advantages over Linux. From the comments section here, it looks like you're actually doing that for the first time in your history, so keep at it.
As for me, I'll stick with my Linux.
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.
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)
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.
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.
So, on that basis, what would you expect to see for there to be a systemic change?
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.
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.
THANK YOU!!!
I think Microsoft have made a sincere and meaty effort to support Linux and the open source community. Kudos to them. At a general level, they deserve it.
At a personal level, I moved on from Windows as a software engineer a long time ago. It's not worth my personal time or effort to go back and reconsider that choice. This is merely an unfortunate reality. It's nothing that I have any feelings about whatsoever. I already found more value than I can use in developing on Linux and MacOS laptops so any resources I put into my work is being put toward making use of that value. Starting over again with Microsoft just isn't in the cards nor should it be.
I say that because I suspect it covers the majority of software engineers. Even though Microsoft is doing all the right things, the community has largely moved on. The only gains they're going to make in this area are as far as I can tell are with startups and new devs.
Some comments have been hidden by the post's author - find out more