I have much of a love / hate relationship with Linux. From a philosophical standpoint, I love the idea of a free, open operating system that I can modify as I see fit. But every time I really try to use Linux, I am vastly disappointed.
Lets face it, I am a windows guy for one reason: predictability. When I sit down at a windows machine, I know what I am getting. I can get online. I know where settings are. I can make it do what I need to do, reliably. These are things I cannot say about Linux.
Linux is uncharted territory.
The user interface is strange. The command line is even stranger. It took me a long time to understand that Linux is a command line and little else. However, the most important thing to using Linux:
Without search, it is impossible for the average user to use Linux. Almost all Linux problems can be fixed with a single line of shell script, but you have to know that first. Once you know it can be fixed, a quick Google search will typically give you the solution.
Being the uncharted territory that it is, the worst thing you want to encounter is a hardware problem. And the worst of those are hardware problems that involve networking. How can I find the answer to my problem when I cannot even reach Google? Yet, which problems do I encounter most? Networking problems.
Remember the old mantra for learning Linux: If you want to learn Linux, format your disk and run Linux.
But from my experience: If you want to hate Linux, format your disk and run Linux.
I am so much happier running Linux when I do not have to deal with hardware. I have been so much happier running Linux inside a VM. I was so much happier running Linux from a live disk/stick. And I bet that I would be so much happier running Linux on hardware designed for Linux.
Besides, I love Linux on my phone, even though people want to call it Android.