Work specific stuff is great, too. Virtualization support is awesome. The software repos make it insanely easy to get development tools and libraries installed, even for complex stuff like cross-architecture compiling and test tools like Qemu.
Linux is probably the most useful and flexible OS ever made.
I can build for Windows and not worry about Linux. It's like Linux has chosen Win32 as a native application format in a way.
In some ways I bet it is easier to ship Windows binaries for use on Linux than it is to ship Linux binaries for use on Linux.
It's like Linux people have given up trying to solve their problems and have just chosen a Windows binary-based workaround.
I personally would not pay for or probably even use software that only "supports" Linux through WINE since it will have all kinds of fit and finish issues that make it painful to use. I'm actually in the process of converting all my old files so I can move to open source Linux-native apps and remove WINE entirely. Win32 apps look and perform horribly on GNOME.
The Linux binary distribution "problem" (from a Windows user's perspective) has been solved for a while by things like AppImages or Flatpaks that bundle the libraries the program needs without static linking. Most Linux users simply prefer the old repository based way of distributing software.
"Linux" just doesn't have an ABI problem. Provide all the libraries your app needs, and it will run.
And I don't see how Flatpaks are better than static linking, except for some sandboxing.
There is still plenty of software that is not well supported, most software tools I've tried had issues. Many Operations like copying files can take way longer trough wine.
Also most Linux folks highly prefer the Linux way of distributing software. Nobody has choosen wine as an easy workaround except lazy game Devs.
I worked a little bit with windows and OSX. For me Windows is a pain to maintain, everything is just obscure, I can't tweak the desktop to fit my needs and the worst thing is just see how fans and resources goes crazy and I cannot find a reason for that misbehaving. Not flexible at all.
OSX is a little bit nicer for me but still closed, not flexible and for some reason consumes resources like crazy.
We all have different experiences I think familiarity is the strongest factor.
I don't want to tweak. I just want to work and things should just mostly work out of the box.
Whenever I try Linux Desktop I end up tweaking a lot.
Going further, workstation tweaking is a power feature, for those that want or need it.
For BSD I am just to lazy, and ChromeOS is not more an OS than android is.
I've been in the Unix world almost all my life, switching between MacOS/OS X/macOS and some flavour of Linux every few years, and finally decided to try Windows a few years ago after they announced WSL. And the experience has been really good so far.
I have been in unix since '90 and am most comfortable there for work but Windows fits into everything else in the office, as much as it can be done.
If you are doing web dev mostly then Linux is a no brainer. It is what I use for both my work and personal project machines. Windows with WSL might be a good choice if you also need to work with some Windows only apps.
If you are doing heavy video/audio stuff or iOS development Macs make the most sense.
Windows now only really makes sense if you have to use a Windows only toolchain. I’m not trying to be a snob, I used Windows from 2.0 days up to about 4 years ago when I switched to Linux. Before that I was using a lot of the tools installed with msys to have a pseudo Linux box via its bash terminal app. It isn’t worth the impedance mismatch.
I'm currently one of a few macOS devs in a primarily windows shop because I got involved in supporting a mobile app. Whenever I have to work on our none-mobile codebases I run into all sorts of issues that the other devs never have, and it definitely impacts my efficiency.
I also end up doing a lot of scripting, and now those scripts are either slower to write(if I consciously make them OS-agnostic) or unshareable.
That may not be an optimal strategy either. In my last job most devs were on Windows even though our software was deployed on Linux servers. I had Linux on my desktop and I had much less problems than my colleagues due to them effectively having to maintain 2 OSes instead of one. I was also a go-to guy for anything Bash or server related, because for me it was just everyday stuff, but the Windows guys didn't have those Linux muscles developed.
I'm really not a fan of Windows 11, but Linux just doesn't work as well on my laptop right now without loosing some features.
I've been using Linux for 20+ years now and agree with the person that said Windows 11 is essentially the best of Linux and *nix.
I guess if all you do is web dev work and can live entirely in docker containers/VMs, but I work on hardware dev (usb, i2c, spi busses) and the closest thing to a virtual environment I get is python venvs. My Desktop OS must run on bare metal, period.
But if that's the case (web dev), then desktop app compatibility doesn't really matter anyway, beyond front-end testing in native browsers -- easily done in VMs.
I run Manjaro and FreeBSD desktops and Mac Laptops and have literally dropped Windows-based systems from compatibility with our USB instruments because of how bad the hardware support for USB/serial devices is and I just don't want to support it. 80% of our customers use Mac-based laptops anyway, and most industrial users just use industrial raspberry pis to work with out equipment.
FreeBSD is my preferred Workstation OS for my python-based development as it forces me to think multi-platform in a way Linux just doesn't. It also has some very strong *nix design philosophy behind it, making it rather enjoyable to develop for.
This is, technically, not true. With WSL2 there is a Linux Kernel running in a small VM. So you are using Linux OS.
It's fundamentally not a *nix environment.
I have had so many problems on WSL1/2 and the performance is just not comparable to my current Linux system, where everything just works how I expect it to work, no company automatically installing software (spyware) on my system without permission, no urgent automatic updates while I'm working and no new telemetry settings I have to disable after each new upgrade.
In linux I just have control over everything and it just doesn't get into my way while working.
Not everyone loves Linux Desktop....
It's a recent development so you might have missed it.
I want to be able to draw on the institutional knowledge of how to get around things. I once made the mistake of being the only Windows developer at a company and it rendered me 80% as productive as I was constantly running into errors that nobody else had overcome.
Maybe my productivity would have increased after a while. But for the first year I only feel hindered by my OS
But as you have discovered it isn't just the OS, but also the corporate infrastructure that makes it far easier to go with the majority. When I work in Windows environments I just call IT support to fix problems. Rather that than me muck up something. If they do, then it's on them.
There are times when each has its strengths, but if it comes down to preference, I pick linux.
The reasons are conceptual consistency, corporate independence and extensibility.
If the platform is stable and being maintained, isn't controlled by a rent-seeking corporation, I'll put up with a lack of whizbang gadgetry.
If it is stable, I can augment the platform myself, and the investment of effort makes sense.
That said, I do like the WSL2 work MS is doing, especially when paired with vscode. On the other hand I HATE the dark pattern BS microsoft pulls these days.
It something to do with the environments or clients smooth interactive operability
Whichever OS is better and more efficient in configuration to achieve that, it'd be used the most
I've been a MacFanatic since December of 1983, when I saw a prototype of the original 128k Mac behind closed doors. The only apps were MacPaint and MacWrite and the calculator, and all it took was five minutes to convince me that this is how all computers should work. I was still in high school.
I've also been a nix [1] geek since 1984, when we were using a PDP 11/70 running BSD 2.9.something (I think), with a whole 64KB of RAM in two 32KB banks. This was the standard multiuser computer system operated by the University EE/CS department for undergraduates. The CLI still makes so much sense for so many operations.
IMO, modern macOS is the best combination of the concepts of the original macOS and nix -- in part because it's based on Mach and BSD Unix under the hood.
[1] I use the term "*nix" here, because I have also been using Linux since 1998, when I was hired by Belgacom Skynet, which was the ISP arm of the former PTT for Belgium. I've used many varieties of Unix and Linux over the years, and while I have certain preferences, I'm not that bound to any one particular variant that I've tried.
Older Windows are a good choice for a workstation. Recent ones are not.
If I'm not doing mobile app dev, then will easily choose Linux.