Unfortunately the linux diversity is a huge problem. Not only is it difficult to choose a distro, but every distro has its own problems. Be it because of different UI, different kernel versions, different preinstalled apps, different libs, etc. All these things can hugely increase the error rate - and they do.
Not long ago I tried out 5 popular linux distros and each one of them had something which didn't work, but worked on the others, and vice versa. That's not the desktop experience I would like to recommend users. That's also not an attractive system for 3rd party developers. Just imagine the nightmare you'll have if you want to give support, and each distro has another cause why it fucks up the app.
It's sad. Honestly. In fact I wanted to recommend my family and friends linux, but I simply can't because of all the inconsistencies and madnesses that will come with it.
The only "solution" to linux would be a something like a "mother" distribution (offering a standardized desktop experience with a fixed amount of standard apps, UI, libs, APIs, kernel version etc.), and from which every other linux inherits. Other distro may add their own apps additionally, but in the end, always the "mother" distribution" would be the one to recommend to the common people, and to create new software for.
In order to happen, the linuxers must come together and publicly declare a specific distribution as the "mother" distribution. There must be public announcement for that. You can't expect companies to select a distribution from the existing jungle, because every company will select something different, and thus create new problems.
If this ain't gonna happen, then linux will always stay niche.