Open Source Software Versus Closed Source Software
- Length: 1607 words (4.6 double-spaced pages)
- Rating: Excellent
source software. There are three certain rights that people have with open source software. These rights are: “The right to make copies of the program and distribute those copies, the right to have access to the software’s source code, and the right to make improvements to the program.” (Behlendorf 172) These rights are the foundation of open source. The rights of open source software do not apply to closed source software. Mainly, these rights do not apply because one does not have access to the source code of closed source software. When one purchases closed source software, she is only buying a license to use the software. She is not purchasing the program itself, which is why she will not receive the source code. Open source software is also called free software. But, many are confused by what free software means. Does free mean freedom or free beer? In the case of open source software it means freedom. One is free to do with the software as he wishes. He can change how the software works and/or install the software on as many computers as he wants. It is possible to obtain open source software at no cost to the consumer. “Although it is possible for you to deploy Linux without paying licensing fees, this does not mean that Linux, or any operating system, is ‘free’ in the sense that there are no costs…” (Fink 8) Since one can copy open source software to multiple computer with only paying for, if at all, the software once, this is a much less cost than closed software where one has to purchase a license to use the software for each and every computer that is running that software. Open source software is better than closed source software.In the beginning there was closed source software and it was good for a while. What is closed source software exactly? Closed source software is the idea that no one can view yet alone change the source code of the software. Source code is the building blocks of software. On the other hand, there is open
Security of programs as well as operating systems is at an all-time high. What is meant by security is the ability for a program not to cause harm to other programs or to files on your computer.
Currently there are bugs in software. Most of these bugs are the result of developers choosing over a program running efficiently or of it running in the most secure manner. Most programmers used to choose efficiency over security. Times have changed, and now the view is on security. The most common cause of security flaws is the buffer overflow (Festa). What is a buffer overflow? Imagine one has a container, like a gallon jug. Also imagine one has liquid that he needs to put into that container. Consider the fact that to be efficient one does not check the volume of liquid before placing the liquid into the container. Instead one just places the liquid into the container. If some liquid spills out, then it just spills out. That extra liquid that spilled out could be considered as commands to the computer. The computer would then try to execute the spilled liquid. This is how buffer overruns work. Instead software engineers should code a mechanism similar to how a gasoline pump works. The pump doesn’t really allow you to overfill your automobile’s tank. The pump turns itself off once it reaches a certain limit. This is how programmers are fixing buffer overflow security problems.
Both of these models have bugs that need fixing as well as application enhancements. Open source projects are quicker to become bug free (Martin). This is attributed to the openness of the source code of the application. If one can view and understand the source code, then one can better find the bugs in the application. These people may not necessarily be actively involved in the development efforts. Even though the source code is easily available to view, one may not be able to read code yet alone be able to comprehend it. Therefore, an open source support system is at work. This is one of the arguments about open source. The argument was that open source software has bad support, but this is not the case (Dickerson). One of these support systems is documentation. We see documentation in closed source software as well in the form of user manuals. But with the open source software the user gets the normal user guide plus extra benefits, such as the source code. Usually the documentation goes into the details of the program, so much so that normal users would get confused. But for advanced users, it could very well mean the difference of successfully getting something done or utterly failing. Along with the documentation, most projects will also have mailing lists. These mailing lists are used to convey important information pertaining to the application. People can subscribe to these mailing lists to get important information such as bug fixes, updates, and possibly future features that are being planned to be incorporated into the application. Open source projects also have public bug databases. These databases hold information of past and present bugs in the application for one to look up if he believes that he has found a bug.
Another advantage of open source software comes into play if a person has software engineers at her place of work. Software engineers have the ability to change how an open source application works or to add features to the application if the company requires it. Even if the company doesn’t have software engineers on board, there are always consultant companies to help. Some consultant companies have software engineers to help another company create a complete customized application for your companies use. And best of all, most of these consultant companies provide the source code, although most don’t advertise it.
There are two styles of software development. Eric Raymond’s definition is by far the simplest. One style of development is dubbed Cathedral Development. “This is the traditional style of development where teams are kept small. The design and functionality are well-understood before development begins. Complete plans from architecture, design, development, integration, and test are well-understood and documented. Release cycles during the development phase are few, and external feedback is only sought during alpha and beta test cycles (Fink 138).” The Cathedral style of software development is one that is known best. Microsoft uses the Cathedral style of software development. The other style of development is called Bazaar development. The Bazaar development definition is “A maintainer releases functionality that can be built and has some usefulness, but the package lacks functionality and defects may be prevalent. Release cycles are frequent (sometimes hourly). Feedback is sought as early and as frequently as possible. Anyone, anywhere, with a good idea can contribute to either fix defects or add interesting new functionality. The maintainer declares a production release when he or she determines it is ready (Fink 138).” The Cathedral development of software generates revenue by selling a license to use the software. One does not own the program yet alone receive the source code of the application; she is only allowed to use the program. Usually this license includes that one can only use it on one computer. One cannot use the same license on two or more computers simultaneously; therefore, this requirement forces the user to purchase additional licenses for the other computers which she wants to use the same software. The Bazaar development of software has a few different ways to generate revenue. One of these paths is through retail packaging. “Many customers are willing to pay for the simple convenience of media and manuals. Most are still unaware that they can simply download or copy the software legally and at no cost (Fink 178).” Another path that an open source company can take is through selling support for its products. “Distribution vendors typically bundle support services with their retail packages to help customers with installation and any other difficulties they may encounter. Large corporate customers will purchase comprehensive support services for their complex installations (Fink 178).” Allowing consumers to purchase subscriptions is also another possibility for an open source software company. “This is part of the services portfolio offered by some distribution vendors. Subscription services offer a number of options for keeping your software automatically up-to-date. Ximian Corporation uses subscription services to provide update services to user of the GNOME desktop (Fink 178).” A popular way which is used by Cathedral companies is to use brand associations. This tactic can also be used by Bazaar corporations. “Hardware and software vendors may work with distributions to associate them with their brand through bundling and other business activities. Depending on the situation, the vendor may charge for this association. The association usually imply some form of certification, which my by important to some customers (Fink 179).” Another revenue generating model is through aggregation and enhancing as Fink describes it. “A good example of this business model in action is a product from Covalent Technologies. The Apache Web Server is the most used Web server on the Internet (Fink 179).” Apache is a software application that allows a computer to ‘serve’ web pages to requestors. Covalent Technologies uses Apache as a base. Covalent then adds to this base with other software that they create. Some of the different concepts that Covalent integrates into Apache is manageability and security. With all of these different revenue generating paths, “open source software development is indeed a reliable model for conducting software development for commercial purposes (Open Sources 149).”