Instead of just talking through my hat, let me give you a few tangible drawbacks of the alternative to Windows :
- No stability, bugs, regressions, regressions and regressions: There's an incredible amount of regressions (both in the kernel and in user space applications) when things which used to work break inexplicably, some of regressions can even lead to data loss. Basically there is no quality control (QA/QC) and regression testing in most Open Source projects (including the kernel) - Microsoft, for instance, reports that Windows 8 recieved 1,240,000,000 hours of testing whereas new kernel releases get, I guess, under 10,000 hours of testing - and every Linux kernel release is comparable to a new Windows version. Serious bugs which impede normal workflow can take years to be resolved. A lot of crucial hardware (e.g. GPUs, Wi-Fi cards) isn't properly supported.
- Hardware issues: Under Linux many devices and devices features are still poorly supported or not supported at all. Some hardware (e.g. Broadcom Wi-Fi adapters) cannot be used unless you already have a working Internet connection. New hardware often becomes supported months after introduction. Specialized software to manage devices like printers, scanners, cameras, webcams, audio players, smartphones, etc. almost always just doesn't exist - so you won't be able to fully control your new iPad and update firmware on your Galaxy SIII. Linux graphics support is a big bloody mess because kernel/X.org APIs/ABIs constantly change and NVIDIA/ATI/Broadcom/etc. companies don't want to allocate extra resources and waste their money just to keep up with an insane rate of changes in the Open Source software.
- The lack of standardization, fragmentation, unwarranted & excessive variety: Too many Linux distributions with incompatible and dissimilar configurations, packaging systems and incompatible libraries. Different distros employ totally different desktop environments, different graphical and console applications for configuring your computer settings. E.g. Debian based distros oblige you to use the strictly text based `dpkg-reconfigure` utility for certain system related maintenance tasks.
- The lack of cooperation between open source developers and internal wars: There's no central body to organize the development of different parts of the open source stack which often leads to a situation when one project introduces changes which break other projects (this problem is also reflected in "Unstable APIs/ABIs" below). Even though the Open Source movement lacks manpower, different Linux distros find enough resources to fork projects (Gentoo developers are going to develop a udev alternative; a discord in ffmpeg which led to the emergence of libav; a situation around OpenOffice/LibreOffice; a new X.org/Wayland alternative - Mir) and to use own solutions (Ubuntu won't use systemd).
- A lot of rapid changes: Most Linux distros have very short upgrade/release cycles (as short as six months in some cases, or e.g. Arch which is a rolling distro, or Fedora which gets updated every six months), thus you are constantly bombarded with changes you don't expect or don't want. LTS (long term support) distros are in most cases unsuitable for the desktop users due to the policy of preserving applications versions (and usually there's no officially approved way to install bleeding edge applications - please, don't remind me of PPAs and backports - these hacks are not officially supported, nor guaranteed to work) Another show-stopping problem for LTS distros is that LTS kernels often do not support new hardware - i.e. a new Intel Atom IC is only supported well by Linux kernel 3.5 - no LTS distro has this kernel.
- Unstable APIs/ABIs & the lack of real compatibility: It's very difficult to use old open and closed source software in new distros (in many cases it becomes impossible due to changes in core Linux components like kernel, GCC or glibc). Almost non-existent backwards compatibility makes it incredibly difficult and costly to create closed source applications for Linux distros. Open Source software which doesn't have active developers or maintainers gets simply dropped if its dependencies cannot be satisfied because older libraries have become obsolete and they are no longer available. For this reason for instance a lot of KDE3/Qt3 applications are not available in modern Linux distros even though alternatives do not exist. Developing drivers out of the main Linux kernel tree is an excruciating and expensive chore.
- Software issues: Very few games and very few AAA games (Humble Indie Bundles and Oil Rush - two independent, very rare occurrences - in 2012-2013 joined by few Valve/Steam titles (vs. thousands of games released for Windows every year) don't really count), no familiar Windows software, no Microsoft Office (LibreOffice still has major troubles opening correctly Microsoft Office produced documents), no native CIFS (simple to use, password protected and encrypted network file sharing) equivalent, no Active Directory or its equivalent.
- Money, enthusiasm, motivation and responsibility: I predicted years ago that FOSS developers would start drifting away from the platform as FOSS is no longer a playground, it requires substantial efforts and time, i.e. the fun is over, developers want real money to get the really hard work done. FOSS development, which lacks financial backing, shows its fatigue and disillusionment. The FOSS platform after all requires financially motivated developers as underfunded projects start to wane and critical bugs stay open for years. One could say "Good riddance", but the problem is that oftentimes those dying projects have no alternatives or similarly featured successors.
- No polish, no consistency and no HIG adherence (even KDE developers admit it).
More at the source of the above