So many praises for Windows and Mac about 'premium features', 'corporate environment' and 'device support'. But not enough talk about how they treat customers like crap and cash cows. Windows is replete with spyware and ads. It doesn't respect the user's choices, like when not to do an update or opening the links with a browser of user's choice. Heck! Some versions don't even allow you to register users without a cloud account. And now they are taking definite steps towards ensuring that you can't do anything they don't approve - with TPM and pluton non-sense. Praising windows is like being in an abusive relationship and finding justifications for it.
Mac is on the other extreme. They lock down their platform more and more in every revision in the name of security. It's getting harder to side-load apps. Why? For security, of course! No mention of how security comes primarily from platform design. Then there is the hardware, where everything is glued, soldered, riveted, digitally locked, etc, etc. Any small issue, and it's garbage. Not even parts from another genuine Mac can be used. Macs also have the strange distinction of needing calibration and signing of any part that can be replaced at all. It's deliberately designed to extract more money from you and create a tonne load of e-waste (iWaste?). Mac fanbois have a habit of justifying it in the name of 'miniaturization' and progress. Honestly, that's just hand-wavy and completely wrong technical argument. And Apple says it is all for 'privacy' and 'security' while their actual reason is the pursuit of double-digit growth (not just profits). So, in effect, Apple is saying to their customers "Oh honey! You're are just too stupid to take care of it. So let me just decide for you" - all the while squeezing you for money. Does it end there? Oh no! They need developers to pay a yearly fee and want to take a huge cut from their profits. All that for "providing the engineering, platform and services". As if the exorbitant price they extract from their customers isn't enough.
The hardware situation on Linux distros and frankly even BSDs isn't as bad as it is projected by some. Most devices just work even on a live installation medium. Even Nvidia works. (Have you considered the possibility that if any device doesn't work, it's the manufacturer's fault and not the OS's? There are plenty of devices for which the community maintains the drivers, just because the device manufacturer isn't an utter trashbag). There are tonnes of games too - thanks to Valve and Proton. And as for the 'corporate env', you are probably just locked in or too used to them. There are users who have been on these platforms for decades now without complaints. And there are companies built entirely on them. Can you say the same about any of the company that makes your OS/devices? Is there one among them that doesn't use Linux or BSDs?
Look! I'm not claiming that everything is rosy on the Linux and BSD side of things. Sometimes you have to find an alternative way of doing things (there are plenty of options). Sometimes, you have to configure a lot. Sometimes, you have to carefully choose your hardware so that your life is easier with Linux and BSDs. But there is one thing they don't ask you to do- and that is to surrender your self-respect. You don't get treated like cash cow. You don't get spied on as if you are a thief. You don't get restricted like a school kid. You're not told that your choices are wrong. Your choices are not disrespected. You don't get treated like you owe them after you paid your hard earned money on the devices they make. Ultimately, it's up to you to decide if the little conveniences are bigger than your self-respect.
Most companies I worked with had a choice of the work laptop, usually Windows/Linux or MacBook.
And the trick is, you cannot buy cheap MacBook. So the choice is using linux but with a terrible screen, unusable trackpad and bad hardware, or take MacBook and enjoy all premium.
So I always take MacBook and then ask for a local workstation where I will have linux with i3 / Sway WM.
Nowadays with WSL Windows is pretty good. Pretty much anything you can do on Linux you can do on Windows.
Now, not being worse is not really a point towards Windows. For developers its absolutely not worth it tanking the horrible storage performance, preinstalled ads and handing your soul to Microsoft for the privilege of not being worse than native Linux.
I moved so Microsoft doesn't spy on literally everything I do. For programming it does seem to be easy to discover new things when you are part of different linux circles.
Windows here. And WSL. Best UI and hardware compatibility with all UNIX tools I might ever need. As a bonus I can also play games and use industrial apps for my hobbies.
Is there any GUI for either GDB or LLDB? Most cases, I don't think "writing macros to do complicated things" is a path walkable for me, especially as I mostly want to do simple things.
Fedora Silverblue is very nice for development work. You can have separate toolbox containers for each toolchain and not worry about it messing with the host OS.
(Unless I'm working with Python. Then it'll find some way to install shit deep in ~/.local or whatever.)
As long as I can use a single key combo to get to Wezterm and a single key combo to get to Firefox, I don’t really care. But Raycast is really nice if on Mac.
I could never find a wifi adapter that worked for my various Linux installs. Still a student so I don't have access to ethernet and a development machine without internet is missing the point.
My laptop can run Linux with the wifi working but I'd rather have a Windows PC than a Linux laptop.
No, seriously. I've tried getting Unity to work on Linux once, and gave up after few hours of random crashes, bugs or errors. And I never even got to building the game, which I'm sure would be an entirely different adventure that would still in the end require to reboot to Windows and try the build there.
Also, getting O365 to work on Linux was another reason why I eventually gave up, since our company is simply a Windows-based, and the web apps are just too cubersome to use. And for alternative clients you usually need an app password (disabled in our domain) or another setting that you don't want to enable for 95% of your employees, since it's just a security risk in the wrong hands.
Oh, and then there are VPNs. I never managed to get Checkpoint mobile working on Linux, without it also requiring intervention from IT to enable some obscure configuration or protocol support.
It's a shame, but every attempt I made to switch ended exactly the same - after few days of running into "make sure to enable this config on the server side" or "if you don't see that option in the settings, contact your system administrator" for every tool I need for my job, I just gave up.
But I'm considering it giving it another try, and just go with the Unix + Windows VM for administrative tasks. But knowing myself, just the small hurdle of "having to spin up a VM" would be a reason to postpone and not do it properly, since that's additional effort... And then there's still the gamedev I do part-time, where I simply don't believe it's a good idea - after all, given the states the engines are in, it's a recipe for disaster of "works on my machine but not in build" or "doesn't work on my machine"...
Ugh that kinds of annoys me, just use the right tool for the job, if you need to use VS (not Code!) or do .Net (if not Core) dev you will have to use Windows (one way or another), if your target platform is Windows primarly, it makes sense to develop on Windows.