Allen Holub's latest column in the SD Times titled "Open Source Context" (http://www.sdtimes.com/cols/javawatch.htm) got me thinking as to why I love Open Source?
I disagree with Allen with his current thoughts on open source.
I read Allen Holub's columns every time a SD Times copy drops in my mailbox. Sometimes he touches on topics that are thought provoking. For example, he said in an old article that when newcomers to any technology, ask questions in a list, they are frowned at by the experienced people, are rudely treated etc. He questioned the whole meaning of "User Lists" and the idea of a community in the online world.(http://www.sdtimes.com/cols/javawatch_109.htm) I think that is a good observation and a lesson to remember for the online community.
In his latest article, Allen opines that the tomcat and hibernate codebase are a mess. I am surprised at this because the popularity, acceptance and the userbase for both these projects are on the rise and many books have been written.
Ok. Back to the question: "Why do I love open source?". I love open source projects because they give me a choice while keeping my costs down. Also when I am developing code and I hit an issue with a library and that happens to be an open source project, then I can download the library code and step through the code in an IDE and figure out if the problem is in my code or is it in the library code. This small exercise can save me a lot of time, if the issue is in my code. Lets say I am using an open source parser to parse some of my XMLs and suddenly I get an exception from the parser with not much information. Now how do I know what the parser is expecting and what it is actually getting. I can download the parser code, step through it in an IDE to the location where it is throwing an exception and see whats wrong. Either it is a bug in the parser (most likely not) or I am doing something stupid (most likely). Imagine if I was dealing with a closed source product and I am facing problems. I have to knock on the doors of the company with a hope that my cries will be heard. If I am lucky, it may entered as a bug or I may get a fix. Considerable time will be spent if the cries go unanswered. If all I wanted to know is whether the problem was in my code or in the dependent library code.
Let me name a few open source projects which have become popular in the community - Linux, Apache Http Server, Mozilla, Struts, Tomcat, JBoss,Hibernate,OpenLdap, Apache Xerces, Eclipse and many more. The acceptance of these projects in production environments has changed the perspective of many individuals towards open source projects. I may not be wrong if some of the naysayers may be contributing to open source projects they deal with, via bug fixes, questions etc.
It is true that in many open source projects, developers do not get paid and they develop code in their free time, while burning the midnight oil. Documentation and QA may take a backseat. But as these open source/voluntary projects become popular/get accepted, the wheel rotates. More developers jump in, more users show up, lots of questions get asked and importantly, bugs get fixed. Many experts end up writing books for the benefit of the community. JBoss with its motto, 'Professional Open Source' has greatly encouraged open source developers to develop what they love to do while getting a salary.
I love open source projects. Plus latest research shows that open source is changing the Java landscape( http://sdtimes.com/news/117/story5.htm).
Does it surprise me that many closed source companies want to open source their products? You tell me !