Sinistra <- Claude E. Shannon - Indice Generale - Copertina - Indice -> Destra

Agorà


Economia delle Reti Open Source: storia e dinamiche del movimento del software libero

Economia delle Reti Open Source: storia e dinamiche del movimento del software libero

di Marco Scutari, Mauro Malvestio
Dipartimento di Scienze Statistiche
Università degli studi di Padova

L'articolo...

Dopo una panoramica introduttiva sulla storia del movimento socio-culturale che ha portato alla nascita del software libero, gli autori si soffermano su alcuni esempi delineando l'organizzazione dei progetti opensource.



Introduzione

Negli ultimi anni l'interesse per il SL (Software Libero) si è notevolmente diffuso grazie alla rapida diffusione di alcuni programmi creati all'interno di questo movimento (primo fra tutti Apache - http://www.apache.org), ai notevoli investimenti stanziati da multinazionali del settore come IBM e Sun Microsystems, ed alla rapida crescita del numero di utenti dei SO (sistemi operativi) open source (come Linux, NetBSD, FreeBSD, ecc.). La natura collaborativa del movimento open source sembra contraddire i principi della natura economica dell'industria dell'informazione. Cosa spinge alcuni dei migliori programmatori al mondo a lavorare senza richiedere alcun compenso?

Storia del movimento open source

A partire dalla Seconda Guerra Mondiale la nascita dei primi calcolatori (tra cui il primo ENIAC progettato da Eckert E. Mauchly) creò una nuova cultura, che raccolse i primi programmatori. Soprannominati in seguito "The Real Progammers", erano prevalentemente fisici e ingegneri, che si dedicavano alla creazione di hardware e software per passione personale ed interesse intellettuale; la loro specialità era il "batch computing", ovvero le procedure non interattive di calcolo, per scopi scientifici. Con l'avvento dei primi sistemi interattivi all'inizio degli anni Sessanta, questa prima generazione di programmatori cedette il passo ai primi hacker, nati con l'avvento di ARPANET (madre di Internet, costruito dal Dipartimento della Difesa Statunitense) e maturati nei laboratori del MIT (Massachusset Institute of Technology), della Stanford University, della Carnegie-Mellon University e del Palo Alto Research Center della Xerox. Lavorando su calcolatori del calibro dei PDP della Digital Equipment Corporation (DEC) crearono i primi sistemi operativi (tra cui il famoso ITS), i primi linguaggi di programmazione (come il LISP), i protocolli di rete, e le prime applicazioni.

Per quanto innovative e ben progettate, tutte queste creazioni dovettero cedere il passo a sistemi operativi più moderni, dato che non erano portabili ad altre architetture (non funzionavano su calcolatori diversi da quelli su cui erano state create) perché scritti in linguaggio a basso livello (Assembler). Questo cambio generazionale portò alla ribalta UNIX, che essendo stato programmato in C (il famoso linguaggio di programmazione creato da Dennis Ritchie nel 1971) era portabile, e venne in effetti adattato a numerose architetture nel corso degli anni settanta. I principali vantaggi dell'accoppiata C/UNIX erano la semplicità, la flessibilità e l'uniformità di comportamento su calcolatori anche molto diversi oltre che la portabilità. All'inizio degli anni Ottanta esistevano quindi tre culture: gli "hacker" cresciuti con ARPANET ed i PDP, quelli passati a UNIX e C (che utilizzavano prevalentemente i VAX, successori dei PDP) ed infine i possessori dei primi personal computer, commercializzati nella seconda metà degli anni Sessanta. La prima morì quando la DEC smise di fornire assistenza per i PDP, mentre la terza non acquisì mai l'autocoscienza, dato che i membri non erano in grado di comunicare tra loro attraverso una rete. Questo lasciò campo aperto a UNIX, che venne commercializzato dall'AT&T nel 1984.

La commercializzazione di UNIX portò con sè un nuovo problema: la gestione dei codici sorgenti, ora proprietà dell'AT&T. Fino a quel momento i programmatori, e specialmente gli hacker, erano soliti scambiarsi i codici sorgenti dei programmi per analizzarli e migliorarli; dato che ogni miglioramento era poi reso pubblico questo andava anche a vantaggio delle industrie. Al contrario l'AT&T decise di non divulgare il codice sorgente di UNIX e dei programmi correlati, proteggendoli con i "nondisclosure agreement" ed i "copyright", creando di fatto il primo software commerciale nell'attuale accezione del termine.
Reagendo a quello che vedevano come un sopruso, alcuni hacker, capeggiati da Richard Stallman, fondarono la Free Software Foundation (FSF), con lo scopo di creare un intero sistema operativo il cui codice sorgente fosse liberamente modificabile e ridistribuibile. Questo progetto, nato sotto il nome di GNU (GNU: GNU's Not UNIX), raccolse l'eredità ideologica della cultura hacker, esaltandola in contrasto con la mentalità commerciale dell'AT&T e diventando il primo nucleo del movimento open source.
Nel corso degli anni Ottanta, mentre UNIX veniva praticamente rimpiazzato dai sistemi operativi Microsoft (società fondata da Bill Gates) a causa dell'inettitudine commerciale delle aziende che lo distribuivano e delle differenze tra le varie versioni, la Free Software Foundation creò molti programmi fondamentali per il nuovo sistema operativo, ottenendo dei risultati di qualità talmente buona da essere utilizzati ancora oggi. Lo stesso Stallman sviluppò il GNU C Complier (GCC) in soli tre anni, fornendo così uno strumento standard per la programmazione; tuttavia il suo massimo contributo fu la General Public Licence (GPL). Questa licenza, che è il fondamento di buona parte dei software sviluppati all'interno del movimento open source, fu la massima espressione degli ideali professati dalla Free Software Foundation e pose la base per uno sviluppo unitario del software libero, diventando uno standard de facto.

Proprio grazie all'impegno della Free Software Foundation, Linus Torvalds nel 1991 iniziò a sviluppare un kernel (il nucleo del sistema operativo) per personal computer 386, avvalendosi dell'aiuto di molti volontari per la programmazione e di Internet per la diffusione delle informazioni e la coordinazione del lavoro. Già a partire dal 1993 Linux (questo il nome del nuovo sistema operativo) è diventato il più grande progetto collaborativo mai realizzato, cominciando a competere con i suoi equivalenti commerciali e raccogliendo l'entusiastica adesione della maggior parte del movimento open source. Tra l'altro è proprio in questo periodo che viene coniato il termine open source, che rispetto alla denominazione free software desta minor confusione (free in inglese vuol dire gratuito oltre che libero). A partire dalla metà degli anni Novanta nascono anche varie imprese che vendono le cosiddette "Linux Distribution", ovvero delle suite contenenti il sistema operativo e vari programmi, fornendo assistenza in bundle; l'azione combinata della velocità di sviluppo di Linux, del bassissimo costo di distribuzione e dall'ottima qualità dei programmi portano ad una crescita annuale del 200% nel numero degli utenti. Grazie ad una fuga di informazioni si diffonde la notizia che anche Microsoft considera Linux una valida (e quindi pericolosa) alternativa al proprio sistema operativo.

Casi Esempio

  1. Apache.

    Apache è il più diffuso software per realizzare Web-Server attualmente disponibile sul mercato; infatti circa il 60% dei Web-Server attivi sul Web usa Apache (secondo indagini NetCraft 2000). Apache è stato inizialmente sviluppato nel 1994 da Brian Behlendorf, come alternativa al Web-Server NCSA. Quest'ultimo infatti, per problemi di gestione interna, diminuì gradualmente il supporto di assistenza, costringendo Behlendorf ed altri amministratori di rete a sviluppare un proprio Web-Server per soddisfare le proprie necessità sistemistiche. La prima release, Apache 0.8, fu rilasciata nell'agosto del 1995 ed ebbe un immediato successo per l'assenza di valide alternative commerciali. I concorrenti commerciali di Apache sono Microsoft IIS e Netscape Enterprise Software, che però controllano rispettivamente il 20.2% ed il 6.7% del mercato. A partire dal 1999 il progetto Apache viene gestito dalla Apache Software Foundation.

  2. Linux

    Creato nel 1991 dallo studente finlandese Linus Torvalds ed inizialmente basato sul sistema Minix venne subito distribuito dall'autore sotto una licenza che imponeva la distribuibilità. Nel corso degli anni questo sistema operativo si è evoluto a ritmi impressionanti sotto la guida del proprio creatore, diventando il principale competitore di Windows ed attraendo numerosi investimenti. Molte aziende inoltre si sono dedicate alla commercializzazione di prodotti complementari, come hardware appositamente ottimizzato, supporto tecnico e interfacce utente. Torvalds supervisiona tuttora lo sviluppo di Linux dal punto di vista organizzativo e, anche se non contribuisce più in modo determinante allo sviluppo, continua ad avere l'ultima parola sulle scelte strategiche.

  3. Perl

    Perl, (Practical Extraction and Reporting Language) è un linguaggio di programmazione creato da Larry Wall nel 1987 per rispondere all'esigenza di avere un linguaggio a metà strada tra il C ed il linguaggio Shell proprio di UNIX, per automatizzare l'amministrazione di sistema. Il suo sviluppo viene diretto a rotazione dai principali programmatori che ne curano attualmente il mantenimento; al contrario di Apache la creazione di una fondazione nel caso di Perl non ha avuto successo per ben due volte. I concorrenti commerciali di Perl sono attualmente Java della Sun Microsystems e ActiveX della Microsoft.

  4. Sendmail

    Sendmail è stato originariamente sviluppato nel 1970 da Eric Allman, all'epoca studente di informatica all'università di Berkeley. Sendmail è nato per risolvere le incongruenze derivanti dall'utilizzo di protocolli non perfettamente compatibili. È stato adottato come metodo per smistare e-mail all'interno della rete Arpanet. Nel periodo compreso tra gli anni ottanta e novanta furono rilasciate numerose versioni rivisitate di Sendmail da parte della comunità open source. Questo dimostra come sia possibile il "fork" di sviluppo anche in progetti di successo come Sendmail. Allman ritornò a lavorare per la Berkley Division nel 1993 e riscrisse lo completamente per adeguarlo alle nuove esigenze di sicurezza, riportando il programma in cima alle classifiche degli MTA più utilizzati. I concorrenti commerciali di Sendmail sono PostOffice, MS Exchange e Imail. Nel 1997 Allman fondò la Sendmail Inc. per dirigere il continuo sviluppo dell'applicazione.

I fattori di rete

Motivazioni dei programmatori

Un programmatore che si dedica ad un progetto open source va incontro a vari benefici ed alcuni svantaggi. Tra questi ultimi il più rilevante è il costo di opportunità derivante dal tempo che egli dedica allo sviluppo del progetto, tempo che deve necessariamente sottrarre al proprio lavoro e alla propria retribuzione. Tuttavia se il progetto in questione appartiene allo stesso ambito in cui opera lo sviluppatore, il tempo che egli dedica alla programmazione può trasformarsi in un maggior rendimento lavorativo. Bisogna inoltre considerare, oltre alla soddisfazione personale, anche altri vantaggi derivanti dall'acquisizione di notorietà, come la possibilità di nuove offerte di lavoro e di carriera ("career concern incentive") e il riconoscimento della qualità del proprio lavoro ("ego gratification incentive").
Questi incentivi sono collettivamente noti come "signaling incentive". La potenza di questi incentivi dipende da:

  1. la visibilità del contributo dato dal programmatore;

  2. l'impatto del contributo sulla performance del software;

  3. il talento che viene dimostrato.

Questo porta i programmatori ad associarsi a progetti ad alta visibilità, come ad esempio Debian; per quanto riguarda progetti di calibro minore il mancato raggiungimento della massa critica (intesa come numero complessivo tra programmatori e utenti) porta spesso alla dissoluzione del team di sviluppo. Lo stesso può accadere in caso di fork, in quanto il dividersi della leadership di sviluppo porta il progetto al di sotto della massa critica.

Incentivi del software proprietario rispetto all'open source

Per paragonare le motivazioni che portano i programmatori a scegliere l'open source rispetto al software proprietario bisogna tener conto delle differenze tra i due ambienti. I progetti commerciali sembrano avere un certo vantaggio in questo senso, perchè creano una prospettiva di profitto grazie all'uso di brevetti (per proteggere le innovazioni) e garantiscono un salario allo sviluppatore. Tuttavia i progetti open source possono risultare più convenienti perchè riducono molto i tempi di implementazione, sviluppo e debugging del software ("Alumni Effect"), dato che i tempi di apprendimento sono molto minori (per il fatto che il codice è accessibile a tutti) e sono gli utenti stessi a segnalare possibili soluzioni per risolvere gli errori. Per quanto riguarda i vantaggi a lungo termine, l'open source garantisce alcuni vantaggi irrealizzabili per il modello del software chiuso e proprietario.

Quantificazione dei meriti

Tutti gli utenti sono in grado di distinguere l'apporto di ciascun programmatore al progetto, e di valutare il suo talento in base alla qualità delle soluzioni proposte ed alla difficoltà del problema da implementare. Questo è impossibile nei progetti commerciali chiusi.

Indipendenza

Ogni programmatore nell'open source è il capo di se stesso, dato che il successo del suo lavoro non viene limitato dalle interferenze di un supervisore.

Flessibilità

Il metodo di lavoro del gruppo di sviluppo open source si dimostra più flessibile della realtà commerciale, per il fatto che il programmatore non è vincolato ad un singolo programma o ad una singola azienda, e può scegliere di sfruttare il suo know-how nell'ambito di progetti di suo specifico interesse.

Queste argomentazioni stanno ad indicare che gli sviluppatori open source sono generalmente più esperti, e tendono ad avere un forte interesse a dimostrare le proprie capacità. Una buona parte di software open source viene realizzata per un bacino di utenza particolarmente avanzato, che a sua volta sfrutta la libera diffusione del codice sorgente per personalizzare il software in base alle proprie esigenze, e non per l'utenza media (esempio i comuni utenti Windows).

Incentivi individuali

Organizzazione dei progetti open source

I possibili vantaggi per queste aziende vengono dalla fornitura di beni e servizi complementari che non vengono prodotti all'interno della comunità open source (esempi in questo caso sono: VA Linux e Red Hat). Un'altra possibile strategia è rappresentata da rilasciare parte del codice proprietario, specialmente quando l'azienda è troppo piccola per competere sul mercato o sull'orlo del fallimento, oppure quando vi sono prospettive di maggior profitto nel campo dei beni complementari. Le aziende non possono tuttavia garantire che lasceranno i propri codici sorgenti di pubblico dominio per sempre.

Riflessioni e spunti

Conclusioni

Molteplici sono i parametri che concorrono alla diffusione del software open source. Non si possono stabilire metriche, o valori quantitativi in merito a questi parametri, a causa della natura aperta e non regolamentata delle attività di sviluppo open source.


Sinistra <- Claude E. Shannon - Indice Generale - Copertina - Indice -> Destra