What I see as the challenge for open-source is organization and incentives. It’s hard to find good people who want to volunteer their time to create the less fun and glamorous parts of the puzzle. There needs to be someone directing the talent pool and incentives to do hard and otherwise unrewarding work.
I think this is the same thing that holds back desktop Linux. There aren’t a lot of people willing to do that last 10% to make it really great for the average user. Instead we have a dozen different package managers, that average users simply don’t care about.