Here's a thought experiment:
Imagine you're a 7th grader who has become intrigued by computers. If that kid tries programming on "Linux" and creates her first couple of apps using whatever tools and libraries she can grasp at the start-- then what will happen??
1. She becomes a web developer. OK, fine... but don't expect desktop apps from her. In fact, don't even expect "Linux" to enter her mind when she thinks of users.
2. She gains a yen for all the *nix plumbing and becomes a system-level tinkerer, writing some KDE or Gnome apps as a way to fill some acute voids in a way that fits into her elite usage patterns. Again, don't expect *good* apps from her. She is interested mainly in cool new ways to arrange the plumbing and impressing only her hacker friends.
3. She STOPS coding when those first tentative steps toward her big ideas ended up having zero chance of running on her uncle's or her classmate's "Linux" systems; copying her code to those other systems resulted in a flop. What's more, she wasn't able to describe to those people ways of troubleshooting the problems that prevented the apps from running, getting puzzling descriptions back from them that she didn't recognize.
3. a) She discovers Windows and Mac systems have the consistency she needs to show-off to her non-technical friends and family, and since those are the people she's trying to impress early on (instead of impressing hackers) her personal development as a coder gains a healthy appreciation for the non-techies' point of view and she becomes a good app developer.
TL;DR; The Linux distro eco system cannot "grow" good app developers. It just cannot. Its too chaotic for the right kind of nurturing of talent to take place.
I think Shuttleworth has been inching away from the distro culture and this is part of the reason why Canonical is frequently criticized; they have needs for future releases of Ubuntu that the non-forked 'plumbing' projects aren't meeting. And then there is ElementaryOS, which seems to have a fully realized platform philosophy that doesn't include "Linux compatibility" (whatever that means) in its future; They plan to diverge increasingly in the future for the sake of internal consistency and usability. I wish them both great luck, and advise Canonical to commit to diverging the way ElementaryOS has, because the pack they're associated with now are just pretenders.