Open and free software. What is Open Source? Benefits of Open Source Software

There is no easy way to know which is the best software development model for your business, open source or proprietary.

There are many developers and programmers in Open-Source who are least intimidated by the idea of ​​software commercialization, but this poses a threat to the commercial software industry, which is most threatened by the concept of open source software.

The difference between them is quite obvious, since each model has its share of pros and cons. However, weighing the options between open source and proprietary to find which one is challenging.

As with any difficult decision-making, the only thing you can be sure of is “it depends.” It is clear that some have a slight edge over others in terms of features and characteristics that definitely define them.

The idea that one is completely contrary to the other is not entirely true. This article explains the difference between the two.

What is open source software?

It all started with Richard Stallman, who developed the GNU Project in 1983, which stimulated the free software movement, which eventually led to the revolutionary open source software movement.

A community of people working with the software will allow anyone to study and modify open source code for any purpose they want. The open source movement has broken down all barriers between developers/programmers and software providers, which encourages everyone to open up to collaboration. Finally, the label "open source software" was officially published at a strategy session in Palo Alto, California in 1998 to promote worldwide acceptance of this new term, which itself resembles academic freedom.

The idea is to release the software under an open license category so that anyone can see, change and distribute the source code as needed.

This is a certification mark owned by the Open Source Initiative (OSI). The term "open source software" refers to software that is developed and tested through open collaboration, meaning that anyone with the necessary academic knowledge can access the source code, modify it, and distribute their own version of the updated code.

Any software licensed under an open source license must be open source to users and redistributed by others if the distribution terms meet the OSI definition of open source. Programmers with access to a program's source code are allowed to manipulate parts of the code, adding or changing functions that would not work otherwise.

What is proprietary software?

Unlike open source, there is software whose source code can only be changed by the person or organization that created it.

The owner or publisher of the software solely owns the intellectual property rights to the source code. We call this software "proprietary software" because only the original owner(s) of the software are legally permitted to inspect and change the source code.

Simply put, proprietary software is software that is owned only by the individual or organization that developed it. Proprietary software, as the name suggests, is the exclusive property of their creators or publishers, and anyone outside the community is not permitted to use, modify, copy, or distribute modified versions of the software.

The owner is the exclusive copyright holder of the software, and only he has the right to change or add features to the source code of the program. He is the only owner of the program who can sell it under certain conditions that users must follow to avoid legal disputes.

Unlike open source software, the internal structure of proprietary software is not disclosed and restrictions are placed on users by an End User License Agreement (EULA), the terms of which must be followed by legitimate end users of the software.

Examples of proprietary software include iTunes, Windows, macOS, Google Earth, Unix, Adobe Flash Player, Microsoft Word, etc.

Difference between open source and proprietary software

Control of open and proprietary software

The idea is that developers and programmers are allowed to explore and modify the source code as a necessary cry out loud. More control means more flexibility, which means non-programmers can also benefit from open collaboration. Proprietary software, on the other hand, limits control only to the owner of the software.

Open Source and Proprietary Software Security

Since anyone with the necessary knowledge can add or modify additional features to a program's source code to make it work better, it provides better software stability since incorrectness in the software can be corrected and re-corrected. Since developers can work without any restrictions, it allows them to fix bugs that the original developers or publishers might have missed.

Open source and proprietary software driver support

Open source software packages often have missing drivers, which is natural when you have an open community of users with access to every single line of code. Software may include code modified by one or more individuals, each subject to different conditions. Lack of official support or sometimes using generic drivers can jeopardize the project. Proprietary software means closed group support, which means better performance.

Ease of use of open source and proprietary software

Unlike open source projects, proprietary ones are typically developed with a limited group of end users with limited skills in mind. They are aimed at a limited number of end users, unlike projects done in open source communities. Users outside the programming community won't even look at the source code, let alone change it.

Opacity of Open Source and Proprietary Software

Review restrictions prevented end users from changing the code, let alone debugging it, without control over possible workarounds. The internal structure of proprietary software that is strictly closed access means that they lack transparency, making it nearly impossible for users to even suggest modifications or optimizations to the software. On the other hand, Open Source promotes open collaboration, which means fewer bugs and faster bug fixes with less complexity.

Open Source vs Proprietary Software: Comparison Chart

Open Source Software Summary

Open-source refers to software whose source code is available for anyone to access and modify, while proprietary software refers to software that is owned solely by the individual or publisher who developed it. Unlike open source software, proprietary software is controlled by an individual or organization that exclusively holds the intellectual property rights to the source code, and no one outside the circle can view or review that code. The main difference between the two is that open source projects have the ability to evolve because they can be replicated by millions of developers located around the world.

The success of open source software is quite remarkable. It has not spared even large commercial software producers. IBM, Hewlett-Packard, Oracle and Microsoft have recognized his influence and, in some cases, adopted his methods. It seems that most companies with an IT function are already quite familiar with open source products, and often actively use them.

However, the ubiquity of open source software still raises more questions than answers. So let's try to answer the most popular ones.

What is open source software?

Let's go back to 1997. Talented Linux operating system developer Bruce Perens is putting together a document related to the preparation and distribution of a distribution version of Debian Linux. He later removed all references to Debian and introduced the concept known today as The Open Source Definition. Among other things, the Definition document stated that open source software should be distributed without any royalties to developers, distributors must provide everyone with free access to the source code of the programs, and all further improvements and upgrades of the programs should also be provided under the same conditions.

In essence, the open source software movement is a close relative of the Free Software Movement, proposed in 1983 by Richard Stallman. Its main goal was the free distribution of software, freeing it from the standard restrictions of commercial programs. The rules for distributing free software are regulated by the General Public License (GPL), which was approved in its third edition in October 2006.

There are dozens of different Open Source Initiative licenses in use around the world today, each with its own specific rules that require study by companies considering using open source software. Typically, these rules do not impose strict restrictions on those who wish to access open source programs. As for distribution requirements, they need to be given more serious attention to avoid potential problems associated with violating licensing rules.

Why open source software?

The first reason why companies look at open source software is very simple - price. And the ROI of an open source model clearly demonstrates this. Open source software is completely free to download, install and use. At first, low costs attracted developers who wanted to try new tools or design new applications without investing any money. The new freedom has led many of them to support the open source software movement. As a result, industry-grade open source software such as the Linux operating system, the Apache Web server, the Java application server JBoss, and the Eclipse development environment began to appear around the world, along with thousands of other projects.

In the late 1990s, enterprise management finally began to pay attention to open source software. With IT budgets constantly shrinking, developers boasted about the quality and savings achieved by using open source software, and many companies began to seriously consider using open source software components in enterprise projects. The first large enterprises to implement open source software were The Weather Channel, Cendant Travel, Employease and Saber.

At a time of global Internet growth, open source software allows companies to quickly expand their electronic operations without constantly purchasing new licenses for commercial software. The benefits also extend to development and testing. This way, companies can try new things without the additional costs associated with commercial software and the budget-breaking process that is required in such cases.

It's probably no secret that few people take advantage of the availability of source code in open source products. It would seem that the right to freely modify and correct software code should be considered a serious plus, but in reality, instead of maintaining the software themselves, it is much easier for companies to rely on a community of developers who promptly update and debug the program code of all popular products.

Reasons for rejecting open source software

The arguments against open source software are usually easy to count on one hand.

    Getting free software is like "giving away free puppies." You can download and install it completely free, but training and user support end up costing more than the total cost of commercial software, or a comparable amount. This argument, which Microsoft especially likes to make, operates on a subconscious level. Whether this is fair or not depends on the specific situation and which analytical report you are reading at the moment.

    Organizing technical support is difficult. In the early days of the open source movement, when development and support was largely done by groups of volunteers or “communities,” this was indeed a pressing issue. But while many organizations have found community support to be sufficient to meet their needs, today there are many other opportunities open to them, including support for large open source projects by Hewlett-Packard and IBM. As a result, the statement that “to suffocate, it is enough to block one throat” loses its relevance.

    Developing new functionality takes longer compared to commercial software. It really depends a lot on the specific type of software you're using. The Firefox web browser is the best example of how quickly open source software can be tailored to users' needs. You can also recall how quickly Linux developers organized support for new technologies, in particular USB ports. In this regard, Linux practically did not lag behind Windows. But when it comes to enterprise software, building in mechanisms to support the latest video card or audio chip plays a much less important role here compared to ensuring high stability and performance.

    Uncertainty of further development and branching. The wide variety of open source software licenses, as well as the possibility of active end-user intervention in the program code, deters corporate customers from implementing such programs. But close examination of open source application licenses by lawyers alleviates most of these fears. Some open source software providers and third-party companies even offer damages, so the open source applications you use may well be the subject of a lawsuit.

Where to begin?

Today, almost every type of business software is available as open source products, from email servers to VoIP systems. Many companies first of all pay attention to Web applications, where there are products that have existed for quite a long time and have already managed to prove their worth. A common reference is to the LAMP stack (Linux, Apache, MySQL and PHP, Perl or Python depending on the specific situation). The Unix-like Linux operating system has become widespread. One of the most popular Web servers today is Apache. The MySQL database management system successfully competes with expensive commercial products. And the programming and scripting languages ​​PHP, Perl and Python are widely used as tools for developing open source Web applications. Open source Java-based Web sites often rely on the JBoss application server. As you become more familiar with open source tools and discover the similarities and differences between them and commercial products, you will discover other possibilities. It may also be surprising to learn that your developers occasionally turn to certain open source products at their own risk.

Application servers are great, sure, but what about open source desktop software?

It is quite common for end users to use various open source desktop tools. A striking example of such a solution is the Mozilla Firefox Web browser. Some government and commercial organizations prefer the Sun OpenOffice office suite over Microsoft Office. But while some players are venturing into the unknown by installing the Linux operating system on their desktop computers, Windows remains by far the dominant player. End-user friendly versions of Linux (such as LinSpire) cannot break the status quo because user training takes time and money. Additionally, most commercial software packages—on which many companies depend—are developed for Windows first and Linux second (if a Linux version is ever released at all).

Can open source products be sold?

Yes, of course, but the rules of the Open Source Initiative prohibit obstructing the sale of your code to others. And yet, many companies are finding ways to make money from open source products. Many, in addition to the actual code, offer corporate support services, which are very readily purchased by companies. Others provide two versions of the software code: one in an open and free form, and another that includes additional useful functions, contains proprietary components and must be paid for by customers. This mixed model is becoming increasingly popular. It is actively used by companies such as SourceFire, SugarCRM, Alfresco and a number of others.

Other open source resources

Many open source programs can be found on the Internet:

    FreshMeat. Huge database of downloadable software, much of it in open source form.

    SourceForge. A giant site for open source software developers, bringing together thousands of open source projects. Some of them continue to develop, while others have already ceased to exist.

Open source resources - official and unofficial

    Open Source Initiative. A non-profit organization that considers its main task to be the further development of open source software and is funded by a number of players who have been operating in this field for a long time.

    Open Source Technology Group. Arguably the world's leading promoter of open source technologies. It is this association that owns the news site Slashdot, as well as the resources SourceForge and FreshMeat.

    Open Source Risk Management. Offers mechanisms to ensure compliance with regulatory requirements.

    Open Source Development Labs. An organization whose main goal is to promote the Linux operating system among corporate clients.

How computer programs are created

A computer program is a list of instructions given to a computer to cause it to perform a specific task or series of tasks. Computers do not understand English, so programmers must communicate these instructions to the computer in a language that the computer understands. Computers, however, can only work with numbers, which makes computer language very difficult for humans to understand.

The solution to this problem is to create an intermediate language that can be understood by both humans and computers. These are the so-called programming languages. Programmers create a list of instructions for a computer in a programming language such as C, Pascal, or Fortran. This list of instructions is known as source code. It is textual in nature and is readable by people - those who speak the language. Programmers do all their work in this source code, changing instructions to fix bugs, add features, or change the appearance of the program.

When a programmer believes that he has perfected the instructions for his program, he uses a special program called a compiler to translate his human-readable texts into machine-readable numbers that correspond to the same instructions. The resulting file is usable on computers, but incomprehensible to humans. This is called object code. The resulting executable file is often called binary, after the number system used by the computer. This translation from source code to binary object code is a one-way process. It is not possible to translate a binary executable back to source code.

Executable file- what you need if you want to launch and use the program. This is usually what you will get when you purchase shrink-wrapped software from a retail store. Source code is what you need if you want to understand how the program works internally, or if you want to change, add, or improve the program. If you have the source code and the appropriate compiler, you can create a binary executable, but the reverse is not true.

What is Open Source?

Software that is only available in binary executable format is proprietary.

Open source software is copyrighted software that is distributed in source code form under a license agreement that grants special rights to users of the software, rights that are usually reserved by the author. This license allows all users to make and distribute copies of the software's binary files and source code without specific permission from the author. Additionally, it allows users to modify the source code and distribute modified copies.

What does this mean

You are wondering why Open Source is important. The importance lies in the fact that any programmer anywhere in the world can view the source code, fix bugs, add new features and customize the system without restrictions. This is how Linux was designed from the very beginning, and this is why Linux is a very stable system with few bugs, wide hardware support, and a feature set that is growing so fast that proprietary operating system vendors are jealous. The fact that the source code is open for review by experts around the world ensures that any problems are found and resolved quickly, and fixes can be distributed without restrictions. This is much more efficient and effective than relying on a corporation to squeeze a "update package" somewhere into their busy release schedule. After all, they don't get paid for the upgrade packages.

What really matters is that open source software belongs to the community. It is software that is maintained by a community of people (or companies) who use it. It is freely available on the Internet and anyone can use it. More importantly, users are encouraged to improve it. By sharing our improvements and ideas, connecting our resources with thousands and even millions of people around the world via the Internet, the open source community can create powerful, stable and reliable software at very little cost.

But the open source community is much more than just people who write software. Everyone who uses the software participates in a real community and has a voice. You don't need to be a programmer. By simply reporting a bug to the program's author or writing a simple how-to article, you are contributing to the community and helping to improve the software. Open source software is written, documented, distributed, and maintained by the people who use it. This means that it is sensitive to your needs, not the needs of the corporation trying to sell it to you.

Of course, many companies also contribute to open source software, making their work available to the entire community because they know the benefits of Open Source. Software that is supported by an entire community is inherently better and more stable, and more and more companies are starting to appreciate this fact.

The point is that open source software is written by people who use it every day, people who have a vested interest in making it work and working well. They're not trying to add buzzword features, they're trying to add quality. They don't spend time and money trying to convince people that their software is great, they spend it trying to make their software great.

Resources

"Open Source" is a trademarked phrase describing software licenses that meet the Open Source definition. The brand is managed by the Open Source Initiative, the collaborative organization that launched Linux and the free software movement. Only software that meets the criteria described in the open source definition can call itself open source.

Long before the term "open source" came into use, there was a community of people committed to the idea of ​​"Free Software", a phrase that refers not to cost but to the freedom to use and modify it (think of freedom as in " freedom of speech" and not "free beer"). This community continues to actively promote the ideals of free software. To find out more about this, you can visit The Free Software Foundation https://www.fsf.org/.

For an in-depth look at how and why open source software is developed, read Eric S. Raymond's excellent essay "The Cathedral and the Bazaar".

If you're considering open source software for your business, you should visit The Open Source Initiative to learn more. Take a look anyway and see how the open source community can improve the stability, scalability, and power of your business while actually cutting costs.

The efforts of computer equipment manufacturers to promote solutions, supported by powerful marketing support, have become widely known open-source software(open source software). In modern official usage in Russian, this phenomenon is usually called free software(SPO).

The essence of the concept consists of several principles for the creation and distribution of open source software:

  • availability of source codes for everyone;
  • distribution licensing policy based on one of the community approved licenses (see opensource.org);
  • the opportunity to directly participate in the development and correction of errors in the software on your own;
  • the ability to change some software functions and adapt to new conditions (subject to the availability of changes to the entire community);
  • maximum compatibility with open standards;
  • ability to work in various operating systems and on several platforms (cross-platform).

These principles are used to create the majority

SPO. It is worth noting that there is a noticeable difference between free And free BY. Despite the fact that most open source software licenses provide for free distribution, this property alone is not enough for the software to be considered free.

Open source has already won a number of important victories over the strongest of proprietary software manufacturers. Specifically the web server Apache is far ahead of similar products from other companies (including Microsoft) in terms of market share due to its low cost, independence from suppliers, the presence of many users with experience in its administration and support from developers. Linux surpassed all other types in terms of supply volumes Unix for platform Intel, including the long-held leadership SCO. Open source DBMSs occupy a strong position in the markets for open source operating systems and popular low-end Internet solutions. The threat to proprietary software comes from the benefits of open source software, which are similar to those of the Internet, i.e. openness, freedom of adaptation, etc.

Free software already has a strong presence in server operating systems, Internet infrastructure, web application servers, database management systems for small businesses and departments based on web databases with dynamic generation of web pages, technical and embedded computing systems, and software for server devices. Speaking of Internet infrastructure, it should be noted that most devices run operating systems and other open source software. These devices include domain name servers, routers, switches, firewalls, gateways, load balancers, application and database servers, etc.

Given these advances, open source software poses a threat to firms whose primary source of revenue is client access fees and licensing fees for proprietary software. Open source brings the hardware market's obsolescence and commoditization business model to software—a model that is difficult for a traditional software vendor, especially a leader, to adapt to.

Many of the vendors using open source business models did not develop as traditional software providers to begin with. As open source market share grows and its position in strategic online markets grows, legacy software providers are identifying the threats posed by open source and the opportunities presented by new business models. Naturally, traditional software providers have the opportunity to adopt these business models in whole or in part, depending on their product range. But even so, open source poses a tangible and very real threat to the way software companies do business.

There are four main threats to closed companies from open source.

  • Price pressure. Since open source licenses essentially require free distribution of software and its modifications, prices for similar traditional products need to be reduced to keep up with open source software and combat the loss of market share. For example, SCO cannot charge $2,000 for Unix for platform Intel, while Linux available for free, a Microsoft monopolizes the desktop sector. Traditional vendors, however, can partially recoup their losses by making their software products better than SP O's and charging extra for it.
  • Quite good functionality."Good enough" software (but not the best) can partially displace products from traditional software vendors, which are too often aimed at the mass market. More complex (and expensive) functionality in its early stages of development is always aimed at a relatively small group of specialist users. But even manufacturers operating in this market still need to clearly understand that the market for highly developed software will expand and deepen. If advanced functionality fails to attract a wider range of users, customers will naturally purchase open source alternatives, albeit less developed ones. In very large mass markets, dominant open source software providers, in addition to increasing their supply volumes, have a lot of opportunities for growth through the implementation of additional product and service strategies. The size of the mass market itself ensures lower prices due to high supply volumes, which allows end consumers to receive significant profits even with a slight increase in the cost of their products.

In some cases, open source software can even outperform traditional products in functionality. For example, Apache became the first of the web servers to introduce an Internet function popular among providers IP aliasing allowing you to host several Internet domain names on one system.

  • "Network Effects" conditioned by knowledge and study of software and tools for mass use. The cost of training users of a new technology constitutes a significant portion of the total cost of ownership, exceeding the price of the software product itself. A company with a large user base familiar with the product and its accompanying tools can leverage this familiarity by releasing new versions or entering adjacent markets. This type of network effect can vary depending on the type of user - software developers use API, system administrators handle specific administration tools, users operate graphical user interfaces, and managers establish relationships with vendors. Once formed, this network of partners and users of open source solutions is no longer destroyed and allows you to solve smaller marketing problems, such as gaining adherents and customer loyalty.
  • Standardization pressure. The final threat from the open source movement is its tools and culture, which views as its enemy all sorts of technological barriers erected by traditional software vendors.

Recently, the most rapidly developing area in software is the so-called "commercialopen-source", those. JV O supported by ordinary commercial companies. The corporation should be considered one of the leaders in this direction Sun, which is developing several large projects in this sector: OpenSolaris OS DBMS MySQL office suite OpenOffice.org and virtualization environment Virtual Box. As a rule, there are several versions of such software, including a commercial one. When paying for a license, the user receives technical support, as well as, in some cases, special tools for convenient work that are not available under an open license. That is, for small needs, companies can use free or free versions of software, and when requests increase, buy commercial extensions without changing anything in their infrastructure and applications. Thus, the commercial version of open source software directly competes with the developments of traditional companies, for example Microsoft, which actively creates special licensing schemes for use in the Internet environment (we are talking about server software).

As a result, open source software on the Internet plays a system-forming role, supporting and developing the basic principles of building the Network. In addition, the use of open source software is relevant from the point of view of focusing on the provision of services instead of the sale of goods. Therefore, when creating Internet systems, it is worth focusing on open standards and software that implements them, since only this way will provide the opportunity for business development and obtaining new opportunities in electronic markets.

The use of open source software to support Internet technologies is natural and necessary from the point of view of the properties of scaling, globality and compatibility. For example, increasing the number of servers or other infrastructure devices does not require additional software investment, which provides greater flexibility than with proprietary software. This becomes especially true when the cost of software exceeds the hardware component of the project. The requirements of globality and compatibility are implemented thanks to good support for cross-platform open source software and the use of open standards, which allows maintaining a high level of compatibility even with many competing products and platforms on the market.

In light of modern developments of service applications based on web technologies, open source software in combination with inexpensive computers (nettops and netbooks) can significantly displace traditional desktop and mobile systems, the basis of which is the operating system Windows and traditional office suites. Using a lightweight, custom OS with a kernel-based GUI Linux and modern web browsers allows you to perform most everyday tasks on netplatforms using only open source software.

With the help of open source projects, you can improve your skills by correcting other people's mistakes and creating something new. You can find a project that will be useful for your own business, for example, in medicine or e-commerce. Additionally, as practicing programmers, one of the best ways to motivate yourself to get into programming is by working with open source projects. Especially for readers of the Geekbrains blog, we have compiled a list of such projects from different fields of activity:

Software package for working with medical images. 3D Slicer is available on several platforms, including Windows, Linux and OS X.

A tool that allows you to distribute the processing of large amounts of data across clusters of computers using simple programming models.

A popular software package for working with text, creating spreadsheets, presentations, graphics, databases, etc. A completely open development process means that anyone can report bugs, request new features, or improve the software. It is written in the international open standard format, so it accepts files from other open office software packages.

Content management platform that powers millions of websites and apps.

A media manager designed to create large, centralized media libraries.

Free operating system like Unix.

Office suite for collaborative development with functionality similar to Microsoft Office or OpenOffice.org.

System for creating courses. A free web application that educators can use to create effective online teaching sites. Moodle has become very popular among educators around the world as a tool for creating dynamic websites for their students.

Software for creating and managing educational audio and video content.

Multiplatform corporate content management system written in Java. Works with multiple databases (including MySQL, Oracle, PostgreSQL, SQLLite, and others), and also supports multiple authentication methods.

Software for creating private and public clouds.

The service allows you to create surveys and share them with contacts on the site. A convenient way to collect data for subsequent analysis.

DICOM server for healthcare and medical research. Designed to make it easier to manage medical imaging data. A good tool for automating medical imaging tasks specific to each medical institution.

The project was created by the Open Source community and is designed to provide better solutions for enterprises using business analytics.
Main Applications:

  • creating reports
  • analysis
  • data collection
  • business intelligence platform

Java™ developers can use the project's components to quickly create their own business intelligence solutions.

Modular open source digital data management system.

Free software for e-commerce.

A library for quickly filtering and sorting large collections - up to 100,000 items in the browser.

Open source languages

An open source programming language and development environment for people who want to create images and animations.

R is an open programming language and software environment for statistical calculations and graphics. The R language is widely used among statisticians for statistical software development and data analysis.

Where can I find more open source projects?

One of the largest web services for joint development of IT projects. Absolutely free for open source projects. The motto of the “Social coding” service can be translated as “Coding together.”

Designed to popularize open source projects. Using the tools provided there, developers have created powerful software in over 430,000 projects; the resource has more than 3.7 million registered users. The popular directory connects more than 41.8 million customers with open source projects and serves more than 4,800,000 downloads per day.

Fossdroid's goal is to promote open source applications on Android through the F-Droid project. Fossdroid takes its data from F-Droid and organizes apps in a Google Play-like order, with the ability to view them by popularity.

How to find out if the software is open source and what are the rules for its use?

It is necessary to understand that not all open source projects can be used for commercial purposes or freely modified. To find out whether the software is open source and what the rules for its use are, you need to look at its license. Usually its full text is located directly in the code.