StandardJS sospende l'esperimento con gli annunci nel terminale dopo che Linode ha ritirato la sponsorizzazione

Pubblicato: 2019-08-29

Feross Aboukhadijeh, manutentore della libreria StandardJS, una guida allo stile JavaScript, linter e riparatore di codice automatico, ha lanciato la scorsa settimana un esperimento che inserisce annunci nel terminale per finanziare lo sviluppo. Da allora l'esperimento è stato sospeso dopo aver ricevuto un feedback negativo dalla comunità degli sviluppatori, costringendo Linode, uno degli sponsor iniziali, a rimuovere la sua pubblicità.

"Penso che l'attuale modello di sostegno dell'open source non funzioni e abbiamo bisogno di più sperimentazione", ha detto Aboukhadijeh. "Questo è uno di questi esperimenti." Ha sviluppato un modulo che inserisce un annuncio ogni volta che viene installato Standard 14. I fondi di sponsorizzazione sono destinati a pagare il tempo del manutentore, che ha definito come "scrivere nuove funzionalità, correggere bug, rispondere alle domande degli utenti e migliorare la documentazione".

Aboukhadijeh è uno sviluppatore prolifico che ha creato più di 100 pacchetti su npm che vengono scaricati oltre 100 milioni di volte al mese. Standard è il suo progetto open source più popolare ed è utilizzato da progetti e aziende di alto profilo, tra cui Node.js, npm, GitHub, Automattic e molti altri.

Aboukhadijeh ha affermato che il suo obiettivo con l'esperimento è rendere più sani i progetti Standard e altri open source.

"Per ragioni complesse, le aziende sono generalmente riluttanti o non disposte a finanziare direttamente OSS", ha affermato. “Quando succede, non è mai abbastanza e non arriva mai a pacchetti che sono dipendenze transitive (cioè pacchetti che nessuno installa esplicitamente e quindi nessuno sa che esista). In sostanza, abbiamo un bene pubblico che viene consumato da un numero enorme di utenti, ma per il quale quasi nessuno paga. Fortunatamente, esiste un modello di finanziamento che di solito funziona per beni pubblici come questo: gli annunci".

Ecco un esempio dell'annuncio LogRocket che faceva parte dell'esperimento iniziale:

Mentre alcuni sviluppatori hanno comunicato il supporto ai manutentori open source per monetizzare i loro progetti in qualsiasi modo scelgano, la maggior parte dei feedback su GitHub, Hacker News, Reddit e sui social media ha fortemente criticato questo particolare approccio.

William Hilton, sviluppatore di Stoplight, ha ipotizzato le conseguenze di questo tipo di pubblicità che diventa un modello di finanziamento popolare:

Temo che l'installazione di npm diventi solo una lunga scia di banner pubblicitari, anche se alla fine non si ridimensionerà. Perché se ogni pacchetto npm aggiunge annunci, la visibilità di ogni annuncio diminuirà. (È interessante notare che l'"immobiliare" più prezioso saranno i pacchetti il ​​cui banner viene visualizzato per ultimo, quindi se diventa una vera e propria "corsa verso il basso" le persone potrebbero aggiungere istruzioni sul sonno ai loro script post-installazione in modo che vengano visualizzati più vicino al in basso. Che esperienza di installazione distopica!)

Ha anche notato che Yarn blocca l'output degli script post-installazione, che in questo caso servirebbero come blocco degli annunci integrato. Il manutentore di Yarn è intervenuto sul thread con più contesto.

"Come manutentore di Yarn, sono fortemente contrario a questo schema, anche se non per le ragioni che potresti pensare", ha detto Mael Nison. “Gli script post-installazione deottimizzano i pacchetti e interrompono i flussi di lavoro.

“Yarn già non stampa i registri di compilazione a meno che non interrompano le installazioni, quindi questo script post-installazione non avrebbe alcun effetto visibile per i nostri utenti. Tuttavia, apprezzo molto la salute dell'ecosistema, sia dal punto di vista dei manutentori che degli utenti, e sarei felice di discutere di come potremmo soddisfare questo caso d'uso in un modo più integrato e meno invadente".

Poiché si tratta di un esperimento più recente e non è diventato mainstream, non è chiaro se npm potrebbe decidere di bloccare tutti i metodi di pubblicazione degli annunci tramite il terminale in futuro. Un nuovo modulo chiamato No CLI Ads è stato creato in risposta al modulo di finanziamento di Aboukhadijeh. Blocca la visualizzazione degli annunci nell'output della console. npm-adblock è un'alternativa che funziona in modo diverso. L'esistenza di modi semplici, anche se scomodi, per bloccare questo tipo di annunci può essere tutto ciò che è necessario per prosciugare qualsiasi potenziale flusso di entrate.

Il feedback su questo esperimento dimostra che esiste un ampio supporto per trovare una soluzione al problema del finanziamento open source, ma la maggior parte concorda sul fatto che gli annunci sul terminale non siano un'opzione praticabile. In effetti, molti commentatori hanno identificato questo approccio come la cosa più fastidiosa che un manutentore di pacchetti può fare, a parte rimuovere il pacchetto. Gli sviluppatori non desiderano ricevere spam durante l'installazione di una dipendenza. Un commentatore descrive il suo terminale come "l'ultima roccaforte" e "oasi di pace" che non offre pubblicità da parte dei signori aziendali.

"La vendita di spazi pubblicitari non è innovativa", ha affermato lo sviluppatore Matthias Hogerheijde. “Ed è particolarmente inutile nei miei registri. Per me, il problema è più che non voglio cose che non mi aiutano nei miei registri. Sono pienamente d'accordo con l'inserimento del tuo "supported by company X" nel readme. Questo mi aiuta a capire, risuona con me quando vedo alcune aziende che donano denaro a OSS. Anch'io voglio vivere in un mondo perfetto in cui ogni sviluppatore possa vivere, pagare l'affitto e lavorare solo su progetti che gli piacciono. Quel mondo perfetto per me non include pubblicità nel mio terminale.

I commentatori di Reddit hanno preso in giro l'idea, scrivendo annunci di esempio che interrompono il processo di creazione:

Linode ritira la sponsorizzazione dall'esperimento Terminal Ads di Standard

Gli utenti di Standard.js che non erano soddisfatti degli annunci nei loro terminali si sono lamentati con gli sponsor e Linode ha deciso di rimuovere il suo annuncio dall'esperimento.

"Ci siamo riconsiderati dopo aver riflettuto sulla reazione della comunità degli sviluppatori", ha detto un rappresentante di Linode su Twitter. "Sosteniamo ancora con passione il software open source insieme a @feross, ma staremo più attenti a sperimentare in futuro continuando a innovare".

Prima di sospendere l'esperimento, Aboukhadijeh ha riferito di aver raccolto $ 2.000, abbastanza per finanziare cinque giorni del suo tempo per pubblicare lo Standard 14.

"Se siamo in grado di raccogliere fondi aggiuntivi, la prossima cosa su cui vorrei concentrarmi è il supporto di TypeScript pronto all'uso in StandardJS (una delle richieste di funzionalità più comuni!) e la modernizzazione dei vari plugin di editor di testo ( molti dei quali sono attualmente non mantenuti),”, ha detto Aboukhadijeh. "Se altri nella comunità sono interessati a prendere l'iniziativa su uno di questi problemi, vorrei indirizzare alcuni fondi a te."

L'esperimento non è del tutto fuori discussione, dal momento che sembra aver raggiunto uno degli obiettivi immediati di Aboukhadijeh, nonostante abbia infastidito (e in alcuni casi fatto infuriare) la comunità degli sviluppatori.

Quattro giorni fa, Standard ha bloccato il thread GitHub discutendo del nuovo modello di finanziamento dopo che è diventato troppo caldo. I manutentori del progetto stanno ora valutando questa iterazione dell'esperimento, ma la discussione va oltre la semplice domanda se agli sviluppatori piacciono gli annunci nei loro terminali. Un nuovo thread sul repository del progetto, intitolato "Cosa c'è che non va nell'Open Source in questo momento?" ha deviato parte del feedback negativo in una discussione più ampia e produttiva.

L'esperimento ha riacceso importanti conversazioni sulla sostenibilità dell'open source e su dove i manutentori del progetto vogliono vederlo andare in futuro. In un recente tweet, Aboukhadijeh ha condiviso un collegamento a una situazione particolare che un manutentore ha dovuto affrontare nel supportare una libreria di evidenziazione della sintassi gratuita.

Dopo aver ricevuto commenti ed e-mail urgenti a seguito di una versione che conteneva errori che causavano la rottura delle dipendenze, Ivan Sagalaev, l'autore originale di highlight.js, ha riassunto in modo appropriato lo stato attuale della relazione tra aziende e progetti open source:

Cari colleghi ingegneri, vi prego di cogliere questo inconveniente di costruzione come un'opportunità per spiegare ai vostri particolari uomini d'affari che la loro intera proprietà intellettuale è un sottile strato in cima a una base instabile di codice open source pigramente mantenuto da hobbisti o pagato da altre aziende che hanno in mente i propri obiettivi.

Se vogliono davvero la stabilità, devono investire in essa, ad esempio, assumendo ingegneri per gestire una miriade di dipendenze, mantenere fork stabili locali, contribuire con patch a monte o qualsiasi altra cosa - il punto chiave è che non dovrebbe sembrare "solo lavora' su polvere di fata.