What is open source?

Author: Published

In brief: Open source is software distributed under a licence that allows you to use it, examine its code, modify it and redistribute it under specified conditions. It does not automatically mean a free service or an absence of restrictions. What you can do with a program is determined by its licence, not simply by the fact that its code has been published online.

What does open source code mean?

Source code is a set of program instructions written in a programming language, readable by people who know that language. Access to it lets you check how an application works, fix a bug or adapt its features to your needs. With closed-source software, users usually receive a finished product without these permissions or full access to the source code.

However, open source means more than being able to read the code. The licence must allow, among other things, modification and redistribution, including for commercial use. A repository, which is where code and its change history are stored, may be public yet still contain a program that cannot be freely modified or shared.

Examples of open-source software include the Firefox browser, the GIMP image editor and WordPress, a website content management system. You do not need to be a programmer to use them. Source code availability also matters to users: it allows them to hire another provider to develop or repair the program, provided that provider has the necessary skills.

Open source, free software and paid services

“Free of charge” describes the price, while “open source” describes rights to the software. A free application may have closed source code and prohibit modifications. Conversely, the creator of an open-source program may charge for its distribution, implementation, maintenance, additional services or technical support.

A WordPress website is a good example. The system itself is open-source software, but the domain name, server, configuration and website maintenance may cost money. Nor do all themes, plugins and related services have the same terms as the core software.

Running your own installation gives you greater control over the environment, but also makes you responsible for updates and backups. A paid managed service can take over some of these tasks. When comparing offers, therefore, check not only the licence price but also the total cost of running the tool and the scope of the provider’s responsibilities.

Why does the licence matter?

A licence sets out the conditions under which the creator permits the use of a work. Open source does not mean giving up copyright. Look for information about permissions in the LICENSE file, the project documentation and the information supplied with the specific version of the program.

Two common groups of licences differ primarily in their obligations when code is redistributed:

Simply using a GPL-licensed program in a business does not automatically mean having to publish your own documents or all the company’s software. It is important to distinguish between using, modifying and distributing a program to others. Some licences, such as AGPL, also cover certain cases in which a modified program is made available to users over a network.

This is a general explanation, not individual legal advice. Before incorporating someone else’s code into a product you sell, check the official text of the applicable licence and the licences of its dependencies — the libraries needed for the program to run — and, if in doubt, seek advice on your intended use.

Is open source secure and actively developed?

Publicly available code allows independent review, but does not prove that anyone has actually carried one out. Security depends, among other things, on the quality of the project, its response to bug reports and the regular installation of patches. An open-source program can be well maintained or abandoned, just like a closed-source product.

Not every project is developed by a large community, either. Development may be backed by a company, a foundation, a small team or one person. Users do not automatically receive a guarantee of assistance or a deadline for resolving failures; such commitments may be covered by a separate support agreement.

Before deployment, review the release history, documentation, security advisories and the way reports are handled. The number of people interested in a project is no substitute for this information. Infrequent releases do not necessarily indicate a problem if the program is mature, but a lack of response to serious faults is a warning sign.

How can you assess whether an open-source tool fits the task?

Suppose you are choosing a system for a company website. Open source code will be a genuine benefit if you need unusual features, control over the installation or the ability to change providers. If you have no one responsible for maintenance, a service with clearly defined support may be more convenient — including one based on open source.

Before deciding, carry out a short test:

  1. Install a trial version in an environment without customer data and test the most important task, such as publishing an offer.
  2. Verify the licences of the program and the add-ons you need.
  3. Check data export, backup creation and the ability to restore a backup.
  4. Establish who will install updates and resolve failures, and estimate the cost of this work.

Base your choice on the test results and your ability to maintain the program, not just on the “open source” label.

See also: What is 2FA?

Read also

Learn how PHP-FPM handles PHP requests, how it differs from a web server, and how to tune processes for traffic and hosting resources.
Learn how BIND, open-source DNS server software, handles domains, how its two roles differ and when running it yourself makes sense.
Learn what Poland’s REGON register and identification number mean, how they differ from NIP and KRS, and how to check a business’s details.