It is not easy to define the term ‘open source software’ with few words, due to the many categories and variants that exist. But it is not too complicated, either, since the idea in itself is simple. Therefore, before using stricter definitions, let us devote a moment to explain, in a relatively informal way, what do we understand as open source software.
General idea of open source software
When we talk, in English, about ‘free software’, there is a dangerous ambiguity, due to ‘free’ meaning both ‘freedom’ and ‘gratis’. Therefore, in this article, we will use mainly the term ‘open source’ when referring to users freedom of use, redistribution, etc., and ‘gratis software’ when referring to zero acquisition cost. The use of the Spanish and French word ‘libre’, by the way, has been adopted in many environments to refer to open source software, but will not be used here for the sake of uniformity. Anyway, before going into more detail, it is a good idea to state clearly that open source software does not have to be gratis. Even more, it usually is not, or at least, not completely. The main features that characterize free (open source) software is the freedom that users have to:
$. Use the software as they wish, for whatever they wish, on as many computers as they wish, in any technically appropriate situation.
$. Have the software at their disposal to fit it to their needs. Of course, this includes improving it, fixing its bugs, augmenting its functionality, and studying its operation.
$. Redistribute the software to other users, who could themselves use it according to their own needs. This redistribution can be done for free, or at a charge, not fixed beforehand.
It is important now to make clear that we are talking about freedom, and not obligation. That is, users of an open source program can modify it, if they feels it is appropriate. But in any case, they are not forced to do so. In the same way, they can redistribute it, but in general, they are not forced to do so. To satisfy those previous conditions, there is a fourth one which is basic, and is necessarily derived from them:
- Users of a piece of software must have access to its source code.
The source code of a program, usually written in a high level programming language, is absolutely necessary to be able to understand its functionality, to modify it and to improve it. If programmers have access to the source code of a program, they can study it, get knowledge of all its details, and work with it as the original author would. Paradoxically, if this freedom is to be guaranteed for a given piece of software, with current legislation, it is necessary to “protect” it with a licence which impose certain restrictions on the way that it can be used and distributed (as it will be shown later).
This fact causes some controversy in certain circles, because it is considered that these licences make the software distributed under them “less free”. Another view, more pragmatic, is that software will be made more free by guaranteeing the perpetuation of these freedoms for all its users. Because of that, people holding this view maintain that it is necessary to limit the ways of use and distribution. Depending on the ideas and goals of the authors of a piece of code, they can decide to protect it with several different licences.
0 comments:
Post a Comment