mk » Bundestag Anhoerung2013 Softwarepatente Notizen

Einleitung

Danke für die Einladung. Ich werde in meinem Vortrag darlegen wo Freie Software verwendet wird, wie sie entsteht und welche Rolle dabei Softwarepatente spielen.

Wo wird Freie Software verwendet?

Freie Software ist heute weit verbreitet. Oft sehen wir nur den Laptop- oder Desktop-Computer, aber ein großer Teil der Computer die für uns oft verborgen sind laufen mit Freier Software: Freie Software ist im Mobiltelefon (z.B. Android), auf Wlan-Router, im Fernsehapperat, Netzwerkfestplatte, im Auto, im Kühlschrank, Digitalkameras, im Flugzeug, in der Kaffeemaschine, Anlagensteuerung, Industrie-Robotern, Forschung im CERN, in Raketen, in der ISS und 93% der TOP 500 Supercomputer laufen mit Freier Software. Teilweise die gleichen Programme, z.B. Linux als Betriebssystemkern in all den genannten Beispielen.

Stellen Sie sich vor was das für die Wirtschaft bedeuten würde, wenn ich heute auch nur einige Freie Software, z.B. einfach nur den Linuxkernel, abschalten könnte.

Wie entsteht Freie Software?

Wie entsteht diese Freie Software die in so vielen Produkten verwendet wird?

Das Werkzeug zum Programmieren hat jeder von uns. Ich muss keine teuren Geräte kaufen. Ein Laptop- oder Desktop-Computer und Entwicklerprogramm, die z.B. bei einem GNU/Linux-Betriebssystem alle enthalten sind.

Dann fängt es an, dass ich -- am besten jung -- viel Quellcode von Computer-Programmen lese. Ich fange an mit einfachen, ändere diese, schaue was passiert (z.B. eine App für das Telefon). Lese wieder neuen Quellcode, ändere ihn, experimentiere. Es ist wie wenn ich ein Buch schreiben will, ich muss viel viel lesen und viel viel selbst schreiben. Am Anfang werde ich komplexe Programme noch nicht verstehen, ich werde manche Programmierer bewundern, wie gut diese ein Problem gelöst haben und ich werde mich über manche Programme ärgern, weil sie meiner Ansicht nach schlecht geschrieben sind, evtl. werde ich versuchen es besser zu machen und werde feststellen wie schwer es ist, das Problem besser zu lösen.

Ich werde merken, dass andere Programmierer unbeeindruckt sind, wenn ich ihnen von einer tollen neuen Idee vorschwärme und wie toll das Programm sein wird und sie sagen "Talk is cheap. Show me the code"!

Ich werde feststellen, dass es schwierig ist ein Programm so schreiben, dass keine Fehler auftreten. Das mir andere Fehler berichten, obwohl das Programm bei mir ohne Probleme funktioniert. Dass es lange dauern kann um die Ursache eines Fehler zu finden und sie zu beheben. Dass ich, wenn ich ein Fehler behebe, evtl. zwei neue Fehler verursache, an die ich nicht gedacht habe.

Ich werde merken, das es lohnt Tests zu schreiben, die die Funktionalität automatisch überprüft, so das sich der gleiche Fehler nicht wieder einschleicht und damit neue Fehler vermieden werden.

Wenn ich meinen Quellcode veröffentliche werde ich Verbesserungen und Fehlerkorrekturen für mein Programm von anderen Freie Software Entwicklern bekommen. Manche sind gut, andere sind weniger gut und vielleicht von Anfängern wie ich es einer war. Ich werde mit Ihnen diskutieren und dabei werde auch ich viel dazu lernen, weil es wichtig ist Ideen mit anderen zu reflektieren.

Ich werde lernen, dass es lange dauert, bis ein Programm so stabil ist, dass in einem Produkt verwendet werden kann. Aber durch viele Rückmeldungen und Diskussionen mit anderen Entwicklern werde ich eine hohe Qualität erreichen.

Umso komplexer die Aufgaben werden umso mehr Programme werden ich miteinander kombinieren. Wenn ich zum Beispiel eine Rakete bauen will, werden ich nicht anfangen ein eigenes Betriebssystem zu schreiben. Ich werde mir einen Linux kernel suchen, der meinen Anforderungen entspricht. Ich werden wenn möglich bereits bestehende Treiber benutzen um Hardware zu verwenden. Ich werden bestehende Software-Bibliotheken für Grafiken, Statistiken und anderes verwenden. Ich werde keinen eigenen Kompiler, Editoren, Debugger, etc. schreiben um Software für die Rakete zu entwickeln, sondern bestehende Freie Software verwenden. Dabei kommen schnell ein paar hundert Softwarepakete zusammen von denen ich abhängig bin (Ich hatte am Freitag über 2600 Freie-Software-Pakete auf meinem Laptop vorhanden.)

Mit Hilfe von diesem Freien-Software-Baukasten kann ich schon als kleines Unternehmen hochkomplexe-Aufgaben lösen, indem ich bestehende Lösungen miteinander kombinieren und mich "nur" um den kleinen Teil kümmern, der noch nicht gelöst ist. Der kleine Teil ist schwer genug.

Welche Rolle spielen Softwarepatente dabei?

Welche Rolle spielen jetzt Softwarepatente in der Entwicklung dieser Software ohne die unsere wirtschaft heute nicht mehr funktionieren wird?

Kann ich lernen wenn ich Software-Patentschriften lese? Nein, diese Patentschriften beschreiben Probleme, statt zu zeigen, wie man sie löst. Für die Problemlösung bin ich auf den Quellcode angewiesen. Der ist in Patentschriften allerdings nicht enthalten.

Kann ich die Kollission mit Software-Patente vermeiden? Nein, es gibt so viele (2006 ca. 40.000 SW Patente) die mich betreffen könnten. Schwerer, weil Software in so vielen unterschiedlichen Bereichen eingesetzt wird und die Ansprüche der Patentinhaber meist sehr breit sind. Ich kann evtl. um eines herumprogrammieren, dann kommt das nächste und das nächste und das nächste. Die schlimmste Situation ist, wenn mein Produkt auf dem Markt ist und ein Dritter behauptet, er hätte etwas patentiert, was meine Software betrifft. Konkurrenten behaupten z.B., dass der Betriebssystemkern Linux 283 US-Patente verletzt (nur Teil des Betriebssystems von dem so große Teile der Wirtschaft abhängen).

Kann ich ein Software-Patent vernichten? Ja. Aber es kostet viel Geld, benötigt Zeit und wenn eines weg ist, dann bemerke ich das nächste. Das ist Zeit, die ich nicht mit der Entwicklung von Software verbringe und das ist gerade für kleine Unternehmen ohne eigene Rechtsabteilung sehr schwierig.

Was kann ich als Freie-Software-Programmierer angesichts dieser Situation machen? Ich kann mich nur entscheiden: Softwarepatente ignorieren. Also programmieren und hoffen, dass nichts passiert -- wie Augen zu und ab über das Minenfeld. Debian -- eine große Freie-Software-Distribution -- z.B. bittet alle darum keine Nachrichten zu möglichen Patentverletzungen auf Mailinglisten oder sonstwie öffentlich anzusprechen. Manche Unternehmen verbieten ihren Entwicklern Patente zu lesen. Und wenn ich als Programmierer mit dem Gefühl nicht leben kann, wahrscheinlich laufend Rechtsverstöße zu begehen, dann bleibt mir nur, dass ich mit dem Programmieren aufhöre und - wenn ich es genau nehme - auch aufhöre Software zu verwenden.

Zum Schluss noch ein Zitat von Bill Gates aus dem Jahr 1991:

  • "Wenn die Menschen verstanden hätten, wie Patente gewährt werden, als die meisten heutigen Ideen enstanden sind, und dafür Patente erhalten hätten, würde die Industrie heute komplett still stehen." William H. Gates, Internal Microsoft Memo (1991) [Fred Warshofsky, The Patent Wars (1994)]