As long as you stay away from perpetually-beta distributions that I shall not name, driver problems are really a non-issue. I haven't had a malfunctioning peripheral under Linux in a very long time now (years?). Driver problems are on-par with what you see on Windows :-).I recently installed a workstation for using CUDA, with X11, using nVidia's off-the-shelf packages (the Ubuntu CUDA packages have some compatibility problems).
- On Ubuntu everything worked fine first (LTS, 14.04), after some upgrade, X11 did not come up anymore. Some problem with DKMS. While debugging, it doesn't help that Canonical has made disabling the display manager completely non-sensical. Something akin to
update-rc.d -f lightdm remove
does not work anymore. IIRC I had to pass a parameter on the Linux command-line through GRUB (really?). Of course, this was not documented in any logical place like a manpage.
- On CentOS installing the CUDA package simply gives a blank screen and you cannot switch to TTYs anymore. You still have to manually disable nouveau, etc:
https://www.linkedin.com/pulse/20140808222919-219659043-rhel...
https://devtalk.nvidia.com/default/topic/842496/nvidia-drive...
Of course, this is just an anecdote. But my experience while still reading Linux forums and helping other people, it's often still work to get and keep hardware running.
I don't have much experience with Windows. But on the few HP/Dell workstations that I have set up, Windows generally worked out of the box.
As long as the desktop respects ICCCM (hint: they all tend to do) and you don't write your application using some obscure, non-ICCCM compliant toolkit, this tends to be a non-issue.
There is much more to a desktop than just being able to display windows rendered by a random toolkit, such as: consistent keyboard shortcuts, consistent look an feel, etc. Every time that I tried to switch back to Linux, the lack of consistent keyboard shortcuts drives me crazy (though they are typically somewhat consistent within the applications provided by KDE, GNOME, etc.).
it's just as easy for a malicious user to keylog you on Windows or OS X
OS X uses GUI isolation, only applications that a user has explicitly enabled in the accessibility options can listen in on keyboard events or send events. Moreover, app store applications use sandboxing by default and can't see files outside the sandbox. So, this is false.