I have been using Linux for over 20 years. A lot of ways of doing things have changed over the years and will continue to change. BSD is another UNIX type system that at its core hasn’t changed as much. Linux has a licence that requires people to put their changes back into the community whereas BSD is happy to have companies put their own intellectual property into BSD but not share it back to the community. When I tried a BSD system, I felt like I was using Linux from 20 years ago. In a way, BSD is quite purist in its core state. You can rely on systems like Linux and BSD. BSD is probably more so but there can be a few limitations here and there. Not that it really matters.
I have used Windows and OSX over the years and I had to learn the Windows or OSX way of doing certain things. That in itself was fine. Though now after using a few different systems I know how to integrate them all in a home set-up. I feel both OSX and Windows are a little flakey with file management. One problem can be duplication through certain software. I found OSX was a pain in the long run when I relied on it to collate photos for example. This wasn’t entirely the fault of the system, I just didn’t know the most efficient way of managing things on the system. These days when I use systems by big companies I leave most of my files on UNIX based systems.
One thing to keep in mind in the mess of choices is how do you integrate them in a cohesive way. There are plenty of people who do things differently. I don’t really think the values of commercial systems and free as in freedom systems are cohesive in kind. Yet they differ enough to fit the pieces together. When you look at commercial offerings, they will require the end-user to pick the power they need for whatever software they need for the job. Linux and BSD are more about efficiency and efficient software mostly, the requirement of needing grunt is not a common way of designing software for these systems. For example, I once used a low RAM Linux system to process large files which were memory intensive.
The system suffered under load, yet it actually kept working in the background and completed the tasks even though the system became unusable while the files were processed. That screams of efficiency, any commercial system would crash under the same circumstances. I have had plenty of big programs in commercial offerings fail to load when the system is near the end of life. They literally won’t even open let alone start processing a file. These are the core differences between the different offerings out there. Some are designed to run on low resources, others are designed to run on only high resources. That is probably why I find the general questions about why don’t big companies design software for Linux. Number one, they are not designed for a broad range of hardware. The goalposts move quickly in the commercial world.