Freie Software bedeutet komplette Verständlichkeit/Free software means complete understandability

By Wolfgang Keller
Originally written 2019-10-31
Last modified 2020-02-05

  • Deutsche Version: 2019-10-31 veröffentlicht; 2020-02-05: kleine Änderungen zum Anlass der englischen Übersetzung
  • Engliche Übersetzung: 2020-02-05 veröffentlicht
  • German version: published 2019-10-31; 2020-02-05: small changes on the occasion of the English translation
  • English translation: published 2020-02-05

Die Free Software Foundation (FSF) definiert, dass ein Programm Freie Software ist, wenn Nutzer des besagten Programms über vier von ihr als wesentlich gesehene Freiheiten verfügen (Quelle: What is free software? - GNU Project - Free Software Foundation [visited 2019-10-25T22:31:43Z]):

The Free Software Foundation (FSF) defines that a program is Free Software if the users of the aforementioned program have four freedoms - which are considered as substantive/crucial by the FSF - at command (source: What is free software? - GNU Project - Free Software Foundation [visited 2019-10-25T22:31:43Z]):

  • „The freedom to run the program as you wish, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help others (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.“

bzw. in der offiziellen deutschen Übersetzung (Quelle: Freie Software. Was ist das? - GNU-Projekt - Free Software Foundation [visited 2019-10-25T22:21:46Z]):

  • „Die Freiheit, das Programm auszuführen wie man möchte, für jeden Zweck (Freiheit 0).
  • Die Freiheit, die Funktionsweise des Programms zu untersuchen und eigenen Datenverarbeitungbedürfnissen anzupassen (Freiheit 1). Der Zugang zum Quellcode ist dafür Voraussetzung.
  • Die Freiheit, das Programm zu redistribuieren und damit Mitmenschen zu helfen (Freiheit 2).
  • Die Freiheit, das Programm zu verbessern und diese Verbesserungen der Öffentlichkeit freizugeben, damit die gesamte Gesellschaft davon profitiert (Freiheit 3). Der Zugang zum Quellcode ist dafür Voraussetzung.“

Wie man in diesen vier Punkten/Freiheiten sieht, argumentiert die FSF, dass Zugriff auf den Quellcode eine Vorbedingung für Freiheit 1 und 3 ist. Als Begründung hierfür findet man im Abschnitt „The freedom to study the source code and make changes“ des bereits oben verlinkten Textes What is free software? - GNU Project - Free Software Foundation [visited 2019-10-25T22:31:43Z]:

As one can see in these four points/freedoms, the FSF argues that access to the source code is a precondition for freedom 1 and 3. As rationale therefor, one finds in the section “The freedom to study the source code and make changes” of the text What is free software? - GNU Project - Free Software Foundation [visited 2019-10-25T22:31:43Z] linked above:

„In order for freedoms 1 and 3 (the freedom to make changes and the freedom to publish the changed versions) to be meaningful, you need to have access to the source code of the program. Therefore, accessibility of source code is a necessary condition for free software. Obfuscated ‘source code’ is not real source code and does not count as source code.“

bzw. in der offiziellen Übersetzung Freie Software. Was ist das? - GNU-Projekt - Free Software Foundation [visited 2019-10-25T22:21:46Z] im Abschnitt „Die Freiheit, den Quellcode zu untersuchen und Änderungen vorzunehmen“:

„Damit Freiheit 1 und 3 (die Freiheiten, Änderungen vorzunehmen und geänderte Versionen zu veröffentlichen) sinnvoll sind, müssen Nutzer Zugang zum Quellcode des Programms haben. Daher ist die Zugänglichkeit des Quellcodes eine notwendige Bedingung für Freie Software. Verschleierter ‚Quellcode‘ ist nicht wirklich Quellcode und zählt nicht als solcher.“.

Dies bedeutet aber insbesondere, dass die Verfügbarkeit des Quellcodes (lediglich) ein Mittel zum Zweck ist, um sicherzustellen, dass Freiheiten 1 und 3 vom Nutzer tatsächlich wahrgenommen können. Mit anderen Worten: Der Zugang zum Quellcode stellt in der Freie-Software-Definition der FSF keinen Selbstzweck dar.

But this in particular means that the availability of the source code is (only) a means to an end to ensure that freedoms 1 and 3 can really be assumed by the user. In other word: access to the source code constitutes no end in itself in the free software definition of the FSF.

Eine mindestens ebenso wichtige Bedingung, damit Freiheiten 1 und 3 wahrgenommen werden können, ist aber, dass die Architektur der Software derart einfach ist (beispielsweise im Sinne von Quellcode-Umfang oder inhärenter Komplexität), dass man als Mensch überhaupt in der Lage ist, sie wirklich komplett zu verstehen (denn sonst kann man diese Freiheiten trivialerweise ebenfalls nicht wahrnehmen). Diese Bedingung wird durch äußerst viele Projekte, die zur Freien Software gezählt werden (inklusive sogar des von der FSF selbst geförderten GNU-Projekts, welches zusammen mit dem Linux-Kernel das freie Betriebssystem GNU/Linux bildet) verletzt!

A condition that is at least equally important such that freedoms 1 and 3 can be assumed, is that the architecture of the software is so simple (for example in the sense of source code extent or inherent complexity) that, as a human, one has after all the ability to understand it entirely (since otherwise one can trivially likewise not assume these freedoms). This freedom is violated by many projects that are classed among free software (including even the FSF-promoted GNU project that together with the Linux kernel constitutes the free operating system GNU/Linux)!

Schlimmer noch: Innerhalb der Freie-Software-Bewegung existiert nach meiner Beobachtung nicht einmal ein Bewusstsein dafür, dass ein derart umfangreiches Quellcode-Volumen und eine solch inhärente Softwarekomplexität die Wahrnehmung der Freiheiten 1 und 3 quasi unmöglich machen.

Even worse: Inside the free software movement, in my observation, there does not even exist an awareness of the fact that such an extensive source code volume and such an inherent software complexity makes assuming freedoms 1 and 3 virtually impossible.

Man kann nun die berechtigte Frage stellen, wie viel Komplexität in der Verständlichkeit und Einfachheit „noch akzeptabel“ ist, dass ein Stück Software die Definition der FSF für freie Software bzw. die vier Freiheiten erfüllt. Ich gestehe ein, dass es hierauf wohl keine „objektiv wahre“ Antwort gibt. Daher kann ich nur mitteilen, was meine persönliche Sicht zu diesem Thema ist: Ich denke, dass es möglich sein sollte (und dies sollten sich Fans freier Software zum Ziel setzen), dass ein intelligenter Mensch, der sich ein paar Jahre lang in Vollzeit damit beschäftigt, in der Lage sein sollte/muss, wirklich jede einzelne Codezeile bzw. jedes einzelne Byte, die/das auf einem Computer ausgeführt wird, komplett zu verstehen.

Now one can ask the legitimate question how much complexity in the understandability and simplicity is “still acceptable” such that a piece of software satisfies the definition of the FSF or the four freedoms, respectively. I admit that hereunto there arguably exists no “objectively true” answer. That is why I can only communicate what my personal point of view on this topic is: I believe that it should be possible (and this is what fans of free software should target) that an intelligent human who devotes himself full-time therewith should/must have the ability to really understand every single line of code or every single byte, respectively, that is executed on the computer, completely.

Um dem Leser eine zusammenfassende Take-Home-Message des Artikels zu geben:

To give a summarizing take home message of the article to the reader:

Freie Software bedeutet mehr als nur Verfügbarkeit des Quellcodes. Von mindestens ebenso großer Wichtigkeit zur Sicherstellung von Freiheiten 1 und 3 ist, dass es für einen intelligenten Menschen möglich sein muss, den Quellcode der (freien) Software in seiner Gesamtheit zu verstehen (Freiheit 1), sodass das Verständnis hoch genug ist, dass es für ihn tatsächlich möglich ist, auch Verbesserungen vorzunehmen (Freiheit 3).

Free software means more than availability of the source code. Of at least equal importance for ensuring freedoms 1 and 3 is that for an intelligent human, it has to be possible to understand the source code of the (free) software in its entirety (freedom 1) such the the understanding is high enough that it is actually possible for him to perform changes (freedom 3).