Open Source

From Fintech Lab Wiki
Revision as of 10:07, 13 February 2023 by Aghaee (talk | contribs) (Created the entire page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Written by Alireza Aghaee.

Introduction

open-source software development refers to the practice of creating software that is freely available to the public and can be modified, used, and distributed by anyone. This approach to software development is based on the principles of transparency, collaboration, and sharing.

In an open-source development model, the source code of the software is openly available to anyone who wants to view or contribute to it. This means that developers from around the world can work together to build, improve, and maintain the software, leading to a more robust and high-quality product.

Examples of popular open-source software include the operating system Linux, the web server Apache, and the database management system MySQL. These and many other open-source software projects have had a significant impact on the technology industry, and continue to shape the way that software is developed and used today.

This article brings a review to open-source development in general and the economic aspects of it in particular. The article starts with a brief history of the open-source movement and reviews four case studies of some successful open-source projects. It then recapitulates the licenses in the open-source environment which are at the heart of keeping the open source open and preventing exploitations. Finally, the articles review some of the scholarly contributions to the economics of open-source development.

History

The history of open-source software development dates back to the late 1960s and early 1970s, when the concept of “free software" was first introduced by computer programmer Richard Stallman. Stallman was frustrated by the proprietary software models that dominated the computer industry at the time, and he believed that software should be freely available to everyone so that they could use, study, and modify it as they saw fit.

In 1983, Stallman founded the Free Software Foundation (FSF), an organization dedicated to promoting the use of free software. Perhaps one of the biggest achievements of stallman’s movement was the development of GNU. GNU is a large collection of free software that can be utilized as an operating system or in conjunction with other operating systems. He also created the GPL (GNU General Public License), a widely used open-source license that ensures that software remains free and open for anyone to use, modify, or distribute. Through the FSF, Stallman worked to create a community of software developers and users who shared his vision of a world where software was freely available and modifiable by all.

Despite Stallman’s efforts, the concept of free software was slow to catch on in the broader technology industry. It wasn’t until the late 1990s that a group of software developers and companies came together to promote the concept of open-source software as a viable alternative to proprietary software. This group included leaders in the tech industry, such as Eric Raymond, Tim O’Reilly, and Linus Torvalds, who is famous for creating the Linux operating system.

The term "open-source" was first used in 1998, when this group of developers and companies gathered to promote the concept of open-source software. They argued that the transparency and collaboration inherent in the open-source development model would lead to better software, and they set out to convince the tech industry of the value of open-source.

Their efforts were successful, and the adoption of open-source software quickly gained momentum. Many of the largest tech companies in the world, including IBM, Google, and Microsoft, embraced open-source and began contributing to open-source projects. The use of open-source software also spread beyond the tech industry, with governments, schools, and other organizations adopting open-source solutions for a wide range of applications.

One of the key benefits of the open-source development model is the ability for developers from around the world to collaborate and contribute to software projects. This has led to the creation of many high-quality and widely used open-source software projects, such as the Apache web server, the MySQL database management system, and the Python programming language. In the next section, we overview some of these projects.

Cases

Linux

Linux is a free and open-source operating system that was first released in 1991 by Linus Torvalds, a computer science student at the University of Helsinki in Finland. At the time, Torvalds was frustrated with the limitations of the available operating systems and decided to develop his own.

The initial version of Linux was based on the Unix operating system and was designed to run on personal computers. It quickly gained popularity among programmers and hobbyists, who appreciated its open-source nature and its ability to run on a wide range of hardware. Over time, Linux grew into a full-fledged operating system that could compete with commercial alternatives like Microsoft Windows and Apple’s macOS.

One of the key factors that has contributed to Linux’s success is its open-source nature. This means that anyone can access the source code and make changes to it, as long as they follow the terms of the GNU General Public License. This has led to a vibrant community of developers and users who contribute to the development of the operating system and create a wide range of applications that run on it.

In the late 1990s and early 2000s, Linux began to gain traction in the enterprise market, particularly in server and cloud computing. Today, Linux is widely used in data centers, web servers, and supercomputers; According to truelist it is estimated to power over 96.3% of the top one million web servers. It is also widely used in embedded systems, such as mobile phones and networking equipment.

One of the most significant events in the history of Linux was the introduction of the Linux kernel in 1991. This is the core of the operating system, and it is what makes Linux a Unix-like system. Since its introduction, the Linux kernel has gone through many changes and has become more reliable, secure, and scalable.

Python

Python is a high-level, interpreted programming language that was first released in 1991 by Guido van Rossum. At the time, van Rossum was working at the National Research Institute for Mathematics and Computer Science in the Netherlands, and he created Python as a hobby project to help him keep track of his work.

The name "Python" was inspired by Monty Python’s Flying Circus, a popular British comedy series from the 1970s. The language was designed with readability and simplicity in mind, and it is known for its use of indentation to delimit blocks of code, which makes it easier to read and write than many other programming languages.

In the early years of its development, Python was primarily used for scripting and small, specialized applications. However, as the language grew in popularity, more and more developers began to use it for larger projects. Over time, Python has become one of the most widely used programming languages in the world, and it is now used in a wide range of applications, including scientific computing, data analysis, web development, and machine learning.

One of the key factors that has contributed to Python’s success is its ease of use and versatility. The language has a large and active community of developers who have created a vast ecosystem of libraries and tools that make it easier to develop and deploy applications. Additionally, Python’s readability and simplicity make it a popular choice for teaching programming, and it is now used as an introductory programming language in many universities and schools.

MySQL

MySQL is a widely used open-source relational database management system that was first released in 1995. It was created by Michael Widenius and Allan Larsson, two Swedish computer scientists who wanted to provide a high-performance database system that was both easy to use and cost-effective.

In the early years of its development, MySQL was primarily used for small web applications and as an alternative to proprietary database systems like Oracle and Microsoft SQL Server. Over time, as the web grew in popularity and the demand for powerful, scalable databases increased, MySQL grew in popularity as well.

In the late 1990s and early 2000s, MySQL was acquired by several companies, including Sun Microsystems, which was later acquired by Oracle. Despite these changes, MySQL continued to grow in popularity and became one of the most widely used databases in the world. Today, MySQL is the second most popular database management systems worldwide[1], and it is used by a wide range of organizations, from small startups to large enterprises.

One of the key factors that has contributed to MySQL’s success is its scalability. The database is designed to handle large amounts of data and is used by many of the largest websites and applications in the world such as Facebook, Twitter, Netflix, Uber, Airbnb, Shopify, and Booking.com. Additionally, its support for SQL (Structured Query Language) makes it a popular choice for developers, as SQL is a widely used language for database management.

Apache

The Apache HTTP Server, commonly referred to as Apache, is a widely used open-source web server that was first released in 1995. It was developed by a group of volunteers who wanted to create a high-performance web server that was both easy to use and cost-effective.

Apache quickly became popular among web developers, and it soon became the most widely used web server on the Internet. This was due in part to its ease of use, as well as its scalability and support for a wide range of platforms and operating systems. Additionally, its modular design made it easy for developers to extend its functionality by creating new modules that could be easily added to the server.

In the late 1990s and early 2000s, Apache became the foundation for the development of many other open-source projects, including the Apache Foundation, which was created to oversee the development of a range of open-source software projects, including Apache. Today, Apache is still one of the most widely used web servers in the world, mostly indebted to its open-source nature allowing for scalability, and support for a wide range of platforms and technologies.

Licenses

Open-source software is developed and distributed under a wide variety of licenses, each with its own set of terms and conditions that govern how the software can be used, modified, and distributed. The main difference between these licenses is the degree of restrictions they entail. These licenses are critical to the open-source ecosystem, as they help to ensure that software remains free, open, and accessible to everyone. In this section, we’ll take a closer look at some of the most common licenses used in the open-source environment.

In general, licenses fall into two groups viral or non-viral (permissive) licenses. Viral licenses require that modifications to the program also be licensed under the same license as the original work. Examples of this type include GPL and LGPL. Permissive licenses, on the other hand, allow for redistribution under a smaller set of conditions. The program can be modified under these licenses without making the new source code publicly available as long as due acknowledgment is given. Examples of this sort of license are BSD, Apache license, and MIT license. Mozilla public license falls in between the two groups. In what follows we briefly review these licenses, starting with the viral ones.

GPL (GNU General Public License): The GPL is a copyleft[2] open-source license that requires all modifications and distributions of the software to be released under the same license. The GPL is often used for software projects that are intended to be free and open for everyone to use, modify, and distribute. Some of the most widely used open-source software projects, including the Linux operating system, are licensed under the GPL.

LGPL (GNU Lesser General Public License): The LGPL is a copyleft open-source license that allows the software to be used, modified, and distributed without any restrictions, as long as the original copyright notice and disclaimer are included. Unlike the GPL, the LGPL allows the software to be used as a library in proprietary software, as long as the proprietary software does not modify the library.

MIT License: The MIT License is a permissive open-source license that allows software to be used, modified, and distributed without any restrictions, as long as the original copyright notice and disclaimer are included. The MIT License is one of the most widely used open-source licenses, and is often used for simple software projects where the author wants to ensure that the software is freely available to everyone.

Apache License: The Apache License is another permissive open-source license that allows the software to be used, modified, and distributed without any restrictions, as long as the original copyright notice and disclaimer are included. Unlike the MIT License, the Apache License includes a patent grant that provides patent protection for users of the software.

BSD (Berkeley Software Distribution) License: The BSD License is a permissive open-source license that allows the software to be used, modified, and distributed without any restrictions, as long as the original copyright notice and disclaimer are included. Unlike the GPL, the BSD License does not require modified versions of the software to be released under the same license.

Mozilla Public License: The Mozilla Public License is a copyleft open-source license that requires all modifications and distributions of the software to be released under the same license. Under the terms of the MPL, it allows the integration of MPL-licensed code into proprietary codebases but is conditional on those components remaining accessible.

(Lerner and Tirole 2005) use the database of open source projects available on SourceForge website[3] to examine the effect of license choice. They found that open-source projects that operate on commercial operating systems and open-source projects aimed to be used mostly by developers prefer to use licenses with fewer restrictions, whereas open-source projects designed for end users tend to use licenses with more restrictions. Conforming to the natural mindset, (Comino, Manenti, and Parisi 2007) find that the degree of restriction that a license brings in is inversely proportional to the likelihood that the project will proceed to a more advanced level of development.

Economics of opensource

In this review, we will summarize some of the key findings from the literature on the economics of open-source development. Some relevant questions in this literature are: Why do people participate? Why are there open-source projects in the first place? And how do commercial vendors react to the open-source movement?

One of the main topics of research in this area has been the motivations of developers to participate in open-source projects. Researchers have found that developers are motivated by a variety of factors, including the desire to improve their skills, the opportunity to collaborate with others, the desire to contribute to a cause they believe in, and the potential to receive recognition and status within the open-source community.

(Lerner and Tirole 2002) assert that seeking recognition in the developer society is perhaps one of the most important incentives of open-source development. on the other hand, using a web survey of 684 software developers in 287 Free or open-source projects, (Lakhani and Wolf 2003) find that enjoyment-based intrinsic motivation, namely how creative a person feels when working on the project, is the strongest and most pervasive driver. This is in line with the findings of the survey by (Ghosh et al. 2002) that argue that open-source development is more like a hobby than a paying job for developers. On the other hand, using a game theoric model, (Harhoff, Henkel, and Von Hippel 2003) argue that end users of open source benefit by sharing their innovations. they show that under realistic parameter constellations, the free revealing of proprietary information actually pays off the innovators.

In general, it seems that both theoretical contributions and survey results support the idea that recognition is at least one of the primary reasons to contribute to open-source projects. (Hann et al. 2004) empirically test this hypothesis. Using Apache HTTP Server Project, they empirically find that contributions are not correlated with higher earnings, although higher Apache Project rankings are, suggesting that the recognition from open source development is somehow priced in the software job market.

Another important area of research has been the impact of open-source software on the software industry. Many studies have found that the widespread adoption of open-source software has led to increased competition in the software market, lower prices for consumers, and increased innovation (August, Chen, and Zhu 2021). However, some studies have also raised concerns about the sustainability of open-source development, as the development of open-source software is often based on volunteer contributions and may not be financially viable in the long run (Nyman and Lindman 2013).

(Lerner and Tirole 2002) discuss that commercial software businesses may utilize one of two ways in reaction to the raging popularity of open-source. The first is to mimic some of the incentive elements of open-source procedures in a very closed-source setting. Another option is to combine open and closed source procedures to achieve the best of both worlds. One such approach is straightforward. It comprises commercially delivering complementary services and goods that the open-source community does not provide efficiently. This ‘reactive’ strategy is exemplified by Red Hat and VA Linux, for example.

The second method is to become more involved in the creation of open-source software. Companies can distribute existing proprietary code while also establishing some governance structure for the resulting open-source process. For example, Hewlett-Packard recently made available to the open-source community their Spectrum Object Model-Linker in order to assist the Linux community in porting Linux to Hewlett-RISC Packard’s architecture (Lerner and Tirole 2002). The reliance on unpaid development has evolved over time in the open-source ecosystem. Contributors who work for proprietary firms have done more of the work on open-source projects recently. Using a sample of 100 open source projects available on Sourceforge.com, (Lerner, Pathak, and Tirole 2006) shows that the share of corporate contributors is higher for larger open source projects.

(Glynn, Fitzgerald, and Exton 2005) examines the factors that influence the adoption of open-source software. Overall, their findings indicate that open-source has a large penetration with broad deployment in two business sectors – consultancy/software house and service/communication – and more limited deployment in the government/public sector. The existence of a coherent and planned IT infrastructure based on proprietary software, on the other hand, served to restrict open-source adoption. Finally, individual-relevant elements such as overall open-source ideology support and devoted personal open-source championing were revealed to be significant.

Additionally, research has explored the role of firms in open-source development. Many firms have embraced open-source development as a way to reduce development costs, improve the quality of their software, and engage with the developer community. However, some studies have also shown that the involvement of firms in open-source development can lead to the commoditization of open-source software, which can reduce the incentives for developers to contribute to open-source projects. There is also substantial evidence that open-source work may be a good stepping stone for securing access to venture capital (Lerner and Tirole 2002). Sun, Netscape, and Red Hat are examples in which the early founders signaled their talent firstly in the open-source world.

(Johnson 2000) proposes an open-source software theoretical model. In his model, individual user-programmers decide whether to devote their valuable time and effort to developing a software application that, if created, will become a public good. open-source code has the ability to enable the whole Internet community to pool its programming knowledge, creativity, and skill. On the other hand, a lack of profit motivation might lead to individual free-riding and, as a result, unrealized developments. He also studies the effect of modifying the population size of user/programmers seeking both finite and asymptotic conclusions. He shows that when applications have a "modular structure", whether or not the number of programs increases is determined by whether or not the developer base exceeds a certain size.

In general, both the volume and distribution of open-source development efforts are inefficient. (Johnson 2000) demonstrated that neither of the open-source and closed source paradigms corresponds to a restricted social optimum. While the open-source paradigm exhibits both inefficient levels and distribution of development, it benefits from the fact that individuals know their own preferences better than a firm does, as well as the fact that a larger skill set (that of the community of programmers as a whole) can be utilised. Closed source developers consider the aggregate enjoyment that consumers will derive from a programme, whereas free-riding open-source developers do not.

One interesting question in understanding the economic incentives behind the open-source movement is why some obviously useful software such as word processors does not get written in open-source, or if they get written, they still lack the quality in comparison to their closed source counterparts. In this regard, (Johnson 2000) contends that the open-source community has been able to build enormously complex software objects, such as operating systems, but has failed to build other useful applications, such as word processors of comparable quality to proprietary versions, because a natural correlation between human capital and production technology leads those most adept at building applications to build ones that are most useful in their own work.


Notes

  1. https://www.statista.com/statistics/809750/worldwide-popularity-ranking-database-management-systems/
  2. Copyleft is a concept in copyright law that is used in the free and open-source software communities. Under the terms of a copyleft license, anyone who modifies or distributes the software must make the source code available to others, and must also license the software under the same copyleft license. This ensures that the software remains free and open for everyone to use, modify, and distribute, even if it is modified or incorporated into other software.
  3. https://sourceforge.net/


References

August, Terrence, Wei Chen, and Kevin Zhu. 2021. “Competition Among Proprietary and Open-Source Software Firms: The Role of Licensing in Strategic Contribution.” Management Science 67 (5): 3041–66.

Comino, Stefano, Fabio M Manenti, and Maria Laura Parisi. 2007. “From Planning to Mature: On the Success of Open Source Projects.” Research Policy 36 (10): 1575–86.

Ghosh, Rishab A, Ruediger Glott, Bernhard Krieger, and Gregorio Robles. 2002. “Free/Libre and Open Source Software: Survey and Study.”

Glynn, E., B. Fitzgerald, and C. Exton. 2005. “Commercial Adoption of Open Source Software: An Empirical Study,” 10 pp.–. https://doi.org/10.1109/ISESE.2005.1541831.

Hann, I, Jeff Roberts, Sandra Slaughter, and Roy Fielding. 2004. “An Empirical Analysis of Economic Returns to Open Source Participation.” Unpublished Working Paper, Carnegie-Mellon University.

Harhoff, Dietmar, Joachim Henkel, and Eric Von Hippel. 2003. “Profiting from Voluntary Information Spillovers: How Users Benefit by Freely Revealing Their Innovations.” Research Policy 32 (10): 1753–69.

Johnson, Justin Pappas. 2000. “Some Economics of Open Source Software.” Unpublished Working Paper.

Lakhani, Karim R, and Robert G Wolf. 2003. “Why Hackers Do What They Do: Understanding Motivation and Effort in Free/Open Source Software Projects.” Open Source Software Projects (September 2003).

Lerner, Josh, Parag A Pathak, and Jean Tirole. 2006. “The Dynamics of Open-Source Contributors.” American Economic Review 96 (2): 114–18.

Lerner, Josh, and Jean Tirole. 2002. “Some Simple Economics of Open Source.” The Journal of Industrial Economics 50 (2): 197–234.

———. 2005. “The Scope of Open Source Licensing.” Journal of Law, Economics, and Organization 21 (1): 20–56.

Nyman, Linus, and Juho Lindman. 2013. “Code Forking, Governance, and Sustainability in Open Source Software.” Technology Innovation Management Review 3 (1).