“Eppur si muove”: free software and reproducible research
A 12-minute read
«The game of science is, in principle, without end. He who decides one day that scientific statements do not call for any further test, and that they can be regarded as finally verified, retires from the game.»
Karl Popper
Suppose that Robinson Crusoe possessed a brilliant scientific mind and that, on his desert island, he had access to the most advanced technologies. Even if, alone and with unlimited time at his disposal, he had come to demonstrate the most complex scientific laws that we have discovered over the centuries, he still could not be considered a scientist. In The Open Society and Its Enemies, Popper uses this famous image to clarify the necessarily public character of science.
According to the German philosopher, the body of theoretical systems that we suppose Crusoe to have developed – however coherent and complex we may imagine them, and however much obtained by following the experimental method – does not constitute scientific knowledge, because in his world there is no one, other than himself, who can put his theories to the test. No other theoretical systems can be conceived with which his own might come into conflict, nor different scientific results that would lead our scientist to revise and improve his procedures. Science is therefore a collective form of knowledge, one that cannot set aside the sharing among the members of a community. In Crusoe's case we cannot speak of science, because on his island a fundamental element of the method is missing: the reproducibility of the experiment aimed at testing the theory. Curiously, the paradigm of “Crusonian science”, used to represent the impossibility of scientific knowledge in the singular, proves remarkably effective in describing certain practices widespread in today's research environments.
The introduction of information technology into science has radically changed its forms and its instruments. It has made it possible to process large quantities of data through complex numerical procedures and in relatively short times, obtaining results that were previously impossible to plan. In this renewed context, the scientist is often no longer the one who carries out experiments in the laboratory or who analyses their results, but the one who knows how to operate a computer, to which the task of solving a problem is entrusted. Apparently, with the introduction of computers, the dynamics of research change radically along with the image of the scientist. If, however, we try to compare the two models – the so-called classical one and computerised research – we realise that they are essentially superimposable, since the computing procedures that make up the software are the implementation of the mathematical formula of the scientific law.
According to Popper's model, the testing of a theory is carried out by reproducing the factual experiences related to it and assessing the correspondence of the results obtained with the theoretical assertion. If these prove consistent with the theory, they increase the probability of its correctness, whereas a single result is enough to falsify it and establish its unreliability. For a piece of research to be testable and to meet the requirements of the scientific method, access to the data and to their processing procedure must be guaranteed. Where this procedure consists of software – rather than mathematical operations – it is the software itself that requires testing.
It should be noted that a computer program is an organised set of elementary instructions given to a machine by means of source code, which the machine then translates into binary code. While the former is written in a programming language intermediate between man and machine, the latter is the result of its compilation into a language executable by the computer but not intelligible to a programmer: machine language. In the same way, the digital data processed and produced by the software are a binary sequence encoded according to rules laid down by a data format, which makes them interpretable.
In order to guarantee the principle of intersubjectivity of the scientific method – which states that “only such statements as can be intersubjectively tested may be introduced into science” (K. Popper, The Logic of Scientific Discovery, Einaudi, Turin 1970) – it is necessary to publish, together with the programs and the data, the source code and the data format as well. Only in this way can a piece of research call itself scientific.

Initially, computers were supplied to research institutions complete with programs and source code, and the programmers were the very researchers who collaborated to develop software that was ever more efficient and suited to their scientific aims. From the 1980s onwards a practice gradually took hold whereby software was no longer freely available and was managed solely by the institution that commissioned its compilation. Thus was born so-called proprietary software, which denied users access to the source code, entrusting the development, control and modification of the program to a small group of specialists.
In 1984 Richard Stallman, a researcher at the artificial intelligence laboratory of the Massachusetts Institute of Technology in Boston, noticed that his own work was severely limited by the introduction of proprietary software: a program that did not work properly could not be modified by the researchers themselves, unless they were willing to sign secrecy agreements with the companies that held control of the software's development, stooping to conduct of questionable professional propriety towards their own colleagues. Stallman resigned from his job in order to try to solve what he had felt to be a problem that constrained his profession. It was his ambition to create an operating system that would provide programs for users and guarantee full access to the development tools for the software that made it up, offering the possibility of compiling new programs. The idea of free software formalised by Stallman – based on the possibility of using the software for any purpose, of copying it, of studying its source code and of improving it – fits perfectly with the needs of publicity and sharing of scientific research. It is indeed able to set in motion a virtuous mechanism of checks, modifications and evolutions of programs which, far exceeding the narrow limits of the proprietary institution, potentially takes on the unlimited dimensions of the worldwide scientific community, thanks also to the possibilities of global and instantaneous dissemination of information offered by the internet.
Just as Stallman's GNU operating system was looking for a “kernel” efficient enough to run on, in 1991 Linux was born, created by a twenty-one-year-old student at the University of Helsinki, Linus Torvalds, who had developed it for his thesis and put it online in the form of free software, precisely in order to get suggestions for improving it. In this way anyone could work on it, accessing the source code, and publish the results online again with all the information needed for further testing. Thus, since 1991, the GNU/Linux operating system has allowed everyone to use, share and develop free software.
Stallman's principles outline an open scientific community in which the free circulation of research results is shared by a plurality of subjects who guarantee the testing of newly acquired experiences, the exchange of knowledge and therefore the growth of learning. In this way the dialogical and critical moment is safeguarded, an integral part of the genesis of any scientific assertion, which is never to be understood as definitive and immutable but, on the contrary, demands to be tested, supplemented, modified or, if necessary, rejected.

A scientific community of this kind, based on the sharing of knowledge and on the testability of results, stands in continuity with the Popperian idea of a science that «never pursues the illusory aim of making its answers final», but which, free from prejudices of every kind, advances towards the «infinite yet attainable aim of ever discovering new, deeper and more general problems, and of subjecting its answers, which are ever tentative, to ever renewed and ever more rigorous tests» (K. Popper, The Logic of Scientific Discovery, Einaudi, Turin 1970). In this sense error, which is a possible outcome of the testing of a theory, is the starting point for its improvement or for its definitive abandonment, and therefore constitutes an occasion for progress.
Proprietary software, by contrast, is based on the secrecy of the source code and of the data format, regarded as the exclusive property of the producing company. In this case the scientific community that sets in motion the mechanism of testing and of the discovery of errors is narrowed to the closed sphere of a single company, which does not release the implementation of its algorithms and procedures to the outside world, reducing their reliability and hindering their improvement. The rest of the scientific community is thus asked to place its trust in non-reproducible procedures, introducing a principle of authority that has always been foreign to the scientific method.
The proprietary practice of keeping the source code and the data format secret is motivated by the same dynamics of commercial rivalry for which the recipe for Coca Cola has always been kept secret. The act of sealing off computing procedures rests on an idea of software understood as a material good, comparable to any commercial product. It is worth clarifying the consequences of this radical change in the dynamics proper to the scientific community. In reality the function that software performs in research is entirely comparable to the role of the succession of formulas designed to solve a scientific problem. Both, in fact, constitute the procedure for processing experimental data according to the given variables that interact in the phenomenon under study. Software, therefore, is not a material good, any more than the theorem of Pythagoras is. It is clear that such a confusion between an intellectual good and a material good sanctions practices that contaminate the diffusion of knowledge in the scientific community as it has been theorised from its earliest formulations down to Popper. If Pythagoras had not written of his theorem, or if Euclid had not published the demonstration of its mathematical procedure, or if the use of his formula had somehow been prevented, no one would have been able to use, for any other application, the well-known procedure for calculating the hypotenuse of a right-angled triangle from its two legs. It would have been necessary to invent alternative methods for carrying out the same calculation, instead of using it directly in the development of more complex theories.
Software, like the scientific formula, is a cultural good. This, however, does not mean that it cannot be marketed, as happens with every other intellectual production. The novel element of this trade, rather, lies in the fact that the purchase of proprietary software grants only its use and not knowledge of the elements that make it up, thus denying the possibility that the whole procedure, or some of its elements, might be used to develop other algorithms. Open-source software does not intend to subvert – as is often made out – the rules of intellectual property provided for in our society. There are, in fact, no elements of incompatibility between the idea of intellectual property and free access to knowledge. Copyright, as protection of the author of the software, is absolutely respected and formalised in licences of full legal value (the best known of which is the General Public License). The difference is that the instruments of intellectual property are interpreted by the developers of free software as means to protect both the user and the developer.
In reality proprietary customs follow the logic of the patent more than that of copyright. And it is no coincidence that the practice of patenting software is already spreading in the United States, while on the delicate question of its actual legal validity a wide debate has opened in the European Parliament. The patent has always been an instrument for partially safeguarding any technological product from commercial competition. To apply this protective mechanism to software means to consider it an instrument of research, rather than an integral part of it, with all the serious methodological consequences that this misunderstanding entails when it comes to programs intended for scientific research.
Many public and private research institutes use GNU/Linux, develop free software and promote access to data through open formats, applying the practices that a healthy scientific productivity requires. The seismic exploration research school of Stanford University, founded by Professor Claerbout, has always promoted reproducible research and has recently found in free software the ideal environment in which to develop it. Although there are various famous examples of this kind, as long as both types of software coexist in research, the scientific community will not be a fully open system and science will be unable to progress fully according to its own dynamics of development, which feed on constant criticism of every new acquisition. Moreover, the research groups that commit themselves to producing and improving software, and that publish its data, will be severely penalised if their work continues not to be assessed as an integral part of the research itself.

On the basis of these observations, it can be argued that the use of proprietary software in the scientific community constitutes a threat to some fundamental principles of the method. On the contrary, there is an evident analogy between the idea of the scientific community described by Popper and the dynamics of diffusion of research procedures shared by the developers of free software.
The history of science is studded with more or less famous episodes in which the principles of the method have been overridden by external factors that, in different ways, have replaced the critical attitude with a principle of authority, limiting its characteristics of openness and freedom. It seems to us that today the practice of proprietary software, applied in the scientific field, may constitute a new “enemy” of what for Popper is the “open society” par excellence, namely the scientific community. Using a parallel that is not as out of place as it may seem, we might say that what the traditional system of Aristotle and Ptolemy represented for Galileo, the use of proprietary software in research risks becoming for the science of today.
Works consulted
Popper, The Open Society and Its Enemies, Armando Editore, Rome 2004
Popper, The Logic of Scientific Discovery, Einaudi, Turin 1970
http://softwarelibero.it, website of the Association for Free Software
http://www.fsf.org, website of the Free Software Foundation created by Richard Stallman
http://www.gnu.org, website of the GNU project
http://www.linux.it/Vademecum#Legenda_dei_termini, a glossary of terms related to free software, part of the vademecum of the Italian Linux Society