By definition, a computer is an electronic device that processes data using stored instruction, or more commonly software. Though written in plain text (source code), the programs are compiled so as to be put into a form (object code) that you computer would easily understand.
Often, software developers ship their programs in the object code form. Without the strenuous task of reverse engineering, it would be nearly impossible to modify software as an end-user.
Open Source Software
More and more developers are availing their software’s source code to the world. The licensing of open source software – usually the BSD or GNU General Public License – allows other developers around the world to modify the software by improving existing features, removal of bugs, addition of new features or even distribution as a new software.
Crowd sourcing provides a better avenue for collaboration of developers. The licenses on most of these softwares require that any new software developed from existing source code, should also provide its source code for other developers to study and improve on.
There are many softwares and platforms that employ open source distribution, including Android, many versions of Linux, MySQL, Gimp Mozilla Firefox, just to name a few.
Benefits of open-source software include:
– In most cases, open source software is free. It does however require an on going support from users
– With their code being crowd sourced, these softwares tend to be on the bleeding-edge of technology
– Having many developers working on the project allows for accountability and identification of security gaps in record time. These are then quickly resolved.
Closed Source Software
More commonly referred to as proprietary software, closed source software belongs to an individual or company. Only they have the right to modify the source code. As such, proprietary software’s source code remains unavailable to those outside the software company.
Licenses for such software also prohibit any alteration of the software, just in case one was able to reverse engineer the software. All intellectual property rights belong to the developer. Before installation, these softwares will usually require the end-user to agree to legally binding terms. Breaching of terms could lead to prosecution.
Benefits of closed-source software include:
– Most if not all proprietary software developers provide customer support.
– Softwares from the same developer are likely to be compatible with each other.
– By buying and agreeing to the license terms, end-users can seek legal redress if the software does not perform as promised by the developer.
– Closed-source softwares are targeted at solving particular business needs
Which one should you choose?
This is an age-old debate that has no foreseeable end in sight. It all boils down to what is convenient for you. Here is a different perspective.
Users who prefer a readily available customer service would opt for proprietary software. This is not to say that issues raised on open source software are never solved. There are large online communities and forums that continually work on these issues.
If budget is a factor, then open source is the way to go. A majority of open source softwares are free. Freedom also comes in the form of no strict obligatory license requirements. Constant support is required to keep these projects running.
Finally, the pace at which bugs are fixed or patches are created is also important. Each software category is quite fast in this regard. User adoption of the patches however remains of great concern due to slow uptake even solutions exist.