From the standpoint of general-purpose computing, David_the_H's answer is excellent.
In the home user space, you can find a native Linux program to do almost anything you can do in Windows, except play certain Windows games (and many of them can be played with Wine
). I cannot remember the last time I wanted to do something that I was not able to do with Linux.
(I am not a gamer. I have nothing against gamers--both my sons are prodigious gamers and very good, but I've got too much other stuff to do. I know I wouldn't have time to get good at complex games, and I don't need to mediocre at a new skill, so I stick to PySOL.)
In the business space, as for CAD programs, medical records programs, and the like, there is a lack of enterprise level software because the enterprises that use those programs tend to be tied to Windows; the companies that write those programs do not extend the effort to write for Linux.
theKbStockpiler is right on the money in pointing out that Linux is not Windows and there is a learning curve. I disagree with his statement to this extent: Using Linux does not require being a sysadmin or a developer, and I think his comments embrace user-level proficiency with sysadmin/developer proficiency. Administering a Windows domain is a complex undertaking that requires substantial learning, just as does administering an LDAP domain.
Having progressed a good way around that learning curve on my own with the help of LQ and other online resources, I am convinced that Linux-based computing is ultimately easier and more logical than Windows. For an experienced Windows user to become comfortable using the Linux desktop will take a short while, but it's mostly a matter of learning the menus and getting acquainted with new programs.
For those who like to dig under the surface (I'm one of those), the learning will go on and on. That's where the fun really begins.