I agree with everything except for the past tense "failed". I would use the (pause while I look this up) present perfect. Linux has failed on the desktop so far, but with influence from Android platforms and the availability of cross-platform dev tools like Java, Qt, Tk, and crap-in-browsers, it may yet succeed. I work on a desktop application for Windows and OSX and at least 80% of my development I can do on my Linux machine.
EDIT: meant to stick this in - really to capture the desktop market, Linux only needs to emulate or simulate WinXP functionality. For most users, Win7 only adds gimcrackery.
> at least 80% of my development I can do on my Linux machine.
That's the whole problem right there. The remaining 20% are all the desktop-integration features and UI polish that is not cross-platform, but which makes the difference between a run-o'-the mill app and a great one. And OSX does raise the bar quite high for the latter.
EDIT: meant to stick this in - really to capture the desktop market, Linux only needs to emulate or simulate WinXP functionality. For most users, Win7 only adds gimcrackery.