So it seems GNU/Linux is perfect, and the gods on top of Olympus are using Linux PCs instead of drinking ambrosia to keep themselves satisfied, right? Wrong. Linux is far from perfect, but so is any other system. And that is fine. For one, it would be boring. A perfect system would never change. We would never see anything new… for eternity. We’d soon grow bored of that (after a couple of hundred years of looking at the same set of wallpapers at least). That said, Debian Stable is close to being just like this… (i.e things not changing for what might feel like centuries.)
There are certain shortcomings of Linux, some of which might make it look unattractive for some, and a no-go for others. A few examples are:
No MS Office. Seriously. There are still people, who would be turned off by the lack of a ribbon. There is, of course, LibreOffice, an excellent free alternative, but its interface is not quite similar to that of newer MS Offices (although LO 5 is arguably better). More elaborate office documents may not look as good as they should when edited in LO. There are however cheap, commercial alternatives if one needs 100% compatibility, and WPS office is coming along nicely (although still in alpha stage for Linux), not to mention the latest addition: OnlyOffice.
Hardware compatibility issues. Yes, we still have those. The Linux kernel is constantly updated, so it would support the latest and greatest hardware, but it will always lag behind Window$, which gets the manufacturers’ full attention (in exchange for copious amounts of money, of course). That said, it really only affects hardware, which is so new, it’s still warm. One major setback might be video drivers. Free drivers are available, but to get the most out of your 3D capable cards, you’d need the closed source drivers. Most people don’t mind this, but there are cases, where this is impossible (Gnome 3 does not work with ATI closed source drivers, for example). So it can be somewhat of a compromise…
Software compatibility. If you have purchased expensive software for Window$ (silly you), you might want to keep using it. It might be possible under Linux (with the aid of a program called Wine), but there are no guarantees. And the latest software tends not to work, or only work partially. Of course, there is always the possibility of running Window$ in a Virtual Machine (VM), but that usually needs powerful hardware.