StandardJS unterbricht das Experiment mit Anzeigen im Terminal, nachdem Linode das Sponsoring abgezogen hat
Veröffentlicht: 2019-08-29Feross Aboukhadijeh, Betreuer der StandardJS-Bibliothek, eines JavaScript-Styleguides, Linters und automatischen Code-Fixers, startete letzte Woche ein Experiment, bei dem Anzeigen im Terminal platziert werden, um die Entwicklung zu finanzieren. Das Experiment wurde seitdem unterbrochen, nachdem es negatives Feedback von der Entwicklergemeinschaft erhalten hatte, was Linode, einen der ersten Sponsoren, dazu veranlasste, seine Werbung zu entfernen.
„Ich denke, dass das aktuelle Modell der Unterstützung von Open Source nicht funktioniert und wir mehr Experimente brauchen“, sagte Aboukhadijeh. "Dies ist ein solches Experiment." Er entwickelte ein Modul, das bei jeder Installation von Standard 14 eine Anzeige einfügt. Sponsorengelder sind dazu bestimmt, die Betreuerzeit zu bezahlen, die er als „Schreiben neuer Funktionen, Beheben von Fehlern, Beantworten von Benutzerfragen und Verbessern der Dokumentation“ definierte.
Aboukhadijeh ist ein produktiver Entwickler, der mehr als 100 Pakete auf npm verfasst hat, die mehr als 100 Millionen Mal pro Monat heruntergeladen werden. Standard ist sein beliebtestes Open-Source-Projekt und wird von hochkarätigen Projekten und Unternehmen verwendet, darunter Node.js, npm, GitHub, Automattic und viele mehr.

Aboukhadijeh sagte, sein Ziel mit dem Experiment sei es, Standard- und andere Open-Source-Projekte gesünder zu machen.
„Aus komplexen Gründen zögern Unternehmen im Allgemeinen oder sind nicht bereit, OSS direkt zu finanzieren“, sagte er. „Wenn es passiert, ist es nie genug und es erreicht niemals Pakete, die transitive Abhängigkeiten sind (dh Pakete, die niemand explizit installiert und daher niemand weiß, dass sie existieren). Im Grunde haben wir ein öffentliches Gut, das von vielen Nutzern konsumiert wird, für das aber fast niemand bezahlt. Glücklicherweise gibt es ein Finanzierungsmodell, das normalerweise für öffentliche Güter wie dieses funktioniert – Anzeigen.“
Hier ist ein Beispiel der LogRocket-Anzeige, die Teil des ersten Experiments war:

Während einige Entwickler Unterstützung für Open-Source-Maintainer kommunizierten, um ihre Projekte auf beliebige Weise zu monetarisieren, kritisierte die Mehrheit der Rückmeldungen auf GitHub, Hacker News, Reddit und Social Media diesen speziellen Ansatz stark.
William Hilton, Entwickler bei Stoplight, spekulierte über die Folgen, wenn diese Art von Werbung zu einem beliebten Finanzierungsmodell wird:
Ich mache mir Sorgen, dass npm install letztendlich nur zu einer langen Spur von Bannerwerbung wird und sich nicht skalieren lässt. Denn wenn jedes npm-Paket Werbung hinzufügt, nimmt die Auffälligkeit jeder Werbung ab. (Interessanterweise sind die wertvollsten „Immobilien“ Pakete, deren Banner zuletzt angezeigt werden. Wenn es also zu einem buchstäblichen „Wettlauf nach unten“ wird, könnten die Leute Schlafanweisungen zu ihren Post-Installationsskripten hinzufügen, damit sie am nächsten angezeigt werden unten. Was für ein dystopisches Installationserlebnis!)
Er bemerkte auch, dass Yarn die Ausgabe von Post-Install-Skripten blockiert, die in diesem Fall als eingebaute Werbeblockierung dienen würden. Der Betreuer von Yarn mischte sich mit mehr Kontext in den Thread ein.
„Als Betreuer von Yarn bin ich entschieden gegen dieses Muster, wenn auch nicht aus den Gründen, die Sie vielleicht vermuten“, sagte Mael Nison. „Post-Installationsskripte deoptimieren Pakete und unterbrechen Arbeitsabläufe.
„Yarn druckt die Build-Protokolle ohnehin nicht, es sei denn, sie bringen die Installation zum Absturz, also hätte dieses Post-Install-Skript keine sichtbaren Auswirkungen für unsere Benutzer. Dennoch schätze ich die Gesundheit des Ökosystems sehr, sowohl aus Sicht der Betreuer als auch der Benutzer, und ich würde gerne darüber diskutieren, wie wir diesen Anwendungsfall auf eine integriertere und weniger aufdringliche Weise erfüllen können.“
Da dies ein neueres Experiment ist und noch nicht zum Mainstream geworden ist, ist nicht klar, ob npm beschließen wird, in Zukunft alle Methoden zur Bereitstellung von Werbung über das Terminal zu blockieren. Als Reaktion auf das Finanzierungsmodul von Aboukhadijeh wurde ein neues Modul namens No CLI Ads erstellt. Es verhindert, dass Anzeigen in der Konsolenausgabe erscheinen. npm-adblock ist eine Alternative, die anders funktioniert. Das Vorhandensein einfacher, wenn auch unbequemer Möglichkeiten zum Blockieren dieser Art von Werbung kann alles sein, was erforderlich ist, um potenzielle Einnahmequellen auszutrocknen.
Das Feedback zu diesem Experiment zeigt, dass es breite Unterstützung für die Suche nach einer Lösung für das Problem der Open-Source-Finanzierung gibt, aber die meisten stimmen darin überein, dass Terminal-Anzeigen keine praktikable Option sind. Tatsächlich bezeichneten viele Kommentatoren diesen Ansatz als das Ärgerlichste, was ein Paketbetreuer tun kann, abgesehen vom Entfernen des Pakets. Entwickler möchten nicht gespamt werden, während sie eine Abhängigkeit installieren. Ein Kommentator beschreibt sein Terminal als „die letzte Festung“ und „Oase des Friedens“, die keine Anzeigen von Unternehmensherren liefert.

„Der Verkauf von Werbeflächen ist nicht innovativ“, sagte Entwickler Matthias Hogerheijde. „Und in meinen Protokollen ist es besonders wenig hilfreich. Für mich ist das Problem eher, dass ich keine Dinge möchte, die mir in meinen Protokollen nicht helfen. Ich stimme von ganzem Herzen zu, Ihr „unterstützt von Firma X“ in die Readme aufzunehmen. Das hilft mir zu verstehen, es schwingt bei mir mit, wenn ich sehe, dass bestimmte Unternehmen Geld an OSS spenden. Auch ich möchte in einer perfekten Welt leben, in der jeder Entwickler wohnen, Miete zahlen und nur an Projekten arbeiten kann, die ihm gefallen. Diese perfekte Welt beinhaltet für mich keine Werbung in meinem Terminal.“
Reddit-Kommentatoren griffen die Idee humorvoll an und schrieben Beispielanzeigen, die den Build-Prozess unterbrechen:

Linode zieht Sponsoring vom Terminal Ads Experiment von Standard ab
Benutzer von Standard.js, die mit den Anzeigen in ihren Terminals unzufrieden waren, beschwerten sich bei den Sponsoren und Linode beschloss, seine Anzeige aus dem Experiment zu entfernen.
Wir hören Sie laut und deutlich. Wir haben es uns noch einmal überlegt und die Anzeige entfernt.
– Linode (@linode) 25. August 2019
„Wir haben es uns noch einmal überlegt, nachdem wir über die Reaktion der Entwickler-Community nachgedacht hatten“, sagte ein Linode-Vertreter auf Twitter. „Wir unterstützen immer noch leidenschaftlich Open-Source-Software zusammen mit @feross, aber wir werden in Zukunft vorsichtiger sein, wenn es darum geht, zu experimentieren und gleichzeitig weiterhin innovativ zu sein.“
Vor der Unterbrechung des Experiments berichtete Aboukhadijeh, dass er 2.000 US-Dollar gesammelt hatte, genug, um fünf Tage seiner Zeit für die Veröffentlichung von Standard 14 zu finanzieren.
„Wenn wir in der Lage sind, zusätzliche Mittel aufzubringen, möchte ich mich als Nächstes auf die sofort einsatzbereite TypeScript-Unterstützung in StandardJS (eine der häufigsten Funktionsanfragen!) und die Modernisierung der verschiedenen Texteditor-Plugins ( von denen viele derzeit nicht gewartet werden)“, sagte Aboukhadijeh. „Wenn andere in der Community daran interessiert sind, bei einem dieser Themen die Führung zu übernehmen, würde ich Ihnen gerne etwas Geld zukommen lassen.“
Das Experiment ist nicht ganz vom Tisch, da es eines der unmittelbaren Ziele von Aboukhadijeh erreicht zu haben scheint, obwohl es die Entwicklergemeinde nervt (und in einigen Fällen wütend macht).
Vor vier Tagen sperrte Standard den GitHub-Thread, in dem das neue Finanzierungsmodell diskutiert wurde, nachdem es zu hitzig geworden war. Die Betreuer des Projekts evaluieren jetzt diese Iteration des Experiments, aber die Diskussion geht über die einfache Frage hinaus, ob Entwickler Anzeigen in ihren Terminals mögen. Ein neuer Thread im Repo des Projekts mit dem Titel „Was ist gerade falsch mit Open Source?“ hat einige der negativen Rückmeldungen in eine breitere, produktivere Diskussion umgeleitet.
Das Experiment hat wichtige Gespräche über die Nachhaltigkeit von Open Source und darüber, wohin die Projektbetreuer es in Zukunft führen wollen, neu entfacht. In einem kürzlich veröffentlichten Tweet hat Aboukhadijeh einen Link zu einer bestimmten Situation geteilt, mit der ein Betreuer konfrontiert war, als er eine kostenlose Syntaxhervorhebungsbibliothek unterstützte.
Nachdem er dringende Kommentare und E-Mails nach einer Veröffentlichung erhalten hatte, die Fehler aufwies, die dazu führten, dass Abhängigkeiten unterbrochen wurden, fasste Ivan Sagalaev, der ursprüngliche Autor von highlight.js, den aktuellen Stand der Beziehung zwischen Unternehmen und Open-Source-Projekten treffend zusammen:
Liebe Ingenieurkollegen, bitte nehmen Sie diesen Build-Schluckauf zum Anlass, Ihren jeweiligen Geschäftsleuten zu erklären, dass ihr gesamtes geistiges Eigentum eine dünne Schicht auf einem wackligen Fundament aus Open-Source-Code ist, der faul von Bastlern gepflegt oder von anderen Unternehmen bezahlt wird ihre eigenen Ziele vor Augen.
Wenn sie wirklich Stabilität wollen, müssen sie in sie investieren, indem sie zum Beispiel Ingenieure einstellen, die sich mit unzähligen Abhängigkeiten befassen, lokale Stable Forks warten, Upstream-Patches beitragen oder was auch immer – der entscheidende Punkt ist, dass es nicht so aussehen sollte, als ob es „nur“ wäre arbeitet auf Feenstaub.
