True, but he mentions .NET development is Windows first, and even mentions that you have "some IDE's that work with it, like Rider". He kind of said it without mentioning the specific IDE.
I don’t think it is fear. We are transitioning our decades old software to .net 6 right now. It will approximately take a full year (we are about halfway done) since we use WPF, WCF and a lot of Windows native APIs. And in the end we will be on 6-windows and not the cross platform sdk since we can not get rid of WPF without major UI rewrites.
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.
Did you miss the part where I said they use the security argument to lock down the device and restrict the user? In addition, Linux distros in their default configuration may not be secure - but there are plenty of packages that can secure it down to a deep level. It just depends on the user's threat level assessment. That military establishment vs homeless tent analogy is just pure hyperbole and FUD.
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.
My company didn't leave me a choice, I got an XPS 15 which I had to setup with my distro of choice (but all the internal tooling is for Ubuntu, I personally would have preferred to install Fedora or Debian 12 with i3wm).
It's not that bad a laptop but it overheats like crazy and has really shit battery life (barely enough for a meeting), and some of its features I can't explain : why is a 4k touchscreen on a laptop a good thing? It eats 4x the battery for no noticeable visual improvement. I don't use my laptop 5 inches from my face.
I remember having bad overheating issues with Linux years ago on an XPS 15 (9560 model if memory serves, so unlike yours no 4k or touch).
The key on mine was to disable the dedicated GPU which I didn't need anyway. I remember afterwards, mint would run mostly quiet and the battery lasted longer than on the windows partition. If you are interested look up bumblebee on the arch wiki.
Also I know this reply is late, but maybe it helps.
I prefer a desktop. Don't have to worry about swelling batteries from being plugged in all day... plus they're cheaper so I get new computers far more often than my coworkers who get laptops.
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 have had major problems, because I am also forced to use WSL.
The network situation is the largest problem. Colleagues have had random time differences in WSL causing even TLS to fail, because they were 15 minutes in the past.
I have had major issues, and I think its only because of WSL and wouldnt happen on 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.
I’ve been interested in Nix for a while but haven’t devoted any time to it. What do you like about it? What problems does it solve? Why learn the Nix way of doing things when I could make a container using LXD and just transfer the container around?
What... What problems does Nix solve? throws down his beer What value is precision? Why make a cube about 10cm per side when you can make a cube 10.001 cm +- 0.001 cm? Do you want software that's a collection of found parts that just happens to work? Or a system engineered to precise requirements?
Rant aside: that sums one difference. Both containers and Nix solve an encapsulation problem. They solve them differently. Containers gives software their own namespace. Nix requires software to exist in an a universal namespace. "/bin/bash" may be different between containers. While "/nix/store/bash-82828def8282829whatever/bin/bash" is always the exact same bash in Nix.
Precision has a cost but sometimes the precision is necessary. Eg: nix is great building closures that contain exactly the software requested and no more. While containers are more imprecise: take a base and add on additional stuff. From a software supply line perspective this can be exactly the precision required.
Nixpkgs is (afaik) the closest thing to Amazon's internal package system. So the issues it solves is definitely valuable... To at least Amazon scale orgs.
As a dev who likes to tweak their system Nix offers an unparalleled ability to alter deep dependencies and correctly propagate those through everything. Wanna alter libc and rebuild everything - jvm and all - for some Java service? Yep. Nix will handle the build no problem.
Excessive? Sometimes - plenty of systems work fine when dependencies are mutated underneath. However, when there is a need there is NixOS in a class of it's own.
Also, they are complementary solutions: nix is great at building containers.
Package management is the ultimate problem that was previously left unsolved (no, docker just pushes the problem away, doesn’t solve it. That apt install won’t be the same now as it was when you wrote it). Nix is the first thing that actually solves it properly.
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.
KDE’s UI is better, even if you don’t take the lack of ads into account.
hardware compatibility
What hardware do you use that isn’t compatible with Linux? The only time I had a problem with that was when I was sold a bootleg PS4 controller on ebay once, and it didn’t work via USB (official controllers do work tho). Connecting via Bluetooth fixed it.
Apps ranging from Photoshop to Fusion 360, from TI and Evolv board firmware flashers to Chinese device apps, all kinds of CNC controllers, etc. If your hobby requires an app and it's not a software development related hobby then there's a 99% chance that it won't work on Linux. And even if there's a Linux version of the app, it might lack critical features, like DaVinci Resolve which lacks audio and video codecs on Linux.
The sad truth is that Windows today is the best Linux distro out there for desktop use. And if you can get your hands on an enterprise licence then you won't have any limitations or ads or whatnot.
Windows had a fantastic UI but I despise the changes they have made to it.
A bottom bar showing all your windows? fantastic! windows are such a core component of the OS that it sure looks like the OS was named after them right? So why in the world would closed programs, with no windows appear there? why would multiple windows fuse into a single icon?????
I was fine with just not pinning programs and setting the task bar to "never combine", but they literally removed the option with Windows 11. I really don't understand why Microsoft is de-emphasizing the 'windows' part of Windows. Apparently 'never combine' is coming back at some point to 11, so that's good.
Now, I'm not going to compare the Windows UI to Linux DE's since there are many alternatives that may or may not fit someone better.
As for hardware compatibility, I would say its a mixed bag on both directions. I moved my laptop from Windows to Linux when it started bluescreening when waking up from sleep. It works fine on Linux.
Sure, you have some WiFi cards that don't work out of the box on Linux. But they don't work out of the box on Windows either, you need to install the drivers on both OSs manually so its not any better.
Then you have some computers where Linux works like ass and can't sleep, and you got some computers where Windows works like ass and can't sleep.
The only solid arguments against Linux nowadays is
Programs don't run.
The Windows display stack is vastly superior, VRR, HDR and fractional scaling all working fine for a long time already where Linux is barely beginning to figure them out.
I personally like Windows UI as it is with all the pinned buttons. It is the same way on Ubuntu and MacOS and this is what everyone is used to. Windows also has a lot of accessibility features, it's the only OS, which can be used with keyboard only, mouse only or even a gamepad only out of the box.
As for drivers, I only install drivers if I want additional features. Otherwise everything works out of the box. I haven't seen anything that doesn't work since Win7 days.
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.)
I don't really write Python, but I occasionally find myself having to use tools written in it.
So Docker won't work (unless I do some scuffed mounting to let it access my working files, which is suboptimal regardless) and I can't be bothered to juggle venvs just to rip my Spotify playlists.
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.
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"...
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.