Friday, March 26, 2010

The Advantages of Open Source Software


Advantages of open source software
As in my prior post I discussed on the fundamental benefit of Open source Models is the first fact that open source software is made available complimentary or at a low cost. As I always answered many on Social Media that this characteristic is not exclusive to open source software, if you see History several proprietary software products are made available in similar ways (Microsoft's Internet Explorer). 
So you might think that what is the unique ability which distinguishes open source software from Proprietary Software, yes the answers would be that there are certain characteristics discussed below which blend and produce a synergistic impact which is the cause of the real advantages of the open source model. 
So let start with some more aspect on how do these characteristics turn into advantages:
Availability of Source code and Modification: 
The most important characteristic of Open source software is that it provide with unlimited tuning and improvement of a software product. It also helps to port the code to new hardware to adapt it to dynamic conditions. Many Experts have concluded that to really extend the life of an application, Application should be available in source form.
If you check out history then you will find that no binary-only application 10 years old now survives in unmodified form, but several open source software systems from the 1980's are still used and many have adapted to new environments. 
The availability of source code also helps in separating & fixing bugs.
Right to redistribute modifications and improvements to the code:
Also to reuse other open source code, this allow, all the advantages because of the modification of the software that can be shared by larger communities. This is the probable point that differentiates Opens source software. Redistribution rights cannot be revoked, and they are universal, is the point where substantial crowd of developers are involved to work around open source software projects.
Right to use the software in any way:
This blend with redistribution rights, if the software is useful enough many users help in building a market for support and customization of the software which attracts a large population of Developers to work in the project, Significantly the quality of the product improves with many inputs.

No one with the Power to restrict in a unilateral way how the software is used:

For eg: When a Proprietary software vendor decide not to upgrade some software product from some old platform, In this case there are two alternative for customer
  • Either stick to the old version of the software 
               Or 
  • A shift to a new product. 
In case of Open source software, customers can also fund some development for the desired platform, or look for other vendors to provide the upgrades of the same product.
No single entity on which future of the software depends:
This normally happens with proprietary software. for eg: I company "A" uses a software product which is reliable on the software manufacturer for up gradation and development and if the manufacturer closes doors, or decide to discontinue the development of the same then in this case no one has the right to take the program and continue the development on the same.
This has happened many times and this normally happens in the case of mergers, acquisitions and internal reconstruction in the software market, which leads to the cannibalization of some software product.
In case of Open source software it is always possible to fund another software group to continue the maintenance and improvement without legal & practical limitations.
No Mysteries:
Due to the source code availability there is a possibility to perform a thorough inspection and verify the correctness of the algorithm and the implementation scheme used. This is also possible in part even with closed source or nearly free licences. In fact the users are allowed to modify everything they find appropriate to suit their needs.
Possibility of creating an alternative code base:
If the current code bas is wrongly managed there are chances to manage other. Forks happen for technical or licence reasons, for example because a particular release is made under a non-free licence, the previous one is used as a base for succeeding free releases. Technical motivations are common, because there are sometimes many different way to perform a task, and it is not possible to decide which is better. So if the two camps cannot reach a consensus and the user base is large enough the code splits in two and both continue development. If the reasons for the split are overcome, usually the two camps agree on a reunification.
But the main point about "forking" (which create alternate code base) is that it introduces several levels of competition within the model. For instance, before forking, several programmers can work harder to keep everybody happy integrating as many well-engineered features as possible, to prevent a fork by people whose needs are not addressed. After a fork, both branches tend to compete for the user base with very similar products: only good quality and quick improvement can maintain them in the market.
Minimising the cost in case of modified version:
If any new modified version enters market then there are no chances of per copy fees, because it can be use with current code to start new projects, where the cost reduces. Also the freely modification allows to perfectly tailored the need accordingly.
Also the software doesn’t need many updates and service pack which reduce the the maintenance cost

0 comments: