Districare l'intensa politica dietro Node.js

La notizia che si è diffusa al Node Summit la scorsa settimana - che Joyent e altri stanno proponendo di creare una Fondazione Node.js - non è stata una sorpresa per chi ha assistito alla controversia sulla piattaforma JavaScript lato server preferita da tutti. È chiaro da tempo che Node.js ha superato le sue radici ed è diventato un importante strumento strutturale per l'industria del software.

Gli host di Node.js a Joyent non avevano pianificato questo: il codice era stato un progetto dei dipendenti piuttosto che un investimento strategico. Sebbene Node.js sia una parte importante delle operazioni di Joyent, non è un prodotto chiave per l'azienda, che ha sicuramente speso molto di più per ospitarlo di quanto non abbia ricevuto in termini di valore aziendale come pioniere della distribuzione cloud basata su container. Joyent merita credito per aver agito in modo responsabile e mantenuto il suo impegno come amministratore, nonostante l'intenso interesse - e il feroce intrigo politico - in cui si è trovata.

Node ha visto l'adozione dal basso che ha portato a implementazioni aziendali del tipo che molti riconoscono nell'open source, dove i CIO sono sicuri che la tecnologia non sia in uso nella loro attività fino a quando non chiedono effettivamente al personale operativo. Ciò a sua volta ha portato alla consueta dicotomia tra le esigenze di stabilità dei team operativi (cambiare solo dove è necessario, preferibilmente raramente dopo test rigorosi) e le prospettive degli sviluppatori (che vogliono provare ogni nuova idea ora o prima).

Come ci si potrebbe aspettare da un'azienda con un profondo impegno per operazioni stabili, Joyent rientra saldamente nel primo campo. Il suo obiettivo operativo è supportato da grandi distribuitori di applicazioni Node a livello globale, alcuni dei quali possono essere trovati a guidare la nuova Node Foundation.

Ma l'adozione diffusa genera anche startup che cercano di sfruttare nuove esigenze e monetizzare la loro risoluzione. Molte di queste startup sono coinvolte nel fork io.js di Node.js, richiedendo frequenti rilasci per supportare le loro innovazioni e piani aziendali. Gli sviluppatori e gli imprenditori in quel campo hanno espresso esasperazione per il fatto che Joyent non abbia guidato più versioni.

La loro critica a Joyent è stata frequente ed eloquente, ma alla fine nessuna delle due parti ha il monopolio della verità. Joyent si sente giustificato nella sua cautela dalla "sequenza di sfortunati eventi" attorno ai molteplici tentativi errati di distribuire una versione nell'ultimo anno, che avrebbe portato al caos se avesse raggiunto la base di utenti. Dopo tutto, Node.js è una piattaforma, non una libreria, e deve essere gestita in modo conservativo.

Tutto questo - la politica aziendale, gli scoppi di sviluppatori del marchio del fuoco e il resto - mi convince che Node.js ha bisogno di una fondazione indipendente. Non che io sia un fan della creazione di basi open source per ogni progetto: mettere il tuo progetto in un'organizzazione non profit raramente risolve i problemi e la maggior parte dei progetti è meglio entrare a far parte di un'organizzazione esistente.

La creazione di un'organizzazione no profit riconosciuta dal governo è stata storicamente importante nell'open source per due scopi:

  1. Come un'imprimatur di "apertura" da parte di un'attività altrimenti proprietaria di una singola azienda che coinvolge il codice open source
  2. Come un modo per isolare la politica del business dagli aspetti pratici dello sviluppo, creando un luogo neutrale per un'autentica collaborazione tra pari

In quel primo ruolo i problemi rimangono, anche se mascherati dalla patina di un'organizzazione no profit. Il secondo ruolo necessita di una solida base di collaborazione prima di essere posto in essere. Le basi non risolvono i problemi, ma rendono le soluzioni permanenti una volta messe in atto. Risolvi prima i problemi, poi crea le fondamenta.

Node.js ha bisogno di una fondazione per supervisionarlo. La sua comunità è probabilmente già abbastanza grande da rendere inappropriata l'idea di entrare a far parte di una comunità esistente come Eclipse o Apache. Ma la fondazione proposta è la risposta giusta? Bill Scott di PayPal ha dichiarato al Node Summit che PayPal supporta la fondazione, ma osserva la comunità. Questo mi sembra il giusto equilibrio.

Ciò che viene proposto finora è un'associazione di categoria aziendale pay-to-play a immagine della Linux Foundation, con commissioni elevate e non legate alle entrate per spaventare le startup e le regole redatte da grandi partecipanti aziendali come Microsoft e IBM. Questa non è sicuramente la risposta giusta per riportare i partigiani di io.js nell'ovile. L'aspra politica attorno a Node.js ha sicuramente bisogno del sandboxing, ma anche il desiderio degli sviluppatori di guidare l'agenda. Una Node Foundation funzionante avrà bisogno sia della cadenza di rilascio che rispetta le operazioni che Joyent cerca, sia dello spazio dinamico di ricerca e sviluppo che gli imprenditori di io.js desiderano.

Un modello come quello utilizzato da Eclipse potrebbe funzionare meglio qui. Dopo anni di evoluzione, Eclipse ora dispone di una serie di interessanti funzionalità di governance per questa situazione, in particolare commissioni pay-for-play che richiedono anche l'impegno degli sviluppatori nel progetto e confini rigorosi tra governance fiduciaria e tecnica. Eclipse richiede anche la donazione del marchio alla fondazione, passaggio trascurato dai progetti a loro rischio e pericolo se vogliono evitare futuri sfruttamenti da parte del titolare del marchio.

Naturalmente, tutto questo potrebbe essere vano; un punto di controllo cruciale per Node.js, il suo gestore di pacchetti NPM, è controllato da una società di avvio con lo stesso nome. La politica divisiva potrebbe ripresentarsi a meno che non venga affrontata anche questa. Sembra che la comunità di Node.js, non solo Joyent, abbia il suo bel da fare.