StartseiteArtikel

Eine Bibliothek mit 130 Millionen Monatsdownloads wurde von KI neu geschrieben und die Lizenz geändert. Nachdem der Open-Source-Maintainer Opfer von "Cybermobbing" wurde, sprach er sich aus: "Ich finde, die Reaktionen der Leute sind etwas übertrieben. Ich konnte damals den ursprünglichen Autor nicht erreichen. Die neue Version wurde neu geschrieben."

CSDN2026-03-27 19:39
Wie viel Zeit und Mühe muss eine Person in ein Werk investieren, um es berechtigterweise als ihren "Autor" zu bezeichnen?

Kürzlich haben wir berichtet, dass das klassische Python-Codetools zur Kodierungserkennung, chardet, das monatlich über 130 Millionen Mal heruntergeladen wird und von unzähligen Software direkt eingebettet wird, mitten in einem öffentlichen Meinungskreislauf steckt.

Der Grund dafür ist, dass der ursprüngliche Autor des Projekts, Mark Pilgrim, nach fünf Jahren der Entwicklung das Internet verließ und ein "eingezogenes Leben" führte. Die anschließende Wartung und Weiterentwicklung des Projekts fielen fast vollständig auf den Open-Source-Wartungsbetreuer Dan Blanchard, der das Projekt seit über zehn Jahren alleine aufrechterhält.

Kürzlich hat Dan Blanchard mit Hilfe von Claude Code das gesamte Repository in nur fünf Tagen von Grund auf neu geschrieben und es unter einer neuen Open-Source-Lizenz veröffentlicht.

Das Dramatische daran ist, dass der seit 15 Jahren verschollene ursprüngliche Autor Mark Pilgrim plötzlich auftauchte und einen Kommentar hinterließ, in dem er die Vorgehensweise von Dan, die "Lizenz zu ändern", in Frage stellte und ihn aufforderte, die Änderung einzustellen.

Diese Aktion hat die Community sofort in Aufruhr versetzt, und die Kontroverse hat sich schnell ausgebreitet.

Einige Leute meinen: "Als Open-Source-Wartungsbetreuer können Sie das Projekt neu schreiben und eine neue Lizenzvereinbarung anwenden, aber Sie dürfen nicht einfach die bestehende Open-Source-Lizenz des Projekts überschreiben. Wenn Sie ein neues Projekt starten möchten, sollten Sie es unter einem neuen Namen veröffentlichen."

Andere stehen auf der Seite des Wartungsbetreuers und meinen: "Der jahrelange Einsatz und die aktuelle Neuerschreibung dienen nur dazu, das Projekt besser zu machen."

Zugleich wurden auch tiefere Fragen aufgeworfen: Ist die AI-unterstützte Neuerschreibung gerechtfertigt? Gilt die sogenannte "Clean-Room"-Methode? Wohin wird die Zukunft der Softwarelizenzen gehen?

Der amerikanische bekannte Programmierer Bruce Perens, der die "Open-Source-Definition" formuliert hat, hat dieses Ereignis sogar mit der Erfindung der Druckpresse und der wissenschaftlichen Methode verglichen. In einem Interview mit der britischen Zeitschrift The Register sagte er direkt: "Das gesamte Wirtschaftsmodel der Softwareentwicklung ist völlig zusammengebrochen."

In der Mitte der Kontroverse hat Dan Blanchard, der langjährige Wartungsbetreuer, sich auch zu Wort gemeldet und eine tiefe Unterhaltung mit Sachin Kamdar, dem CEO der amerikanischen Unternehmens-Proxy-Plattform Elvex, und Doyle Irvin, dem Marketingleiter, geführt, um die verschiedenen Fragen der Öffentlichkeit zu beantworten.

In seiner Ansicht ist diese Neuerschreibung strukturell völlig unabhängig (gemäß der Bewertung eines Drittanbieter-Open-Source-Software-Code-Analysetools namens JPlag beträgt die Ähnlichkeit weniger als 1,3%, während die Ähnlichkeit der früheren manuell gewarteten Version bis zu 80% betrug). Gleichzeitig hat er sich auch an einen Rechtsberater gewandt und den gesamten Prozess transparent gehalten. Wichtig ist auch, dass diese Neuerschreibung tatsächlich eine bessere Version für die Benutzer gebracht hat.

Dan gestand, dass er in den letzten Jahren nichts an der Wartung von chardet verdient hat und auch in Zukunft keine kommerziellen Absichten hat. Die neue Version verwendet eine offenerere Lizenz mit weniger Einschränkungen, und die Leistung hat sich um das 48-fache verbessert. Angesichts der Tatsache, dass diese Software auf einer riesigen Anzahl von Geräten läuft, hat jemand sogar gescherzt, dass dies vielleicht die "erste kohlenstoffneutrale oder sogar kohlenstoffnegative Anwendung der KI" sei, da der Gesamt-CPU-Verbrauch tatsächlich gesunken ist.

Was ist tatsächlich passiert?

Im Folgenden finden Sie den vollständigen Dialog von Dan:

Was ist chardet, das monatlich 130 Millionen Mal heruntergeladen wird und 2.500 Sterne auf GitHub hat?

Sachin Kamdar: Ich bin heute sehr froh, Dan Blanchard in das Programm einzuladen.

Ich kenne Dan schon seit langem, ungefähr vor 10 Jahren haben wir zusammen in einer Ölgesellschaft namens Parsley gearbeitet. Dan war damals einer der besten Ingenieure und hat an vielen verschiedenen Projekten gearbeitet. Später wechselte er zu einigen anderen Unternehmen und arbeitet jetzt als Ingenieur bei der amerikanischen FinTech-Firma Monarch Money.

Heute haben wir ihn aber hierher geholt, weil etwas, das er in den letzten ungefähr 10 Tagen getan hat, im Internet viral wurde. Dan, möchten Sie sich bitte kurz vorstellen? Erzählen Sie etwas über Ihren Hintergrund, was Sie normalerweise interessiert, und was chardet eigentlich ist?

Dan Blanchard: Wie Sie gerade sagten, haben wir früher in Parsley zusammengearbeitet und ich habe dort ungefähr sechs Jahre gearbeitet, also haben wir eine lange Zeit zusammengearbeitet.

Tatsächlich habe ich schon während meiner Zeit in Parsley das Open-Source-Python-Repository zur Zeichenkodierungserkennung, chardet, gewartet.

Ich habe dieses Repository insgesamt ungefähr 12 Jahre gewartet. Ich habe es erstmals um 2012 oder 2013 kennengelernt und es offiziell um 2014 übernommen. Genau weiß ich es nicht mehr, aber es war ungefähr 12 Jahre her.

Sachin Kamdar: Was macht chardet eigentlich? "Zeichenkodierungserkennung" klingt etwas abstrakt. Können Sie zunächst diesen Begriff erklären und dann sagen, warum Sie sich damals entschieden haben, es zu warten?

Dan Blanchard: Das ist eigentlich ziemlich interessant. Als ich angefangen habe, an diesem Projekt zu arbeiten, arbeitete ich bei einem Bildungs- und Prüfungsdienst namens ETS und war für die Software zur automatischen Aufsatzbewertung verantwortlich, was eine frühe KI-Anwendung war, bevor KI populär wurde.

Die "Zeichenkodierungserkennung" lässt sich so verstehen: Alle Textdateien auf Ihrem Computer oder im Internet bestehen im Grunde aus einer Reihe von Zahlen. Die oft erwähnten 0 und 1 können Sie auch als eine Reihe von Zahlen verstehen.

Die "Zeichenkodierung" ist eine Art Abbildungsregel, ähnlich wie das Caesar-Code: Eine bestimmte Zahl entspricht einem bestimmten Buchstaben, eine andere Zahl kann einem Symbol oder jedem Zeichen auf Ihrer Tastatur entsprechen.

Die älteste und klassischste Zeichenkodierung ist die ASCII-Kodierung, die nur 127 Zeichen unterstützt. Lange Zeit, insbesondere in englischsprachigen Umgebungen wie in den USA, dachte man: 127 Zeichen reichen völlig aus, das ist doch alles, was man auf der Tastatur hat.

Aber in dieser Situation wurden andere Sprachen wie Chinesisch und Hebräisch "ignoriert".

Deshalb entwickelten sich in den 70er und 80er Jahren verschiedene Zeichenkodierungen. Später gab es auch einige Kodierungen aus der DOS-Zeit, die heute zwar nicht mehr mainstream sind, aber manchmal noch zu sehen sind. Noch früher gab es sogar Kodierungssysteme aus der Mainframe-Zeit, die aber heute fast nicht mehr verwendet werden.

Das Kernproblem der "Zeichenkodierungserkennung" ist: Gegeben eine Datei, müssen Sie entscheiden, ob es sich um Englisch, Japanisch, Chinesisch oder eine andere Sprache handelt. Das System versucht, die Kodierungsmethode und die Sprache mithilfe statistischer Methoden und Regeln zu ermitteln. Wenn die Sprache erkannt ist, kann der Bereich der möglichen Kodierungen stark eingeschränkt werden, da viele Kodierungen an bestimmte Sprachen gebunden sind. Nehmen wir ein einfaches Beispiel: Wenn Sie in einem Text häufig die Zahlenkombinationen sehen, die "T", "H" und "E" entsprechen, ist es sehr wahrscheinlich, dass es sich um Englisch handelt. Solche Muster können helfen, die Kodierung zu bestimmen.

Im Grunde genommen macht chardet genau das - es hilft Ihnen, die Kodierung eines Textes zu bestimmen .

Seine Ursprünge lassen sich bis in die späten 90er Jahre zurückverfolgen, als es in der Netscape-Browserkomponente einen "Allgemeinen Zeichenkodierungserkennungsdetektor" gab. Später wurde Netscape zu Mozilla und dann zu Firefox. Auf dieser Grundlage wurde die erste Python-Version von chardet entwickelt.

Diese Python-Version wurde 2006 von Mark Pilgrim geschrieben, der die C-Implementierung direkt in Python übersetzte.

Sachin Kamdar: Wenn Sie es auf eine einfachere Weise erklären möchten, können Sie es sich als ein "Lego-Baustein" vorstellen: Wenn Sie Software entwickeln, können Sie es als Basisbaustein einbetten. Seine Aufgabe ist es, der Software zu helfen, bestimmte Inhalte zu bestimmen, z. B. in welcher Sprache ein Dokument geschrieben ist und welche Zeichenkodierung es verwendet.

Sie haben gerade erwähnt, dass es monatlich 130 Millionen Mal heruntergeladen wird. Das bedeutet also, dass es in verschiedene Software eingebettet wurde und überall verwendet wird?

Dan Blanchard: Ja, genau. Der Grund dafür, dass es so weit verbreitet ist, liegt hauptsächlich an einer Python-Bibliothek namens requests. Fast jeder, der Python programmiert, hat sie schon einmal verwendet.

requests wird für Netzwerkanfragen verwendet, z. B. zum Herunterladen von Webseiten oder zum Zugriff auf APIs. Es ist eine der am häufigsten verwendeten Netzwerkbibliotheken in Python. Und auf der untersten Ebene ist es von der Zeichenkodierungserkennung abhängig.

In der frühen Version verwendete es nur chardet. Später unterstützte die neue Version auch eine andere Bibliothek namens CharSet Normalizer, und die Benutzer konnten zwischen beiden wählen.

Da requests von fast allen Python-Programmen, die mit dem Netzwerk in Verbindung stehen, verwendet wird, wird chardet auch weit verbreitet.

Der ursprüngliche Autor verschwand fast vom "Internet", und Dan übernahm die Rolle des Kernwartungsbetreuers

Sachin Kamdar: Dieses Repository ist also sehr nützlich und weit verbreitet. Wie sind Sie zum Wartungsbetreuer geworden?

Dan Blanchard: Ich arbeitete damals bei ETS, und wir waren eine der ersten Teams, die Python 3 einsetzten.

Vor etwa 15 bis 20 Jahren gab es in der Python-Community eine große Kontroverse - die Sprache selbst hat sich stark verändert, was bedeutet, dass der Code, der in Python 2 funktioniert hat, in Python 3 fast vollständig neu geschrieben werden musste.

Das Projekt chardet wurde 2006 von Mark Pilgrim geschrieben, und er hat es um 2009 oder 2010 aufgehört zu warten (genau weiß ich es nicht mehr). Er verschwand fast vom "Internet" und löschte auch seine Code-Repositories, einschließlich chardet. Später haben andere Leute den Code wiederhergestellt, und dazu können wir später noch mehr sagen.

Damals gab es ein auf Python 2 basierendes chardet und eine Python 3-Branche namens charade, die von Ian Cordasco erstellt wurde. Er war auch einer der Wartungsbetreuer von chardet und gleichzeitig einer der Wartungsbetreuer der Bibliothek Requests. Requests versuchte damals, auf Python 3 umzusteigen, und sie sagten: "Wir brauchen eine Python 3-Version dieser Bibliothek", also hat er eine Kopie erstellt.

Ich bin in diesem Stadium beigetreten. Mein Ziel war einfach: Es wieder zu einem einheitlichen Code-Repository zu machen. Das heißt, es sollte nicht mehr eine Version für Python 2 und eine für Python 3 geben, sondern es sollte ein einziger Code sein, der beide Versionen unterstützt. Damals war es technisch noch ziemlich schwierig, etwas so zu machen, das sowohl Python 2 als auch Python 3 unterstützt, aber ich hatte schon einige Erfahrungen auf diesem Gebiet.

Also habe ich diese beiden Code-Repositories wieder zusammengeführt. Die zusammengeführte Version war ungefähr chardet 2.3. Ab dann haben wir Versionen veröffentlicht, die sowohl Python 2 als auch Python 3 unterstützen, und es dauerte lange, bis wir endgültig die Unterstützung für Python 2 aufgegeben haben.

Ehrlich gesagt war dieser Zeitpunkt viel später, als es eigentlich sein sollte, aber so war es damals.

"Ich wollte schon von Anfang an die Lizenz ändern, aber nicht um Geld zu verdienen"

Sachin Kamdar: Ungefähr 10 bis 15 Jahre lang haben Sie es gewartet. Mark Pilgrim hat seit langem nicht mehr online gewesen und hat auch keine Beiträge zum Projekt geleistet. Im Moment warten Sie es zusammen mit ein paar anderen Leuten.

Wann haben Sie angefangen, an eine neue Lizenz zu denken? Wann haben Sie angefangen, über die Dinge nachzudenken, die schließlich zu der Kontroverse führten?

Dan Blanchard: Ich habe über die Änderung der Lizenz schon lange nachgedacht . Tatsächlich wollte ich, seit ich chardet gewartet habe, nicht mehr, dass es die LGPL-Lizenz verwendet.

Hier eine kurze Erklärung:

LGPL ist die "Lesser GNU Public License" (schwächerere GNU-Public-Lizenz). GPL ist die "Greater GNU Public License" (stärkere GNU-Public-Lizenz, ohne das "L" am Anfang). LGPL wird normalerweise für Bibliotheken verwendet, da es weniger restriktiv ist als GPL. GPL hat strengere Einschränkungen, und einige seiner Bestimmungen sind für kommerzielle Zwecke nicht sehr freundlich. Wenn Sie es für ein kommerzielles Projekt verwenden möchten, müssen Sie Ihren Code Open-Source machen.

Die MIT-Lizenz ist noch offener - das bedeutet, dass Sie diesen Code so verwenden können, wie Sie möchten, und ich übernehme keine Verantwortung für Sie. Wenn Sie den Code ändern, sollten Sie es am besten zurückgeben, aber es gibt keine Zwangsanforderung. Insgesamt ist es eine sehr flexible Lizenz.

Sachin Kamdar: Also sind all diese drei Lizensen für Open-Source-Projekte, und sie haben unterschiedliche Grade von Verwendung und Einschränkung. Wenn ein Entwickler ein Projekt erstellt, kann er eine dieser Lizensen auswählen und auf sein Projekt anwenden. Sie sind mit der LGPL unzufrieden, weil sie einige Einschränkungen hat?

Dan Blanchard: Ja. Ich bin mit einigen Einschränkungen der LGPL unzufrieden, nicht weil ich Geld damit verdienen möchte. Tatsächlich ist es das Frustrierendste an dieser Kontroverse, dass einige Leute sagen: "Er will nur damit viel Geld verdienen." Ich habe überhaupt keine Absicht, Geld damit zu verdienen. Natürlich wäre es schön, wenn jemand mir bezahlen würde, um es zu unterstützen, aber ich werde nicht Millionen von Dollar damit verdienen.

Dies ist eine Zeichenkodierungserkennungsbibliothek, die schon 30 Jahre existiert. Die neue Version ist vollständig neu geschrieben, also ist es technisch gesehen etwas anderes. Deshalb beschuldigen einige Leute mich auch, etwas mit ihr gemacht zu haben.

Doyle Irvin: Wenn andere Leute es in kommerzieller Software verwenden möchten, würde die neue Lizenz die Dinge viel einfacher machen. Mit anderen Worten, auch wenn diese Bibliothek schon weit verbreitet ist, könnte die Änderung der Lizenz dazu führen, dass sie noch breiter verwendet wird. Ein Open-Source-Projekt, das mehr Aufmerksamkeit bekommt, bedeutet auch, dass es von mehr Leuten unterstützt wird - insbesondere für jemanden wie Sie, der es langjährig kostenlos wartet, ist etwas zusätzliche Hilfe immer gut, oder?

Dan Blanchard: Ja, ich stimme völlig zu. Wenn Sie sich beispielsweise die 36. Issue im chardet-Repository ansehen, die von Oktober 2014 ist, habe ich dort etwas geschrieben, das heute ziemlich interessant erscheint. Ich habe gesagt: "Es ist für mich etwas seltsam, weil ich selbst einer der Wartungsbetreuer bin, aber ich möchte trotzdem fragen, ob wir die Lizenz ändern können?"

Dann habe ich mit Ian und Eric Rose, der damals viel beteiligt war, eine Diskussion geführt. Schließlich kamen wir zu dem Schluss: Wir müssen Mark kontaktieren. Aber niemand weiß, wie man