Leaving de Icaza’s reasons for these conditions aside for a moment, the fact remains that there are not a lot of popular applications ported to Linux. The classic reasoning has been either one of resources (“why code for a platform with no significant user base?”) or technical (variations of the reasons de Icaza cited).
This first reason has always been diabolically circular. You can’t get more users until you get more apps… and you can’t get more apps until you get more users. Chicken. Egg.
The second set of obstacles is a bit easier to tackle, in that it’s a straightforward solution: it should not be technically challenging to build an app for the Linux desktop.
And really, it’s not. Developers code awesome apps for Linux all of the time. But (especially in the enterprise) developers tend to create apps that work on whatever distro they’re targeting. On a commercial distro, this is a lot easier: the target isn’t moving so fast. On community distros, that may not always be the case.