Comparison of open source and closed source

From Wikipedia, the free encyclopedia

Jump to: navigation, search

Open source - the software development model used by the free and open source software (FOSS) movement - and closed source (or proprietary software) are two approaches to the development, control and commercialization of computer software.

Contents

[edit] Background

Under the closed source model, source code must be hidden from the public and competitors who might otherwise reproduce, study or modify the code, either to resell the product, learn from the product or for other reasons. Software companies that follow the closed source model see it as a way to protect their products from software piracy or misuse, from reverse engineering and duplication, and to maintain competitive advantage and vendor lock-in. Closed source software usually is developed and maintained by a team who produces their product in a compiled executable state, which is what the market is allowed access to. Microsoft, the owner and developer of Windows and Microsoft Office, along with other major software companies, have long been proponents of this business model.

The FOSS model allows for any user to view and modify a product's source code. Organizations and individuals that adhere to this model, such as Canonical Ltd. and the Mozilla Foundation, believe that the benefit that they gain from improvements to their software provided by the community of software developers is more important than protecting their competitive advantage. Common advantages cited by proponents for having such a structure are expressed in terms of trust, acceptance, teamwork and quality.[1]

Most FOSS is licensed under what is often termed a "copyleft" license[citation needed], a term which emphasizes the license's reversal of the principles of copyright. A traditional license is used to limit freedoms, which the free software movement considers essential, the "four software freedoms",[2] taking them away from the users either completely ("you may not distribute the software") or partially ("you can use the software for an evaluation period of 30 days; after that you must either pay a license registration fee or discontinue the software"). By contrast a copyleft license protects the "four software freedoms" by explicitly granting them and then explicitly prohibiting anyone to strip them away when redistributing the package or reusing the code in it to make derivative works. Some licenses grant the four software freedoms but allow redistributors to remove them if they wish. Such licenses are sometimes called permissive software licenses.[3] An example of such a license is the BSD license which allows derivative software to be distributed as closed source products, as long as they give credit to the original designers.

FOSS can and has been commercialized, both by purely FOSS companies such as Red Hat and more traditional software companies such as IBM and Novell. The archetypal example is the Linux operating system.

[edit] Commercialization

[edit] Proprietary software

The primary business model for closed-source software involve the use of constraints on what can be done with the software and the restriction of access to the original source code. This can result in a form of imposed artificial scarcity on a product that is otherwise very easy to copy and redistribute. The end result is that an end-user is not actually purchasing software, but purchasing the right to use the software. To this end, the source code to closed-source software is considered a trade secret by its manufacturers.

[edit] FOSS

FOSS methods, on the other hand, typically don't limit the use of software in this fashion. Instead, the revenue model is based mainly on support services. Canonical Ltd. is one such company that gives its software away freely, but charges for support services. The source code of the software is usually given away, and pre-compiled binary software frequently accompanies it for convenience. As a result, the source code can be freely modified. However, there can be some license-based restrictions on re-distributing the software. Generally, software can be modified and re-distributed for free, as long as credit is given to the original manufacturer of the software. In addition, FOSS can generally be sold commercially, as long as the source-code is provided. There are a wide variety of free software licenses that define how a program can be used, modified, and sold commercially (see GPL, LGPL, and BSD-type licenses). FOSS may also be funded through donations. The Wikimedia Foundation (publisher of Wikipedia) is one such organization (although they are also partially funded through grants, sponsorships, and brand merchandising).

[edit] Handling Competition

Open-source software vendors generally allow, and even depend on, third-parties to modify and improve their software. In this way, a sort of feedback-loop is generated:

  • The vendor gives its software away for free, and a charges a service fee for support.
  • The purchaser finds that some aspect of the software needs to be modified, and makes the appropriate modifications freely.
  • The purchaser then freely gives the software to another potential purchaser, who agrees in turn to purchase support from the vendor.

This model has proved somewhat successful, as witnessed in the Linux community. There are numerous GNU/Linux distributions available, but a great many of them are simply modified versions of some previous version. For example, Fedora Linux, Mandriva Linux, and PCLinuxOS are all derivatives of an earlier product, Red Hat Linux. In fact, Red Hat Enterprise Linux is itself a derivative of Fedora Linux. This is an example of one vendor creating a product, allowing a third-party to modify the software, and then creating a tertiary product based on the modified version. All of the products listed above are currently produced by rather successful software service companies.

Operating systems built on the Linux kernel are available for a wider range of processor architectures than Microsoft Windows, including PowerPC and SPARC. None of these can match the sheer popularity of the x86 architecture, nevertheless they do have significant numbers of users; Windows remains unavailable for these alternative architectures, although there have been such ports of it in the past.

The most obvious complaint against FOSS revolves around the fact that making money through some traditional methods, such as the sale of the use of individual copies and patent royalty payments, is much more difficult and sometimes impractical with FOSS. Moreover, many see the introduction of FOSS as damaging to the market for commercial software.[who?] Most software development companies sell licenses to use individual copies of software as their primary source of income, using a combination of copyright, patent, trademark and trade secret laws (collectively called intellectual property rights laws).[citation needed] Fees from sale and licensing of commercial software are the primary source of income for companies that sell software.

Open source software has a large number of alternative funding streams, which are actually better-connected to the real costs of creating and maintaining software[citation needed]. After all, the cost of making a copy of a software program is essentially zero, so per-use fees are perhaps unreasonable. At one time, open-source software development was almost entirely volunteer-driven, and although this is true for many small projects, many alternative funding streams have been identified and employed for FOSS:

  • Give away the program and charge for installation and support (used by many Linux distributions).
  • "Commoditize complements": make a product cheaper or free so that people are more likely to purchase a related product or service you do sell. This is similar to The Gillette Company giving away razor handles so they could make money on razor blades.
  • Cost avoidance / cost sharing: many developers need a product, so it makes sense to share development costs (this is the genesis of the X Window System and the Apache web server).

Increasingly, FOSS is developed by commercial organizations. In 2004, Andrew Morton noted that 37,000 of the 38,000 recent patches in the Linux kernel were created by developers directly paid to develop the Linux kernel. Many projects, such as the X Window System and Apache, have had commercial development as a primary source of improvements since their inception. This trend has accelerated over time[citation needed].

There are some who counter that the commercialization of FOSS is a poorly devised business model because commercial FOSS companies answer to parties with opposite agendas. On one hand commercial FOSS companies answer to volunteers developers, who are difficult to keep on a schedule, and on the other hand they answer to shareholders, who are expecting a return on their investment. Often FOSS development is not on a schedule and therefore it may have an adverse effect on a commercial FOSS company releasing software on time.[4]

Additionally, FOSS programmers may have non-financial reasons for developing software. An analogy is that of Wikipedia, where people contribute without expecting compensation.

[edit] End-user support

Computer software is complex enough that users frequently need help with it even after they have got it set up and working to begin with. Software also invariably has bugs in it, which may adversely impact the users' ability to get work done and so need to be fixed. A user may also see areas in which the functionality of the software may be improved, to help not just that user but others as well.

Closed-source software vendors typically provide a "one-stop shop" for all support matters: since the vendor developed the software (and appropriately licensed any included components that were developed by others), the vendor also provides all necessary support functions. Nobody else can provide the level of support that the original vendor does, simply because nobody else has the requisite access to the source code (not just to understand how it works, but to make modifications and fix bugs).

Open-source offers an alternative model, where access to the source code permits multiple alternative support organizations. It is often said that the more eyes looking for bugs reduce them. FOSS proponents also argue that with ready access to the source code, any programmer can find a bug or shortcoming in the software.[citation needed] Bug fixes may be faster for FOSS projects.[5]

[edit] Innovation

Open-source software has often been accused of being more derivative than innovative. This is true to some extent, mostly in the desktop arena. For example, GIMP is in many ways a reinvention of the functionality of Photoshop, while OpenOffice.org is primarily designed as a plug-compatible replacement for Microsoft Office.

Many of the largest well-known FOSS projects are either legacy code (e.g., FreeBSD or Apache) developed a long time ago independently of the free software movement, or by companies like Netscape (which open-sourced its code with the hope that they can compete better), or by companies like MySQL which use FOSS to lure customers for its more expensive licensed product. However, it is notable that most of these projects have seen major or even complete rewrites (in the case of the Mozilla and Apache 2 code, for example) and do not contain much of the original code.

However, one should not overlook the many innovations that have come, and continue to come, from the open-source world:

  • The Gmail Filesystem is a good example of the collaborative nature of much open-source development. Building on FUSE (which allows filesystems to be implemented in userspace, instead of as code that needs to be loaded into the kernel) combined with libgmail, which is a Python library for programmatic access to a user's Gmail message store, the result is the ability to use the multiple gigabytes of Gmail message space as a fileserver accessible from anywhere on the Internet.
  • Perl, the pioneering open-source scripting language, made popular many features, like regular expressions and associative arrays, that were unusual at the time. The newer Python language continues this innovation, with features like functional constructs and class-dictionary unification.
  • dcraw is an open-source tool for decoding RAW-format images from a variety of digital cameras, which can produce better-quality output than the closed-source tools provided by the camera vendors themselves.
  • A number of laptop models are available with a particular emphasis on multimedia capabilities. While these invariably come preinstalled with a copy of Microsoft Windows, some of them[6][7] also offer an alternative "fast-boot" mode based on GNU/Linux. This gets around the long time it can take to boot up Windows.
  • Songbird, AmaroK and Exaile are FOSS music players that integrate internet-based data sources to an unprecedented degree, taking song information from MusicBrainz, related track information from last.fm, album cover art from amazon.com and displaying an artist's Wikipedia page within the player.
  • While admittedly inspired by Mac OS X's Quartz graphics layer, Compiz Fusion has pioneered the concept of "plug in" window decorators and animation effects. Users can develop their own creative and unique effects.

[edit] Integration and overall "feel"

When people compare the user experience with using Microsoft Windows versus typical GNU/Linux distributions as a desktop system, they generally agree that Windows works in a more seamless fashion.[citation needed] Every bit of the system was produced by one company[citation needed], so naturally the parts work together well[citation needed]. A typical GNU/Linux distro, on the other hand, is a combination of pieces from a large number of independent groups: the Linux kernel itself, basic operating system infrastructure from the GNU Project, basic GUI functions from X.Org on top of which one may run window managers or alternatively more elaborate GUI environments such as GNOME or KDE, and so on.

But on the other hand, all the different open-source groups have a strong interest in having their projects work well together. They achieve this[citation needed] by using open interoperability standards, such as those promoted by Freedesktop.org and the Linux Standard Base.

In versions of Windows Installer bundled with versions of Windows prior to XP and 2003, MSI patches are applied to software products as a monolithic whole:[8]

One of the new features under consideration for the next version of the Windows Installer is the ability to uninstall a patch. Currently you must uninstall the whole product or use a hacky anti-patch style mechanism...
Currently patches are applied by MSI in the order they are received at the client, not the order they were created by the author. This can get really nasty in some scenarios, because applying patches in the wrong order can actually result in files being down-reved.

Most GNU/Linux distributions, as well as the BSD operating systems, on the other hand, include package management systems as standard. The various components of the installation are separated into individual packages, with clearly-defined dependencies between them. An attempt to upgrade a package on which another package depends will trigger a message to that effect, perhaps with an offer to automatically upgrade the latter package as well. Two packages that do not depend on each other can be independently upgraded, and if a problem is revealed with the new version of one of them, it can be independently reverted, regardless of the order in which the two were upgraded.

Since the package management systems are open-source and public, it is straightforward for third parties to set up additional package repositories (such as Packman for SUSE Linux) that integrate cleanly with the original vendor/developer provided ones.

A complication arises from the abundance of alternate free-software programs to meet a given need. For example, multimedia frameworks like GStreamer, Xine and Mplayer compared to the one centralised API, DirectShow, on Windows. In Windows, any media software can play any file format as long as the appropriate DirectShow codecs have been installed. In GNU/Linux, the appropriate codec must support not only the correct file format, but also the right framework: codecs for one framework are not compatible with another. This can lead to an inconsistent user experience, where some player software can play certain files, but other software cannot.

[edit] Business models

In its 2008 Annual Report, Microsoft stated that FOSS business models challenge its license-based software model and that the firms who use these business models do not bear the cost for their software development. The company also stated in the report:[9][10]

Some of these [open source software] firms may build upon Microsoft ideas that we provide to them free or at low royalties in connection with our interoperability initiatives. To the extent open source software gains increasing market acceptance, our sales, revenue and operating margins may decline.

Open source software vendors are devoting considerable efforts to developing software that mimics the features and functionality of our products, in some cases on the basis of technical specifications for Microsoft technologies that we make available. In response to competition, we are developing versions of our products with basic functionality that are sold at lower prices than the standard versions.

[edit] Empirical comparison

A 2004 empirical comparison between open-source and closed source projects found:[11]

  • open-source software does not grow more quickly
  • creativity is more prevalent in open-source software based on the number of functions added over time
  • there is no evidence that open-source projects succeed because of their simplicity
  • there is no evidence that open-source projects are more modular
  • defects are found and fixed more rapidly in open-source projects

[edit] Quotes

From the European Parliament investigation into the Echelon system (05/18/2001):

"As far as firms are concerned, they should take strict measures to ensure that sensitive information is only transmitted via secure media.... If security is to be taken seriously, only those operating systems should be used whose source code has been published and checked, since only then can it be determined with certainty what happens to the data." report mirrored on fas.org website, PDF, p.83

[edit] See also

[edit] References

Personal tools