Everyone’s talking about open source and open standards now-a-days but hardly have I come across any who knows what exactly it contains and what the importance is. I’m putting this post in my blog today as I desire for people to have a better understanding of what is the difference between these two terms. Let’s get a first hand understanding of what these terms mean.
Open Source is a methodology based on which the design, development and the distribution of the developed software is carried out along with its source code. On the other hand, Open Standards means a royalty-free distribution of technology which has been formalized and approved by committees that are open to participation by all interested parties. For example, W3C is a body working on standards for Web Technologies. Click here for more information.
The word “Standards” means a set of guidelines to which a lot of people have agreed upon. Putting this definition in the context of software, “standards” allow a company to pick and choose from competing vendors and interoperate their systems without being pinned down to one of them.
Many think that open source software offers the same advantage, but that is not true. Open source means that you have access to source code for inspection and modifications but it may fail interoperability. This does not mean that open source is not good. There is lots of software available which are better or provide a similar kind of functionality that paid software will do. And the best part of open source is that it is free and comes with the entire source code. But what happens when you need assistance? Is the assistance free or is there a price tag? We all know that there is lot of stake involved in providing support. If you are thinking that support means training people on how to use the product or software, you are mistaken. There is more to support then that. It involves product trainings, more research to fix bugs and vulnerabilities, distributing patches and updates, etc. There may be companies that provide support on open source platforms and have no tie-up or relation with the parent company that designed and distributed the software for free. They may be able to fix small issues since there is access to the source code, but imagine a situation where there is something wrong at the core level and requires dependency on the original developer. Further to this, there is plenty of evidence that suggests that open source does not necessarily equate to cost savings. There are still licensing fees, service fees, implementation fees and support fees associated with it.
I would feel comfortable if I knew that the open source software that I downloaded for free gave me the source code and so I can fix or modify the application as per my needs. But I would be more comfortable thinking that the paid software I use from the vendor is going to be in the industry for long and many brains are working on the software to ensure that it runs smoothly and has improvised functionality with every new release.
All this does not mean that open source is a big NO-NO. Open source does provide the benefit of using someone’s work in your own and then redistributing your work in similar fashion so that someone else can get benefit from your work. This way the community can make progress using a collaborative manner of production. Most of the time this needs to be shared and released under GPL (General Public License) which means that you cannot charge others for a license and you must make your own source code available to the public. This makes it IP (Intellectual Property) unfriendly. Many a times this code will not even make its way to the main stream and will simply end up as an individual company’s product. This leaves a question in mind – will everything in the long run be compatible or provide interoperability? Will my investment in one segment ensure returns in the other or vice-versa? Who’s going to provide updates and security patches to fix vulnerabilities? Who’s going to invest billions to innovate? From my perspective, it’s not a fight between open source and commercial software. It’s all about open standards versus proprietary standards.
I feel we should have more specific and beneficial standards that are not vendor specific or not vendor dictated because ultimately it is the interoperability that counts at the end of the day. If open source software fits your environment and gets the work done in terms of costs, features, support or maintenance – all’s well. But if you are putting security, compliance, performance, upgrades and scalability before everything else then proprietary software designed with open standards in mind is your choice. We can even extend this further and run a combination of both – it’s our choice.
What do you think? Let me know.