Nun gut, offenbar habe ich es in der Vergangenheit versäumt, hinsichtlich der Grundsätze des Projekts für hinreichende Klarheit zu sorgen. Dass leider keine oder kaum frei lizenzierte Bibelsoftware-Projekte gestartet werden, liegt hauptsächlich am mangelnden Problembewusstsein bei Programmierern in solcherlei Fragestellungen generell. Gerade für Software über alle anderen digitalen Werke hinaus ist es außerordentlich wichtig, dass sie frei ist, sowohl technisch als auch rechtlich.
Technisch gesehen hat Software die unangenehme Eigenschaft, dass sie in einem Prozessor zur Ausführung gebracht werden muss. Der Prozessor nimmt freilich nur Maschinencode, also binärcodierte Anweisungen, entgegen. Software wird aber längst nicht mehr direkt in Maschinencode geschrieben, sondern in Programmiersprachen. Mit Programmiersprachen ist es möglich, höchst komplexe Software-Systeme zu konstruieren, welche dann durch den Compiler in ausführbaren Maschinencode übersetzt werden (Ausnahme: Interpreter-Sprachen). Bei diesem Vorgang gehen jedoch alle höheren logischen Zusammenhänge zwischen einzelnen Anweisungen verloren, der Maschinencode ist im Prinzip für den Menschen größtenteils unleserlich (d.h. auf den ursprünglichen Quellcode kann selten zuverlässig rückgeschlossen werden, immerhin können mühevoll einzelne Abläufe halbwegs nachvollzogen werden). Außerdem ist Maschinencode spezifisch für einen bestimmten Prozessortyp, sodass Kenntnisse über den jeweiligen Befehlssatz Voraussetzung ist. Aus diesen beiden Gründen wird Software nie in Form des generierten Binärcodes modifiziert, sondern stets in Form des Quellcodes, welcher nach Änderung zum unleserlichen, jedoch ausführbaren Programm übersetzt wird.
Dieser Zusammenhang hat weitreichende Folgen: ein Programmierer ist dadurch in der Lage, eine Anwendung in einer Programmiersprache zu programmieren, in welcher für ihn Anpassungen mühelos vorgenommen werden können, während er einem Nutzer nichts weiter als ausschließlich den vorkompilierten Maschinencode zur Verfügung stellen kann. Da für den Nutzer weder feststellbar ist, was der Maschinencode konkret macht, noch dieser jenen effektiv verändern kann, übt der Programmierer die volle Kontrolle über den Ablauf des Programms aus und hat von vornherein festgelegt, was möglich ist und was nicht. Der Nutzer kann im Grunde nichts weiter tun, als zu hoffen, dass eine Anwendung mit unbekanntem Ablauf bei Ausführung zum gewünschten Ergebnis führt.
Somit ist der Nutzer ständig dem Risiko der absichtlichen Ausnutzung dieser Machtposition seitens des Programmierers ausgesetzt: der Nutzer kann ausgespäht, an der Nutzung von Programmen oder digitaler Inhalte gehindert, über verfälschte Datenbestände getäuscht oder gar der Kontrolle über die eigene Hardware beraubt werden. Aber selbst, wenn ein Software-Entwickler keine bösen Absichten verfolgt, ist seine nicht quelloffene Software keineswegs vertrauenswürdiger, denn auch Programmierer sind Menschen, und Menschen machen Fehler. Diese Fehler können zu versehentlichem Datenverlust führen, aber ebenso auch gezielt genutzt werden, um in das Computersystem des Nutzers einzudringen (sei es durch einen menschlichen oder einen programmierten Eindringling).
Fortsetzung folgt...