Open Source – A philosophy not only to use but to adopt as well
Background – I joined the Indian IT industry about 6 years back. I started working with some of the so called big guns of the industry. I was taught there that your code belongs not even to you but to your organization so sharing it elsewhere is unethical to the extent that you can lose your job over it. I thought innocently, ‘We will get paid in any case for what we are delivering, what is the harm if other people can use some of this for their benefit? I wouldn’t have been able to develop any of this in the first place had someone thought the same way as you are right now? I will not breach on client privacy but this code that I have written for rendering an Ajax tree could well aid many others’
The Culture as it stands – We are taught not to re-invent the wheel right from our school days. Had Einstein not used Newton’s work, I am sure we would still be debating about mass-energy equivalence. Bringing things to context, monoliths like COBOL, BASIC and FORTRAN wouldn’t have become dinosaurs had not the concept of Object oriented programming emerged where you use objects, reuse objects and collaborate among objects to realize a flexible software solution. And hey, guess what, this concept was borrowed from real life situations where any goal is achieved not by an individual necessarily but by the collaboration among individuals each utilizing the others’ complementary capabilities to perform their part
But then now, among many others, there is one huge physical lure, money, and one huge abstract fear, competition. Both of these have played nicely on the minds of us mortals and hence we have naturally learnt how to earn money by protecting ourselves from competition. Put a patent on your stuff, show what you have done not how you have done it and sue someone who gets too nosy and finds out the answer to that ‘how’. Ironically though, the code which we protect with our dear lives could never have been conceived in the first place had we not ‘googled’ our way to discover some ready and juicy tit-bits (remember sorting, hashing, trees, menus, tabbed panes to recollect a few), sometimes even entire ‘frameworks’ (remember Struts, Spring, FreeMarker…) and hold on, what is the language that we use by the way (Java, Groovy, JavaScript, PHP….). So the essential point to take away is that we are constantly looking out for stuff which somebody has generously shared freely on the internet so that we can plug it readily or build on top of it to produce our source code which we then happily put a seal on and claim that its copyright protected
My Take – Yes, we are humans and yes, we need money and yes, we are not working in non-profit organizations. But we as individuals have a role to play however small it might be towards the improvement of society in general. And since we belong to IT, why not start from there. Why always wait like vultures to scavenge on others’ source code, why not make a contribution ourselves too. We definitely are capable but we have to start thinking beyond business. Open source has now become a mantra and more and more organizations and individuals are making their code available publicly, so lets take a clue from them and start adopting this philosophy in right earnest. I do not say make everything available to everybody, it never can work, but yes, if we really think some piece of code or some customization of a framework is reusable and can reduce the work of a fellow developer wherever he might be, then please do share it publicly on the web
By the way, I am blogging to my heart’s content here using an engine called WordPress. Interestingly it is Open Source