February 26, 2010
Open vs Closed Source
I have been involved with both and have worked around people who have held views on opposite ends of the spectrum. There is room for both closed source, proprietary software as well as open source software.
Bill Gates is Evil.
Linux is for Communists.
Software should be free.
Patents stifle innovation.
If you have worked in technology around other people at all, you have heard these types of statements before. Are we really supposed to believe these types of statements? Furthermore, what good does it accomplish?
I started my career in closed source and couldn't believe how or why people would "work for free" or give their code away. Didn't they know that not many people can write software -- it was valuable, they shouldn't just give it away.
Later, I learned Python and then Django.
I started using some open source libraries to build solutions in the cloud. I've built websites on entirely free software, software that I was able to learn how things work by reading the source code. I have been able to make a lot of money off of software written by others who gave away their creations. This in turn has led me to recognize that I do have a moral obligation to give back to the communities that have given so much to me.
Open Source Rocks
This is why I contribute time and effort to the boto project. It's also why I have contributed bits and pieces to the Django community and why I hope to get more involved in helping out on Django itself as well as Pinax.
But that is not the only reason. It's also a lot of fun.
Chatting up folks in IRC, on mailing lists, via Twitter, about the latest project you are working on, a problem you are having, or just to say hi, builds cool sense of community. In addition, getting a chance to meet these folks in person at conferences such as PyCon is an experience you just don't find when working in isolation or just on a small team.
Furthermore, it helps to hone one's craft to practice the art of writing good software out in the open. If I write something just for myself that no one else will see, it is sure to be pretty crappy. But if I put something out in public, there is an extra sense of wanting it to be perfect, to be beautiful.
But So Does Closed Source
It's no secret that in addition to being a huge fan of Python and Django, I am a C# developer. In fact, I co-founded and run AminoSoftware where my partner and I have been very successful in building a solution that delivers tremendous value to technology groups around the world both in industry and in governments. We sell this value for money and I am not ashamed of that. In return for the relative small amount of one time costs, teams are able to do what is extremely hard and time consuming.
They are able to leverage a problem solved by our software and focus on creating other unique value for their respective groups. They are able to realize savings well above and beyond the cost of the license. If we open sourced this software, we would not be able to sell it. If we were not able to sell it, it would be hard be hard to justify the time to write it. Thus, the solution would exist, a many teams over would not be realizing the value we've delivered to them.
I don't see closed versus open in some sort of dogmatic one is right one is wrong. Those are value judgements and we are talking about software and how and when that software is shared or sold by it's creator. There are reasons for doing both -- I actively participate in both at the same time.