7 aspetti negativi della cultura open source
Ci sono pochi dubbi sui meriti della filosofia open source per la scrittura di codice e la produzione di software. Molti dei pacchetti software alla base dell’informatica moderna, dal sistema operativo Linux a MySQL, sono stati creati utilizzando un modello di condivisione aperta e di sviluppo collaborativo. Ma nonostante la sua innegabile importanza, l’open source non è privo di difetti. Bisogna infatti considerare anche alcuni dei suoi aspetti negativi, non tanto nella filosofia di fondo ma nella realtà quotidiana. Ecco sette motivi per cui gli sviluppatori potrebbero pensarci due volte prima di contribuire a un progetto open source.
L’open source non funziona con il cloud
Molte delle attuali licenze open source sono state create prima del cloud, quando gli utenti accedevano al software scaricandolo ed eseguendolo sui propri desktop. Da allora i fornitori cloud hanno trovato modi per allontanarsi dall’etica dell’open source mantenendo proprietarie le loro modifiche al codice.
Esistono dozzine di esempi di fornitori di cloud che creano versioni speciali di progetti open source da rivendere nel cloud. Uno dei contrasti più visibili in tal senso è stato quello tra Amazon Web Services e i creatori di Elasticsearch. Quando le due parti non sono riuscite a raggiungere un accordo, si sono divise e ora ci sono due versioni del codebase di Elasticsearch. Potremmo vedere miglioramenti in futuro su questo versante, ma non aiuteranno granché i sistemi legacy forniti con le licenze open source originali.
L’open source ha un problema di diversità
La parola comunità viene spesso usata nei circoli open source, ma ciò non significa che la cultura open source sia una sorta di Shangri-La. È noto ad esempio che l’open source ha un problema di diversità e che alcune figure di spicco sono state accusate di razzismo e sessismo. La disuguaglianza strutturale può essere meno visibile quando gli individui contribuiscono a progetti open source in modo anonimo, comunicando solo tramite e-mail o altri metodi “impersonali”. Ma a volte proprio questo anonimato genera sentimenti di disconnessione, che possono rendere il processo collaborativo poco piacevole e ancor meno inclusivo.
Costruire una comunità fiorente richiede tempo e risorse
Molte aziende pubblicano versioni open source del loro prodotto come “edizione comunitaria”. È un ottimo strumento di marketing e anche un buon modo per raccogliere idee e per migliorare il prodotto. Costruire una vera comunità attorno a quel progetto, tuttavia, richiede tempo e risorse. Se un utente e un potenziale collaboratore pongono una domanda su una bacheca online della comunità, si aspettano una risposta.
Certo, molti contributi sono fatti liberamente nel pieno spirito dell’open source, ma coltivare e gestire una comunità di sviluppo aperta richiede tempo. Quando il tutto funziona bene, il risultato può essere un gruppo fiorente in grado di scrivere codice di ottima qualità, ma spesso c’è davvero molto lavoro per arrivare a un simile risultato. Una conseguenza di ciò è che i progetti aziendali più grandi, ai quali partecipano anche sviluppatori ben retribuiti (cosa che le realtà più piccole non riescono ad assicurare), tendono a dominare il settore.
Il mentoring open source è sorprendentemente raro
Al tempo stesso molti sviluppatori sono felici di condividere il loro codice con chiunque, ma ciò non significa che vogliano aiutare gli altri a imparare. Dare a qualcuno l’accesso a un repository Git richiede alcuni minuti, ma supportare la sua crescita come sviluppatore e collaboratore è un impegno significativo. Alcuni progetti includono persino una clausola nei loro accordi secondo cui i contributori non dovrebbero aspettarsi di essere integrati o supportati, o addirittura di ricevere risposte alle loro domande. Della serie: se non siete capaci a risolvere un problema, arrangiatevi.
Anche i più irriducibili devono essere pagati
La maggior parte degli sviluppatori open source è composta da idealisti che non sono motivati dalla fama e dalla fortuna, ma che devono pur sempre mangiare e avere un tetto sulla testa. Il mondo reale, a differenza di quello digitale, ha infatti molti elementi “fisici” che non sono compatibili con l’etica della condivisione libera dell’open source. L’open source funziona bene per piccoli progetti di appassionati per i quali nessuno si aspetta di essere pagato, ma questo approccio può essere molto più difficile da mettere in pratica per progetti più grandi supportati da programmatori a tempo pieno.
Niente è veramente gratuito
Se trascorrete abbastanza tempo nel mondo open source, probabilmente vi sarete già imbattuti nell’acronimo TANSTAAFL, che sta per There Ain’t No Such Thing As a Free Lunch (non esiste un pranzo gratuito). Dopo che gli utenti hanno scaricato il software open source e lo hanno utilizzato, inizieranno a scoprirne i limiti. A volte, il codice ha solo bisogno di qualche piccolo perfezionamento, ma altre volte potrebbe trattarsi di qualcosa di più serio. Nessuno di solito vuole lamentarsi di qualcosa di imperfetto quando è offerto gratuitamente, ma sistemare anche una piccola parte di codice per uno sviluppatore può essere un peso non da poco.
Alcuni progetti non dovrebbero essere open source
Le versioni open source di un software sono utili per il codice utilizzato da un’ampia classe di sviluppatori che possono aiutare a sviluppare il codice insieme. In alcuni casi, tuttavia, lo scambio di denaro è un modo più semplice e in definitiva più sostenibile di organizzare il lavoro di creazione di software.