@NB
"...in other news the flexibility and customisability of the GNU/Linux desktop is far superior to both Windows and Mac."
Why is it the "GNU/Linux desktop" all of a sudden? There is no such thing!!
There is X-Windows (which has sod-all to do with GNU or Linux). On top of this, you can run (say) gnome which, granted is GNU, but has nothing to do with Linux, or KDE, which, again, has sod-all to do with GNU or Linux. There are a few other bits & pieces too, but nothing of much significance.
MS Windows is and always has been complete pants, and Apple are just too far up their own arse to see daylight. I'm a great fan of OSS, but (especially in the Linux camp), their idea of "innovation" is copying what MS and Apple do; much rather add a new "skin" to some existing crappy code that barely stands up than actually make the base code more reliable and usable.
As for flexibility etc, have you ever tried to code for X-Windows? I'm guessing not. It's a bugger to write for, and has many deficiencies. The basic problem with X is that it was developed as a kitchen-sink approach to providing a GUI. As a result, it's too big, its API is inconsistent, it's got some serious performance issues, etc etc.
I'm not saying the Windows GUI or the Mac GUI are any better (although I dislike Windows intensely, I would put the basic WIndows GUI API in the "not bad" category. Not good (god NO!), but it could be worse - it could be X!).
I don't know about coding for it, but I use a Mac regularly, and I HATE the GUI. It's awful, and I can't understand why so many people hold it up as a lesson on how a GUI should be. Stuff bounces about to grab your attention (I KNOW I have a new email - you don't need to keep telling me!), the mouse movement is shockingly bad, pop-up windows (like spell checks) appear over the top of the thing you are trying to read so you can't actually see what you were writing any more, icons appear from nowhere on the desktop like a bloody plague, it leaves ".Desktop" (or whatever they are called) files and directories scattered all over the place (a REAL pain in the arse, especially when using memory cards).... shall I go on?....
Considering the basic PC GUI has been around for some 40 years now, it's still basically awful. Absolutely none of the basic ideas have changed in all that time, and it's still frustrating, inefficient and time consuming to use, memory hungry, slow, and generally pretty poor. After all this time, we SHOULD have something a hell of a lot better than we have.