Il rapido miglioramento del kernel Linux, e la rapidissima crescita dell'intero sistema operativo GNU/Linux, oltre ad avere un successo insospettabile realizzarono una cosa che ben pochi avrebbero previsto: un nuovo modello di sviluppo del software.
Fino a quel momento, l'approccio "classico" alla creazione di qualunque programma (specialmente di quelli molto estesi) prevedeva l'esistenza di una autorità centrale (per esempio, l'azienda produttrice) che avrebbe dovuto gestire e realizzare praticamente tutti gli aspetti del progetto. Il sistema di produzione doveva essere rigidamente pianificato. Agli utenti era riservato un ruolo marginale in questo processo: essi si sarebbero dovuti limitare ad utilizzare il programma, o, al massimo, ad inviare qualche e-mail lamentandosi dei suoi difetti. Si riteneva che l'alternativa (far partecipare gli utenti al processo di creazione, influenzandolo e modificandolo) portasse direttamente al caos.
Questo assunto era così radicato, che esso era, almeno parzialmente, anche alla base del progetto GNU: lo scopo iniziale era infatti, come già detto, quello di terminare l'intero sistema operativo, per poi rilasciarlo "ufficialmente". Ma come sappiamo le cose non andarono esattamente così: la possibilità di poter liberamente modificare i sorgenti dei programmi permise, anche alle persone "esterne" al progetto, di collaborare al processo di sviluppo, realizzando e proponendo al team GNU delle modifiche inizialmente non previste, ma sicuramente utili. Così, il progetto si discostò in parte dal piano iniziale (realizzare in breve tempo un sistema operativo libero "completo"), ma si avvicinò alle necessità al momento più sentite dal pubblico (realizzare in breve tempo almeno dei componenti liberi). Il progetto dava i suoi frutti, anche se essi erano un pò diversi da quelli che ci si aspettava all'inizio.
Lo sviluppo del kernel Linux, invece, partì dal presupposto che questo tipo di collaborazione sarebbe stato fondamentale. Il contributo maggiore alla sua crescita sarebbe arrivato dalle persone che, attraverso Internet, avrebbero partecipato alla sua realizzazione. Questo equivaleva a diverse idee e suggerimentii, che avrebbero dovuto creare qualcosa di organico. Quello che certo nessuno si aspettava era una adesione così numerosa: la sfida non era certo semplice, e lo scetticismo era alto. Ma non ci volle molto tempo per capire che la sfida sarebbe stata vinta.
Queste considerazioni furono illustrate, nel 1997, da Eric S. Raymond (Figura 11), in un famoso articolo intitolato "The Cathedral and the Bazaar". Questo lavoro contiene varie considerazioni sullo sviluppo del kernel Linux, ed illustra la creazione di un altro progetto (un programma per la gestione della posta elettronica, fetchmail) basato sulla costante collaborazione di una vasta schiera di persone, collegate attraverso Internet. Vengono illustrate le differenze tra uno sviluppo del software centralizzato, fortemente pianificato e controllato (come può esserlo, per esempio, la costruzione di una cattedrale), ed uno sviluppo aperto alla collaborazione esterna, dinamico e flessibile (come può esserlo la crescita di un bazaar, dove ogni negoziante si unisce senza stretti vincoli). E si conclude che il secondo metodo è decisamente più efficace: aumentando il numero di partecipanti, il programma viene costruito più rapidamente, e gli errori di programmazione (i bug) sono corretti più in fretta (come dice Raymond, "given enough eyeballs, all bugs are shallow"). E per realizzare tutto questo basta, fondamentalmente, rendere liberamente modificabili e ridistribuibili i sorgenti di un programma [ESR97].
L'articolo di Raymond ebbe un notevole successo, ed interessò specialmente le aziende produttrici di software: uno degli aspetti alla base del Software Libero (rendere disponibili i sorgenti dei propri programmi) poteva essere un ottimo modo per migliorare il proprio prodotto, aumentare la propria fama ed ampliare il proprio mercato. Probabilmente il business non si sarebbe basato principalmente sulla vendita di severissime licenze sul software proprietario, ma la diffusione del proprio codice sorgente avrebbe attirato dei clienti interessati, per esempio, alla creazione di soluzioni personalizzate, alla realizzazione di modifiche al programma originale, all'acquisto di supporto tecnico e contratti di assistenza...
Una delle aziende più interessate a questo proposito era la Netscape Corporation. Il 1997 era il periodo della famosa "guerra tra i browser", che vedeva la contrapposizione tra Netscape Navigator e Microsoft Explorer, ambedue prodotti proprietari alla ricerca della maggioranza di mercato. L'ultima mossa della Microsoft era stata quella di rendere gratuito (ma non certo libero) il proprio Explorer, e la Netscape Corporation iniziava ad accusare il colpo: secondo le statistiche, per la prima volta, il proprio Navigator non era più il browser più utilizzato.
Proprio in quel periodo, i dirigenti della Netscape Corporation lessero l'articolo di Raymond, e giunsero ad una decisione senza precedenti: avrebbero superato la mossa della Microsoft, ed avrebbero reso disponibile i sorgenti del proprio browser. Da questa decisione sarebbe nato il progetto Mozilla. E, per pianificare questa mossa, la Netscape Corporation avrebbe chiesto la collaborazione dello stesso Eric Raymond.
La prima fase fu quella di organizzare il marketing dell'evento: era necessario dare un "marchio" alla mossa di Netscape. Ma non si voleva che il gesto venisse associato al concetto di Software Libero, per due motivi principali:
Software Libero, in lingua inglese, si scrive "Free Software". Purtroppo, la parola "free" significa anche "gratuito", e questo non rispecchia certo tutti i requisiti che portano a definire "libero" un certo programma. Per chiarire l'equivoco, viene ripetuto spesso che per "free" si intende "free as in speech, not as in beer"[1], ma questa ambiguità dei termini, oltre ad influenzara la fama del Software Libero (trasformandolo in un semplice "software gratuito"), poteva influenzare anche la riuscita della mossa di Netscape. Doveva infatti essere subito chiaro che il loro programma non sarebbe stato semplicemente "gratuito" come quello della Microsoft: sarebbe anche stato possibile modificarlo liberamente;
le idee di Stallman e della FSF non erano certo vicine al modello di software business del periodo. Per questo, e per il fermo appellarsi ad un forte concetto di libertà, era stata quasi naturale la crescita di una opinione che riteneva Stallman e la Free Software Foundation un gruppo di estremisti, fanatici, pazzi, stalinisti, e via insultando. Per quanto queste opinioni fossero spesso spinte da pregiudizi ed interessi personali, ed esse avessero già avuto risposta dai sostenitori del Software Libero, la Netscape Corporation non voleva essere tirata in ballo in queste vicende.
Iniziò quindi il lavoro per creare una associazione analoga alla FSF, che diffondesse il termine Open Source e le tematiche alla sua base: incoraggiare lo sviluppo di programmi liberamente modificabili, dato che questo è un ottimo metodo per aumentare la produttività e la qualità del proprio lavoro. Nacque così la OSI (Open Source Initiative). Tra i partecipanti al progetto vi era anche Bruce Perens, che vedeva nel termine "Open Source" una ottima possibilità per diffondere le idee alla base del Software Libero, ma senza le ambiguità linguistiche dovute al termine inglese "Free Software" --- che, come già detto, spesso non permetteva di cogliere il significato completo di "libertà" su cui esso si fonda. Perens diede un contributo fondamentale: a partire dalla suo precendente lavoro, le Debian Free Software Guidelines, egli stilò la Open Source Definition (OSD), ovvero i criteri che avrebbe dovuto avere qualunque programma per poter essere definito Open Source. In questo modo, proprio come la Free Software Foundation definiva il Software Libero in base a quattro libertà fondamentali (poi riportate nelle Debian Free Software Guidelines), la OSI definiva il software Open Source in base ai parametri della OSD. La differenza stava essenzialmente nel fatto che, nella seconda, non si ricorre mai al termine "libertà" e "libero" (free), per evitare i "disguidi" linguistici o ideologici citati in precedenza.
Il lancio del progetto Mozilla fu un grande evento mediatico, con tanto di mega-party promozionale in un locale di San Francisco (Figura 13). Si trattava di un momento importante: per prima, una grossa azienda con un business basato sul software proprietario aveva scelto di tentare una strada diversa, rendendo disponibili i sorgenti di un proprio prodotto. Col tempo, anche altre aziende avrebbero seguito questa strada: Sun, Intel, IBM, Hewlett Packard...
Figura 13. Il dinosauro, simbolo di Mozilla, al party promozionale di San Francisco
(Foto tratta da http://people.netscape.com/mourey/MozillaDotParty/partypics3.html)
Ma è anche interessante notare come la nascita del movimento Open Source fosse destinata a portare un cambiamento. L'idea alla sua base è spesso diversa dall'idea di Software Libero: quest'ultimo, infatti, si basa su un forte concetto di libertà per gli utenti, che finisce per essere l'origine di un modello di sviluppo aperto del software, basato sulla diffusione dei sorgenti ed estremamente valido ed interessante per le aziende. Il movimento Open Source, invece, pur essendo molto variegato (basti vedere l'opinione di Bruce Perens, citata sopra, che è molto vicino alle idee della Free Software Foundation), spesso si basa direttamente sul fatto che il suddetto modello di sviluppo aperto è conveniente, senza implicare alcun concetto "filosofico" di libertà per gli utenti (e questo spiega il successo di questa visione tra varie aziende). Open Source e Software Libero, insomma, partono da idee spesso diverse, per arrivare a conclusioni simili: favorire la libera copia, modifica e ridistribuzione del software. E, nonostante le divergenze, a partire dal progetto Mozilla i due movimenti avrebbero collaborato nel tempo.
[1] | Libero come la libertà di parola, non gratuito come la birra |