I only say that reinstalling is not solving a problem in the context of troubleshooting and finding a fix. But yes, is not a good solution because it is a pain. I did so much reinstalling in my windows years that one of the best things I did was to learn to create a separated partition to use for data because it make reinstalling so much easier (it was back in the days of winME and it was an event to do a reinstall, we would usually go to a friend’s house with the HD or the whole machine just to be able to backup everything).
About the software it is like I mentioned (maybe in other comment) with hardware compatibility. If it is a windows first software, usually Linux support is done in “best effort”, so always lags behind. This is specially true to closed source software as the community can’t even help. In any case, one sad reality is that programmers usually are terrible at building and packaging software for release, and that is not a Linux only problem. The famous dll hell on older windows were due to terrible packaging. That is why docker is so popular, so people don’t have to bother with packaging.
For FLOSS software what I usually see is in software not on the distro repos and it not being compatible with the distro because the devs don’t build for it. With closed source/binary-only what I see the most is broken dependencies because they build it wrong, targeting the OS libraries instead of bundling everything with the package.
I only say that reinstalling is not solving a problem in the context of troubleshooting and finding a fix. But yes, is not a good solution because it is a pain. I did so much reinstalling in my windows years that one of the best things I did was to learn to create a separated partition to use for data because it make reinstalling so much easier (it was back in the days of winME and it was an event to do a reinstall, we would usually go to a friend’s house with the HD or the whole machine just to be able to backup everything).
About the software it is like I mentioned (maybe in other comment) with hardware compatibility. If it is a windows first software, usually Linux support is done in “best effort”, so always lags behind. This is specially true to closed source software as the community can’t even help. In any case, one sad reality is that programmers usually are terrible at building and packaging software for release, and that is not a Linux only problem. The famous dll hell on older windows were due to terrible packaging. That is why docker is so popular, so people don’t have to bother with packaging.
For FLOSS software what I usually see is in software not on the distro repos and it not being compatible with the distro because the devs don’t build for it. With closed source/binary-only what I see the most is broken dependencies because they build it wrong, targeting the OS libraries instead of bundling everything with the package.