Before anyone starts getting the pitchforks and torches out, let me say that I do use open source software. I use it on my home Internet router. I use it when I program web scripts for my websites. I use it for my online webmail. I do not completely throwout open source, I just don’t think it has the potential that people may think it has.
Reason 1: There is no constant, heavy, quick technical support in open source software
People who are for open source may tell you that open source projects have their own forum to allow users of their software to receive support. The problem is, no one is obligated to help you in any matter of the software. Why? Because it is FREE! You are not paying them a dime (donations do not count), so what real incentive does anyone have to help anyone with the software?
If you are fortunate, you might have 1-5 people who might stick around and help users out frequently. However life happens and these people may not be around for a long time.
Also, support from Red Hat or Novell does not count. You are paying them for support. That is totally different from free community support.
Reason 2: Nothing is really free.
If you studied economics in school, you will know that nothing is really free. It still took money, time, and effort to make whatever it is that is free. Open source projects like CentOS and Ubuntu still take money to operate. Don’t ever think that it doesn’t. They have to pay for things like: servers (to run the website), equipment to test things out on, maybe even paying a few friends for their time in helping them with the project, etc.) Everything in the open source world somehow, someway costs money!
Reason 3: Possibility of people taking a particular open source project and adding/modifying/deleting parts of it and then releasing it under a different name.
The act of taking an open source project and making your own version of the project is called forking. Programmers fork projects because they want to “control” the project, but since they cannot control the main project, they just make a copy of it and modify it to their own needs and desires. Then they release it (sometimes) under a different name.
There is nothing inherently wrong with forking a open source project. However, this can potentialy confuse someone who is wanting to use the software, because instead of being able to choose form only what the main developer(s) made, they now have to choose between the forked project(s) and the main project. Which open source project has the best features for my needs? Which project has the best free support? Which project will be around in 3 years?
Reason 4: Several “clones” of the same thing.
With open source software, you will notice some projects appear to be clones of each other. The best example of this is the desktop Linux operating systems. There are many computer desktop Linux operating systems out there, but why so many (not including the smaller Linux OSes)? How is someone supposed to choose between Ubuntu, CentOS, Linux Mint, Debian, Fedora, Slackware, Arch Linux, Gentoo, Mageia, OpenSUSE, PCLinuxOS 2011, etc.?
Reason 5: No responsibility taken.
You probably will find that the open source software you are using is not under any kind of warranty. The developers of open source software will probably, most of the time, not take responsibility for any damange, loss, or anything else that happens due to bugs or what not.
Everyone is free to choose what kind of software they use, but remember that free does not always mean better.