I've started to think that if linux is ever going to gain traction in the desktop, it is going to happen through somebody like Google, because it requires a bunch of things that the community is not capable of delivering. I'll list a few things that I think are important:
- retailers that sell your devices (laptops?) with software preinstalled. Every hardware thing you ship and officially support must work without a hitch.
- credible application market. You are never going to get off the ground unless you allow for proprietary software, which takes in form of independent software vendors writing code on the platform. Proprietary software is critical for the symbiosis of end-user and developer interest on the platform.
- commitment to a stable ABI that works (= never break applications that worked on any previous version). The nice thing about a laptop/PC using x86 is that there's usually a whole lot of system resources and techniques that can be spent on this, so backwards compatibility could actually be fairly easy. The key to success is this principle: new version can not be deployed if it breaks old code.
As far as I can tell, the community has tremendous trouble with all of the above. First requires capital and credible story for a linux device as product, including a way to earn revenue from the thing eventually; second requires giving up on software freedom ideals for the sake of capturing user and (proprietary) developer interest; and third requires developer professionalism that tends to come only with a paycheck, because it's frustrating and thankless soul-sucking work.