Reflektionen zu Open Source Software

Ich benutze seit vielen Jahren, nicht nur mit Linux, Open Source Software. Ich habe auch schon selbst eigene Programme als Open Source Software veröffentlicht. So richtig Gedanken zu dem Thema habe ich mir aber erst nach der Lektüre mehrerer Artikel zur "Sabotage" von npm-Paketen durch deren Entwickler (Artikel auf Heise.de und Artikel auf golem.de) gemacht. Auch auf GNU/Linux.ch finden sich immer wieder interessante Artikel zum Thema.

Unterschiede bei freier Software

Aus meiner Sicht sollte man man drei Arten vom "freier" Software unterscheiden.

Freeware

Freeware gab es schon zu AMIGA-Zeiten in den 1980er Jahren. Das waren Programme und Progrämmchen, die man (damals über Disketten oder Mailboxen [Bulletin Boards - hat nichts mit E-Mail zu tun]) bekommen konnte, ohne dafür etwas bezahlen zu müssen. Ob man die Quellen dazu bekam, lag im Ermessen des Entwicklers.

Shareware

Shareware ist der Freeware ähnlich. Mit der Ausnahme, daß der Entwickler ausdrücklich darauf hinweist, daß sein Programm zwar kostenfrei verbreitet werden darf und soll, die Benutzung aber (eigentlich) einen Obolus an den Entwickler voraussetzt.

Open Source Software (OSS)

Open Source Software ist Software, deren Quellen frei zugänglich sind. Diese Quellen unterliegen aber, je nach Geschmack des Entwicklers, den unterschiedlichsten Verwendungslizenzen (MIT, BSD, GPL, ...). Das fertige Programm kann durchaus Geld kosten. Wer es sich selbst aus den Quellen erzeugt, muss sich nur an die entsprechende Lizenz halten, bekommt das fertige Programm aber ohne weitere Bezahlung.

Erfahrungen als Nutzer

Hier muss ich zuerst unumwunden zugeben, daß ich mir beim Einsatz aller drei oben genannten Typen von Software nie Gedanken um die Wünsche oder Bedürfnisse der Entwickler gemacht habe.

Freeware und Shareware habe ich einfach benutzt. Geknackte Programme habe ich eher nur ausprobiert und mir bei Gefallen dann gekauft. Faszinierend fand ich die Geschichte eines großen Compilerherstellers in den späten 1980ern, frühen 1990ern (keine Ahnung, ob sie wahr ist!). Da hieß es (sinngemäß) :
"Wir verfolgen die Verwendung von Raubkopien im Privat-Bereich nicht. Wer unsere Compiler z.B. als Schüler oder Student privat benutzt, lernt sie schätzen und wird ihre Verwendung auch im Beruf bevorzugen. Und daran verdienen wir dann richtig Geld."

Das könnte man als Vorläufer der heutigen Doppelizensierung sehen :
Für private und Open Source Projekte ist der Einsatz einer Software frei, im gewerblichen Umfeld dagegen nicht. Dafür gibt es dort aber auch professionelle Unterstützung (neudeutsch : Support).

Linux mit allem Drum und Dran ist natürlich das Paradebeispiel für ein Open Source Software System, zeigt aber auch gut die Schwierigkeiten auf.

Erfahrungen im Berufsalltag

Mein Beruf als studierter Informatiker mit Vertiefungsrichtung "technische Informatik" lies mich von Anfang an, auch aus eigenem Interesse, in die hardwarenahe Programmierung abrutschen.
Windows war da lange Zeit nur "Mittel zum Zweck", sozusagen als Werkzeugkiste. Das Ziel der Arbeit war fast ausschließlich neu entwickelte Hardware. Open Source spielte da weder in der Toolchain noch auf der Zielhardware eine Rolle (vielleicht mal von Freeware wie FreeDOS abgesehen).

Linux kam erst in den letzten 20 Jahren vermehrt zum Zuge, zunächst als Test-OS während der Treiber- und Firmwareentwicklung auf der x86-Basis. Als aus kleinen, spezialisierten Embedded Systemen zunehmend "richtige" Rechner wurden, verlangten die Kunden immer öfter Linux als OS, um Lizenzkosten zu sparen oder einfach weil die Hardware auf ARM-CPUs basierte.

Daß sowohl Treiberentwicklung als auch das Erstellen eines hardwarespezifischen Abbilds viel Arbeitsaufwand bedeuten, ist eine Sache. Die Community-Arbeit zu verwenden, ohne die eigenen Entwicklungen wieder zurückfließen zu lassen, ist eine andere. Hier entsteht das Dilemma mit den proprietäten Treibern im Kernel. Einerseits muss für die professionelle Entwicklung irgendwer bezahlen, denn dabei geht es ums Geldverdienen. Andererseits lebt der Linuxkernel von der Community-Arbeit. Und inwieweit da auch noch lizenzrechtliche Belange dazukommen, war zum Glück nie Teil meiner Arbeit.

Private Projekte

Meine beiden wichtigsten privaten Projekte gründeten auf der Tatsache, daß es für von mir eingesetzte Hardware keine Linuxprogramme gab. Ein wenig Stöbern im Internet führte in beiden Fällen zu GitHub, einmal mit gutem Erfolg, aber für mich unbefriedigender Ausführung, das andere Mal zu mehr oder weniger Proof-Of-Concept ohne weitergehende Folgen.

Beide Projekte habe ich durchgearbeitet, getestet, und am Ende als nicht meinen (durch die Arbeit als Profi) hohen Ansprüchen genügend, verworfen. Die gewonnenen Erkenntnisse dienten mir dann als Grundlage für meine eigenen Implementierungen.

Und jetzt kommt Open Source!

Eigentlich hatte ich nie an eine Veröffentlichung als Open Source Software gedacht, habe sie dann schließlich doch auf GitHub eingestellt.
Beide Projekte waren aber auch weiterhin eigentlich nur für meinen privaten Einsatz gedacht und entsprechend nicht unbedingt fehlerfrei. Mir war die Verfügbarkeit für meinen Einsatzzweck wichtiger als viel Aufwand für allgemeinen Einsatz für letztendlich "Unbedarfte" zu treiben. In zehn Jahren gab es einige Downloads, aber nur rund ein halbes Duzend Rückmeldungen. Und nur eine davon brachte eine wirklich erquickliche Zusammenarbeit, wenn auch letztlich aufgrund des Aufwands zur Datenerfassung das Problem nicht gelöst wurde.

Als dann GitHub von M$ aufgekauft wurde, löschte ich, wie viele andere auch, meinen Account. Die Software bot ich über meine eigenen Webseiten weiter als Open Source Software an, mit seitdem genau einer Reaktion (und die war ein Fake).

Also bin ich schweren Herzens doch wieder zu GitHub zurückgekehrt, war mit dieser Lösung aber mehr und mehr unzufrieden. Nachdem ich mir meinen eigenen Git-Server aufgesetzt hatte, wurde der GitHub-Account zunehmend vernachlässigt.

Aus persönlichen Gründen musste ich eines meiner wichtigen Projekte aus dem Dauereinsatz nehmen, es läuft anderenorts (unter meiner Betreuung) weiter, erfordert aber keine Entwicklung mehr. Daher, und weil die Hardware mittlerweile hoffnungslos veraltet und nicht mehr zu bekommen ist, gibt es von meiner Seite Unterstützung nur noch auf Anfrage.

Kein Open Source mehr

Dem anderen Projekt konnte ich aus denselben Gründen plötzlich viel Zeit widmen. Und mit "viel Zeit" meine ich hier wirklich viel Zeit. Die Software war irgendwann soweit, sie anderen Leuten zum Ausprobieren zu geben, die Reaktion war letztendlich gleich NULL.

Als ich dann die oben erwähnten Artikel gelesen hatte, war eigentlich schon klar, daß ich das Programm nur noch für mich selbst weiterentwickeln würde. Die dazugehörige Webseite ist seitdem leer. Den noch anstehenden Aufwand treibe ich nur noch für mich selbst. Evtl. gibt es das Programm irgendwann einmal als Shareware, aber wohl nicht mehr als Open Source Software.

Zu diesen ganzen Überlegungen kommen auch noch die rechtlichen Aspekte. Ein Programm wie meines ist unter den meisten Betriebssystemen bereits mehrfach verfügbar. Entweder direkt kostenpflichtig oder es muss mit den persönlichen, sensiblen Gesundheitsdaten beim Hersteller (meistens in seiner Cloud) bezahlt werden. Daß mein Programm von der Funktion und Optik von dieser "professionellen" Software beeinflusst scheint, liegt in der Natur der Sache, also am Zweck des Programms. Und obwohl ich das Programm komplett auf eigenen Überlegungen und mit meinem ganz eigenen Programmierstil geschrieben habe, ist bei weiterer Verbreitung mit Ärger seitens der Rechteinhaber der anderen Programme zu rechnen. Selbst wenn keines dieser Programme unter Linux zur Verfügung steht. Dagegen helfen auch keine der Open Source Lizenzen. Und ich bin weder finanziell noch psychisch in der Lage, mich mit irgendwelchen (unbegründeten) Abmahnungen auseinanderzusetzen.

Weitere Aspekte

Geringschätzung der Arbeit Einzelner

Ein weiterer Punkt, abgesehen von der finanziellen Seite, ist die immer öfter auftretende Geringschätzung der investierten Arbeit.

"Ich habe dieses Programm seit vielen Jahren gerne und regelmäßig benutzt. Aber seit fünf Jahren wird es nicht mehr weiterentwickelt/gepflegt. Deswegen habe ich mich jetzt nach einer Alternative umgesehen und xyz gefunden."

Diese Argumentation liest man im Netz und in Zeitschriften immer öfter. Meistens geht es hier um kleine Helferlein, praktisch, und einfach in der Anwendung.
Wenn aber jemandem ein Programm offensichtlich so nützlich war, dürfte es doch alle Wünsche erfüllt haben. Warum sollte dann der Entwickler noch Arbeit und Zeit investieren?

Featuritis

Stellt jemand sein mit viel Herzblut für einen bestimmten Zweck entwickeltes Programm der Öffentlichkeit zur Verfügung, kommt garantiert bald irgendein "Spezialist", dem die Möglichkeiten nicht reichen. Statt sich dann selbst hinzusetzen und die persönlichen Wünsche zu implementieren, wird in aller Öffentlichkeit über die angebliche Unzulänglichkeit lamentiert. Und obwohl dem Gros der Anwender der Umfang völlig ausreicht, verschwindet das Programm wieder in der Versenkung.
Vielleicht hätte der Entwickler die Wünsche aufgenommen, aber "der Ton macht die Musik", und der ist heutzutage leider viel zu oft geringschätzig.

GitHub

Weil ich eine Sicherung meiner Quelltexte außerhalb meines Wohnbereiches, unter Verwendung von Git, haben wollte, landete ich bei GitHub. Kostenlos ging das aber nur als öffentliches Repository. So wurden meine Programme dann "Open Source".

Vor ein paar Jahren wurde dann GitHub von M$ aufgekauft. Die Einstellung von M$ zu Open Source Software im Allgemeinen und Linux im Besonderen ist ja hinlänglich bekannt. Also löschte ich, wie viele andere auch, meinen Account.

Ein weiterer Versuch mit GitHub war nur meiner Faulheit, mich mit einem anderen Anbieter zu beschäftigen, geschuldet. Genutzt habe ich ihn nie.

Als ich von dem Benehmen von GitHub gegenüber den russischen Privat-Entwicklern (alle Accounts wurden ohne vorherige Ankündigung gelöscht) las, löschte ich auch sehr schnell meinen GitHub-Account wieder. Ohne ihm eine Träne nachzuweinen.

Der Aufruf der software freedom conservancy seine Projekte von GitHub abzuziehen, haben meine persönlichen Animositäten gegenüber GitHub und M$ auf eine recht spektakuläre Art bestätigt.

Hörnum, den 4.7.2022

© Uwe Jantzen 29.07.23