Reason #1 Not To Use Open Source
I have several reasons not to use open source and I will be posting all in short order. By open source, I mean a free assembly I can get on the web that includes the source, usually a development tool that is build by a group of people.
For some time I have been debating weather to use open source projects for my C# programming, or to buy professional components. By debating, I mean thinking about, trying, and experimenting with both -- however now it is time to put my ideas to paper and share. Disclaimer: in a year I might change my mind, or a posted comment might change my mind. However here is one tought to chew on:
We reference assemblies so that we can gain functionality without having to code the funtionality ourselves. Microsoft provides some great functionality in the CLR and it allows us to make significant gains in productivitiy by not making up write the stuff in the CLR. However, if Microsoft is missing the functionality and it isn't specific to your vertical or product -- there is a tendency to get the functionality from the web as a open source project. I tend to get the source, recompile it and make it a project within my solution, instead of using the assembly already compiled -- this can be a whole other discussion. Ok, to recap: I reference an assembly from the Internet because I don't want to write the code myself.
However, it is my experience that the open source projects are very buggy, which leaves me fixing them to get them to work. Which means I am coding in someone elses code just to get the thing to work correctly. If I purchased a professional product, I could just write customer support, provide a reproduction, and get a fix. Which leads me to reason #1: There is no support, I would rather buy (and I mean have my company buy) a $1000 per license product and get support for bugs then fix and worry about the open source.
Just to drive the point home, even popular projects like ICSharpCode.SharpZLib have bugs, I just fixed three of them. And, no I am not going to submit the changes to the open source project -- it takes to much time, they will not like my changes (since I patched it and didn't fix it like I would my own code), and usually those developers are hard to reach (hiding from doing customer service) and snobby (not SharpZLib in paricular just open source developer in genderal).