If Windows was free, and Linux cost $200, I'd still go with Linux.
I guess my point is that a lot of the reason so many people use Windows is because it's what they are used to, not because it's actually better.
I have friends who do macOS or iOS dev (I don't know many win devs), and it's strange to hear them complain that Apple "won't let them" do something (distribute unsigned binaries, etc). It's my computer, I would never let someone prevent me from using it!
I feel like I am being suffocated when I'm using windows for development. My current solution is to keep a windows laptop for browsing/light gaming/travel, keep a Linux desktop for programming.
But we probably feel this way because we know Linux and many things are incorporated in our muscle memory. If we spent nearly equal time on Windows, it could be hard to switch back.
You can still do that on Windows: https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux
...yeah, I realize the hypocrisy of preaching about open software and using nvidia... but it's definitely not seamless
A bit unrelated: In the beginning, I was on Ubuntu, and I almost got sick of it as the extremely ancient packages were driving me crazy. I had to have numerous PPAs just to get the latest versions of GCC, Clang, Inkscape, and various other tools. Even with all the PPAs it was a huge pain to always do extra work to get a version of some package that wasn't stale. Finally though, I discovered rolling distros, and made the switch to Arch, and never looked back. (The thought of using anything but rolling distros makes me shudder.)
Right now, I feel very comfortable and at home with KDE and Arch. KDE is simply just a very reasonable and well-thought-out desktop environment. Apart from that, I've been getting back into gaming (on Linux) thanks to Steam's Proton.
[1] At some jobs, the work computers were Macs. And before I started using Steam's Proton, I did have Windows on my desktop solely for gaming. Fortunately, I've never had a job that required me to use a Windows computer. At one job where I was provided Windows computer, I (along with my whole team) just installed Arch on it. Strangely, each person on my team was on a different lineage of Linux. One person was using a Redhat derivative, another person the Debian-derived Ubuntu, I was on Arch, someone else might have been on SuSE. (It was primarily a Java and JS/React web dev shop, so nothing was tying us to Windows.)
Maybe I just had some bad luck regarding Linux. I started with Suse, switch to Gentoo, then Ubuntu and Fedora and others inbetween. I remember the fights I had to take to make 3D acceleration work, strange problems with hardware, things which could not be solved easily where you instead search for step-by-step tutorials on every corner of the internet, distributions which completely failed after certain updates...
You know, it's interesting and all. But in some way I got older and value my time more. So I always went back to the tool I know best, which is Windows. And I think, many many people had similar experiences I had.
What I found most interesting was that I saw a video of the creators of plan9 who were running it inside a Windows VM. At that time, I thought if those guys formerly working in the experimental OS division of Bell Labs are not bothering with Linux hardware support and simply using Windows, why shouldn't I. I forced myself to use Windows as a host and ran a Linux VM for development for 6 months or so, then I gave in again and formatted back to Linux.
The same stubbornness that led me use Linux for years also led me to switch to FreeBSD, because off-the-shelf Linuxes became so decent that no config was necessary. (I also jumped on the systemd hate train.) After switching computers and getting a modern one I couldn't use FreeBSD because of GPU support. Now it has support but I don't go back to FreeBSD. I got older and valued my time more. Debian is what I feel the most comfortable with and I shall use Debian for a while.
OTOH, I really also want to try NixOS and DragonFlyBSD as my daily drivers at least for a couple of months :).
One thing that tells me is, that it is good to have multiple operating systems, open ones and proprietary ones. They can all learn from each other. And I long for the day where Windows will offer me an equal commandline experience like Linux and where Linux will give me a decent desktop environment, where "it just works". In some ways we're really close to that day. In many ways not so much.
The only thing which sometimes gets me is, when I think about all the time me and mankind in general did (and will) waste on learning the intricacies of operating systems. It's funny and sad at the same time :)
I have been a tinkerer all my life. I've installed and played with pretty much any OS you can think of (From BeOS to Solaris to Linux. Even DragonFlyBSD - which I wish would take off as I like the community). I will always continue to play and check Distrowatch, but I have started to value time more and more as the years add up {sigh}.
So with that, my love child though is, and always will be, Microsoft OS's. Started with DOS as a 10 year old and each new one I've enjoyed better than the last with Win10 being the best yet. Although I do deep down wish it wasn't full of telemetry and such, I don't get caught up in the FUD. I disable most of it and with the rest I just hope Microsoft uses it well/privately and that I am helping to make Windows better.
Unfortunately it's hard for me to read more into your argument or position after I read the opening line.
Microsoft has the software support it does due to the monopoly position it has enjoyed for 30 years- this is not an argument to continue that lest we crown Microsoft "lord of the operating systems" because people actually pay them attention;
Thousands upon thousands of hours of non-microsoft employed developers time goes into supporting Microsoft's bottom line, only microsoft benefits from that.
Also I get a very "I had to go through a punishing time so I would prefer everyone else to be punished in perpetuity" vibe from your comments; similar to adults spanking children because they were spanked themselves and "they turned out fine".
I think we can do better, all of us.
Partially, but one must also give a huge amount of credit their efforts at maintaining binary compatibility of the userland for decades. This is something Linux Desktop fails at in spectacular fashion.
Now that I'm thinking about it, I wonder if, given proprietary (no source) software A, you couldn't recompile every open-source dependency of A from their sources around A's release time, and get it running. Sticking to open source software as much as you can tends to be a winning strategy in the long term.
The other day I linked the sdl12-compat project, that allows programs such as UT2004 to make use of modern Linux desktop features. Sure, the original sdl 1.2 might not feel at home on a modern Linux desktop (icculus'demonstration[1] showed it was not much better on mac). But as long as the foundations are open, they can be improved upon.
Windows tend to fare better with binary compatibility. But old software feels more and more alien on recent windows versions, and sometimes just stops working, and there's very little you can do about it then, in most cases :/
This is a consequence of a userspace where most software is open source, and where distributions systematically recompile every package. As a side-effect, it is also generally more portable across architectures.
In Windows land you can download a binary and it will almost certainly run, and 10 years of updates later it will still almost certainly still run.
In Linux land you'll probably have to compile it yourself. And 10 years from now you will probably have to make changes to C files manually because APIs have been changed in your dependencies and then compile it.
Recompiling is just another option you have in case nothing else works, and it's an option that you do not have on windows. If you really REALLY don't want to recompile then I would suggest you start mirroring some of those old distros/packages yourself so that you can guarantee they will remain available to you. It would probably be prudent to keep the source packages around as well just in case you need them.
On Linux, that's often the rule for software that is 2 years old!
A quick search around the net reveals this to be false, because Windows XP Mode doesn't work in windows 10. I haven't used windows in many years so you'll have to forgive me if there's something I'm missing here, but I see quite a few pages like this complaining about XP programs being broken or requiring a lot of fiddling to get working: https://www.dosgamers.com/windows-xp/windows-xp-games
It makes no sense to me that you have no problem with this, but at the same time you're complaining about having to type something like "docker run ubuntu:precise" to get an old version of a Linux userspace running inside a container. If this is too much work then you can pay Canonical or Red Hat or any of the other numerous Linux companies for a support contract for an LTS distro. This seems to be very similar to the situation in redmond where you now have to pay for an extended support contract if you realistically want to keep using Windows XP/7.
In the Linux world, the community is pretty actively hostile to people simply wanting to run software not in the repo let alone originally compiled 20 years ago.
>In the Linux world, the community is pretty actively hostile to people simply wanting to run software not in the repo
This is wrong. Supporting software that is not in the repo has been the primary reason for adoption of containers, and also other similar things like flatpak and snap. The only difference with these is that the upstream distro cannot possibly support them because it goes outside their scope, so you have to get support from somewhere else.
Granted your self-statement about being in a minority: I’ve used Windows for as long as you have and I say the quirks of Windows is what made me ditch it for Linux.
For a long time I was a naive Window Hero. Then I got smart.
I’ve been done with Windows for over 10 years now. I’m full Linux at home [I include Virtual Machine here].
I tolerate Mac//Apple OS at work. I try very hard to do the same for Windows at work. All of this is if I simply just must as required by Big Boss Say So.
I really _want_ to like Windows 10. I like the direction it's moving with WSL2/VSCode remote connections, but man am I scared by all the zero-day exploits and all the windows 10 releases that screw up machines. I can't take it seriously.
I am hopeful that MSFT can do something with Windows 10X containers that get rid of these security risks.
If Linux sorted the desktop issues out or windows sorted the server issues out it’d change the market.
I'll take this over the seemingly endless layers of GUI based configuration screens that Windows servers use. A text based configuration file is much easier to understand, and well, configure, imo.
My desktop I just want to plug hardware into and see it work, and run proprietary binaries without ever configuring anything.
Now, I said "better" but still not "good" as the powershell APIs for many critical windows features are a nightmarish trashfire of multiple buggy overlapping implementations of the same thing, but they exist. It is now very possible to admin a Windows box from the console. And as much as Powershell is a bad programming language, it's a very powerful and expressive one that bridges the gap between shell scripting and full-fledged programming.
Too bad there are dozens of different incompatible text-based formats for everything... oh and that they completely lack discoverability.
The half-baken "Flat UI" trend in Windows or the telemetry does not really concern me. Really, it is no deal for me and my colleagues. Embrace, Extend, Extinguish? Oh come on. I'm far more concerned about Microsoft losing against other players. That's the world you should be afraid of.
The best thing about Windows though is Visual Studio. The general consensus is, that it's slow, clunky and hard to use. But actually, that tool is so utterly powerful, streamlined and deep, that every other development environment I every used is missing something of its glory.
And I also love Linux in some ways. I used all different kinds of distributions, either through dual-boot or through Virtualbox, but actually the only thing I really use it for is server-side web-development. And well, what can I say. I love the server side applications. But all those arcane commandline wizardry and the configuration madness still irks me now and then.
But well, to return on topic: It's clear that I mostly work with clients, which mainly use Windows. And there is a lot of software written for Windows environments which can probably never be replaced by other software running on Linux. The thing is, that the push of Microsoft to cross-platform .NET Core or even cross-platform UI (MAUI) opens up those applications to other environments. I'm not fully convinced, yet, but we'll see.
Sorry, for rambling. Just my thoughts.