Gli interessati
possono scaricare
l'intero testo dai due link di seguito

.pdf 1,08 Mb
IPPOLITA
OPEN NON È FREE
comunità digitali tra etica hacker e mercato globale (Parte 1)

Parte 1
Parte 2

 

 

 

 

INDICE Prefazione
INTRODUZIONE
Codici, metodi, tattiche e amenità varie

I. Storie informatiche
II. Licenze, politica, mercato
III. Comunità
IV. La strategia economica dell’Open Source
V. Hic Sunt Leones
Appendici
Presentazione oggetti grafici
Disclaimer

PREFAZIONE

Questa prefazione in realtà è una postfazione, nel senso che è stata fatta dopo il libro stesso. Il fine di questa azione che precede il testo è parlare fuori dai denti, rendere il più possibile comprensibile, ampliare le prospettive, dare delle indicazioni utili al lettore, soprattutto quello non specialistico e alieno a concetti come software, computer, internet.

Questo libro traccia dei percorsi e delle linee di fuga in una materia complessa: la scrittura di codici informatici, l’agire quotidiano di legioni di coder e hacker di vario tipo. Il mondo digitale, la tecnocultura pervasiva, la matrice – tutte immagini di gran moda – devono molto a questi individui manipolatori di codici, ovvero coloro che detengono il potere tecnico di intervenire direttamente sui processi di creazione dei codici che modellano le realtà.

Tuttavia, malgrado il loro enorme potere, raramente queste persone se ne fanno carico, difficilmente lo gestiscono, in pochi prendono posizioni dal punto di vista politico, o per meglio dire al di fuori dei mondi digitali. Quanto meno, si tratta di una minoranza.

I media di massa ripropongono regolarmente, e in maniera concertata, banalizzazioni ridicole dell’attivismo digitale. Questo atteggiamento di sufficienza e spettacolarizzazione rende difficile una cartografia anche solo vagamente oggettiva di quanto si muove nelle reti: i pirati informatici sono uno spauracchio utile al pensiero totale, non importa di quale colore politico, e funzionale alle risposte preconfezionate. Per correre ai ripari, per difendersi da questa malvagia incarnazione piratesca, sono stati costituiti corpi polizieschi internazionali con giurisdizione anche virtuale, lanciate campagne sulla sicurezza informatica, sequestrate migliaia di macchine in tutto il mondo, arrestate centinaia di persone; i superstati, dagli USA all’UE, fanno a gara nell’approvare corpus di leggi liberticide (DMCA, Digital Millennium Copyright Act, del 1998; EUCD, European Union Copyright Directive, del 2001) , che finalmente permettano loro di prendere il controllo delle reti. Un effetto lampante di questa politica è stata la criminalizzazione, avvenuta nell’indifferenza generale, di larghe fasce della popolazione che ha accesso alle reti: tutti quelli che scaricano materiali protetti da copyright, audio, video, testi, qualsiasi cosa, al momento compiono un illecito penale, alla faccia della riproducibilità tecnica! Questi tentativi, in parte già riusciti, di imbrigliare, irreggimentare, castrare la libertà creativa delle reti informatiche riguardano dunque la vita concreta di tutti. Tutti usano carte di credito e bancomat, cellulari e computer, pochi si preoccupano della costante chiusura di orizzonti, delle continue limitazioni delle libertà sulle reti, che guarda caso corrispondono a tagli drastici delle libertà civili più tradizionalmente intese: più controlli ovunque, più paranoia per tutti, più polizia, più armi: naturalmente, è nel vostro interesse, per la vostra sicurezza. I mondi digitali, di cui la rete di internet è la manifestazione più nota, non sono completamente altro dai mondi reali: sono semplicemente differenti, spesso in movimento più rapido e convulso, ma sostanzialmente riflettono e a volte anticipano i movimenti che si verificano fuori da essi. Perciò la mitizzazione manichea dell’hacker come individuo pericoloso che si muove in un territorio senza leggi (magari!), onnipotente quasi fosse un essere distribuito con terminali senzienti in ogni capo del mondo, in rapporto con oscure comunità di supertecnici, è un’immagine decisamente troppo nostalgica di soluzioni facili, desiderosa di stabilire confini chiari e netti, di separare i buoni dai cattivi. Il mito fortemente modellato dalla cultura cyberpunk rappresentava gli hacker come individui pericolosamente interfacciati con la realtà, tra il virtuale e il reale, con il giubbotto di pelle e gli occhiali a specchio. Effettivamente, gli hacker creano codici e aprono nuove strade nella tecnosfera, ma non hanno gli occhiali a specchio, forse non li hanno mai avuti. Hanno una passione per i codici, per le macchine, un desiderio di capire come funzionano e di comunicarlo agli altri. Creano comunità molto stratificate e spesso fortemente gerarchizzate, dove la meritocrazia ha un ruolo centrale, ma difficilmente parlano “al mondo”: nel complesso, da un punto di vista meramente politico, sono neutri, non schierati, non attivi. Una delle ragioni di questa disaffezione per la vita reale, la real life schematicamente contrapposta alla virtual life (campo d’azione e di costruzione della propria individualità per un numero sempre più imponente di individui) risiede probabilmente nelle caratteristiche stesse dei mondi e dei linguaggi digitali. Il cyberspazio, la matrice digitale, già di per sé è fatta di codice. La scrittura e l’uso di codici informatici può dunque sembrare del tutto autoreferenziale, interna all’espansione della matrice stessa, senza relazioni con la realtà non–digitale. La realtà esterna, invece, non è completamente codificata, perdurano enormi sacche che resistono a qualsiasi tentativo di codifica. Mentre scrivere codice crea di fatto, e completamente, la realtà della matrice, e si configura in quanto azione omogenea alla natura stessa della matrice, usare una lingua naturale non crea tutta la realtà, è un’azione eterogenea, perché crea solo il mondo condiviso di chi comprende quel linguaggio . Inoltre, se paragoniamo i linguaggi informatici alle lingue naturali, l’aspetto che più ci preme sottolineare è la radicale differenza di finalità e funzionalità: una lingua naturale viene codificata a posteriori, viene scritta una grammatica da esperti dopo che la lingua viene utilizzata; invece un linguaggio digitale viene pensato per raggiungere un determinato scopo: per scrivere interfacce grafiche, per mettere in relazione altri programmi scritti in linguaggi differenti, per programmare una macchina a basso livello, ecc. La finalità è dettata a priori, anche se ovviamente si possono aggiungere usi e funzionalità impreviste. Finalità e funzionalità: il fine di un codice è che funzioni. Poi ognuno lo userà a modo suo. L’attitudine hacker è tutta qui: ho un bisogno o desiderio, applico la mia passione per soddisfarlo, scrivo un codice che funzioni a quel fine. Banalizzando: ho un computer, un microfono, un telefono, desidero parlare con un amico lontano, scrivo un codice, un programma che metta in relazione gli elementi tecnologici per raggiungere il mio scopo. La politica diventa personale al massimo grado: uso il mio potere tecnico per raggiungere i miei obiettivi in maniera funzionale.
Abbiamo imparato molto dallo stile hacker. Abbiamo imparato a giocare e a condividere, a immaginare nuovi possibili usi della tecnologia. Vorremmo dare qualcosa in cambio, influenzare come siamo stati influenzati: condividere un immaginario radicale. Smetterla una buona volta con la strategia della resistenza e della difesa di minuscoli interstizi di libertà, di piccole aree autogestite a fatica connesse tra loro, sempre pronti a cambiare aria se la repressione alza il tiro; abbandonare le strategie di pura sopravvivenza, le economie di autosussistenza, e cominciare ad ampliare le aree di libertà. La creazione di TAZ è solo il primo passo, ma non basta: deve diffondersi come un virus, moltiplicarsi in una miriade di progetti. I mezzi ci sono: la tecnica è nelle mani di chi la sa usare, e adesso è il momento di promuovere un uso sovversivo della tecnica. Negli anni Ottanta gli hacker venivano processati e sbattuti in prima pagina (e, spesso, cooptati subito dopo dai servizi più o meno segreti per spiegare a ottusi funzionari come usare le macchine) perché osavano penetrare nei sistemi delle grandi compagnie telefoniche americane. Era ridicolo, visto che chiunque sapesse leggere e usare i manuali tecnici delle compagnie, non certo segreti, avrebbe potuto fare altrettanto. Ma diffondere le conoscenze e le informazioni, nell’età in cui l’informazione è il bene più prezioso, l’unica vera moneta di scambio e fonte di potere, è già di per sé sovversivo. Oggi gli hacker detengono senz’altro il potere tecnico per costruirsi le loro reti telefoniche o reti di qualsiasi altro tipo, senza chiedere il permesso a nessuno, negoziando invece con i soggetti interessati i possibili scenari. Dovrebbero solo sporcarsi di più le mani con la vita reale, prendere la parola e imparare a parlare anche a persone che non hanno la loro competenza tecnica. Non è facile, non è automatico, non ci sono ricette di sicuro successo. L’incomprensione è sempre dietro l’angolo, la traduzione può risultare oscura e inefficace. Però si può giocare, e metterci tutto il proprio desiderio. Non sarà comunque fatica sprecata.

Questo libro, quindi, è un’azione diretta, un modo di chiamarsi in causa, di non restare a guardare il divenire vorticoso della tecnocultura, ma di metterci su le mani. È stato scritto a otto mani, attraverso strumenti di open publishing in rete , da una comunità scrivente che si è costituita in diversi mesi di lavoro comune; ma, in pratica, sono molte di più le mani che sono intervenute: ognuno con le sue competenze, abbiamo dovuto confrontarci e cercare di capirci fra di noi, mediare e trovare linguaggi condivisi, prima di poter dire qualcosa. Questo libro non è un libro perché continua sulla rete, nei percorsi che si sono aperti man mano che ci guardavamo intorno, chiedendo a chi ne sa di più, ma magari non ha tempo, voglia e capacità di raccontare agli altri. Questo libro è un’autoproduzione di un autore collettivo che ha coagulato intorno a sé degli interessi precisi, una volontà chiara di immergersi nella realtà, consapevoli dei propri mezzi tecnici. Fra tante azioni, ci sono state anche parecchie riflessioni. In primo luogo, su chi siamo e cosa vogliamo, sui nostri desideri. Sul modo di relazionarci fra di noi, nei confronti degli altri, delle comunità di cui facciamo parte. Sul primato del processo, del metodo, rispetto ai risultati. Nessuna indagine sociologica, economica, linguistica che pretenda d’essere oggettiva: ma tutto questo, e molto altro insieme, in un divenire fluido. Ogni capitolo può essere letto a sé: si susseguono una discussione sull’uso dei codici (Introduzione), una panoramica storica dell’emergere dei concetti di Free Software e Open Source (cap. I), una disamina delle licenze software (cap. II), un’analisi delle comunità digitali (cap. III), un approfondimento sulle relazioni tra Open Source e mercato (cap. IV), una focalizzazione sulle possibilità d’azione degli invidi (cap V). Un altro livello di lettura, più immediato rispetto alla narrazione, è quello grafico; infatti, sono state inserite delle infografiche, cioè oggetti grafici, mappe di vettori senza alcuna legenda che evidenziano le connessioni fra le comunità digitali e fanno il punto sulle relazioni tra Free Software e Open Source, per facilitare il posizionamento del lettore nel discorso del testo. In rete, oltre al libro completo liberamente scaricabile, rilasciato sotto una licenza Creative Commons , si trovano sitografie, link e approfondimenti vari aperti a contributi futuri. In questo libro tanto eterogeneo vi sono molte carenze e molti punti di forza; nessuno sviluppato a fondo: questo perché la teorizzazione perfetta, le teorie piene e lisce, senza alcun punto debole, perdono subito contatto con la realtà e si traducono in pratiche catastrofiche, autoritarie, non condivise. Preferiamo abbozzare, rilasciare una versione alfa, e attendere contributi. Questo libro è pensato come un software modulare: abbiamo dei desideri da realizzare, vorremmo far funzionare e implementare le nostre reti, quindi abbiamo pensato a scrivere delle librerie, dei pezzi che possano essere riutilizzati in altri contesti, dei brani di codice che possano servire da collegamento tra diversi tipi di comunità e soggetti eterogenei: hacker, tecnici, attivisti, utenti a qualsiasi livello delle tecnologie informatiche. L’ordito e la trama della tela che possiamo tessere sono molto più complesse di quanto non possa restituire un libro, ma un libro è quello che ci serve per iniziare a costruire. Questa struttura modulare è funzionale inoltre all’intervento esterno: chiunque può scrivere la sua implementazione, proporre migliorie, ideare e realizzare un suo plugin che svolga funzioni specifiche.
Annoveriamo tra i punti deboli, quelli che possono facilmente essere attaccati, almeno tre linee di fuga che ci piacerebbe seguire, o meglio che qualcuno seguisse. Innanzitutto, un discorso sul mondo del lavoro. Elaborare pratiche di autoformazione e la condivisione delle competenze come modello di autodifesa digitale, esportabile in qualsiasi campo anche al di fuori dell’ambito qui affrontato: prospettive di biosindacalizzazione dei soggetti precari, per i quali le tattiche del welfare tradizionale (e di qualsiasi presunto welfare “alternativo”) sono del tutto obsolete e inappropriate. In secondo luogo, le tematiche legate all’ergonomia: a partire dal software e dal rapporto uomo–macchina, progettare oggetti, servizi, ambienti di vita e di lavoro, affinché rispettino i limiti dell’uomo e ne potenzino le capacità operative, con la massima attenzione al confort, all’efficacia, alla sicurezza. Buone pratiche per vivere con un certo stile, per usare le tecnologie e non esserne usati. Infine, immaginare nuovi modi per attraversare i livelli delle realtà in cui viviamo, nuove declinazioni collettive e individuali, che prendano forma, diventino azioni concrete e di quando in quando riescano, attraverso pratiche di scrittura comunitarie, a fermare il tempo e il flusso dell’azione, a teorizzare, a individuare nuove vie di fuga, per spingere al massimo i propri desideri.

Una precisazione: in questo libro si accenna appena a Microsoft, perché sparare sulla croce rossa è troppo facile e persino noioso. Le posizioni monopolistiche e di chiusura pressoché totale dei codici del colosso di Redmond non possono nemmeno essere prese in considerazione, tanto sono lontane dallo spirito hacker. Se addirittura l’antitrust americano si accorge che qualcosa non va, non ci vuole un grande intuito. È più interessante prendere in considerazione il sottile slittamento di significato che ha portato la pratica del Free Software a diventare più semplicemente Open Source, un movimento che sostituisce la pratica della libertà con una meno imbarazzante “apertura”: come ricompensa, viene appoggiato da governi e da corporation come IBM e Sun, insomma da poteri forti, che ora si fanno improvvisamente paladini dello sviluppo dei metodi di condivisione e apertura elaborati nelle comunità digitali. Perché non avvalersi della collaborazione appassionata di persone a cui piace il lavoro che fanno, invece che costringere persone poco motivate a produrre merci che non gli interessano? Il controllo morbido, l’insistenza sulla creatività e sul lavoro d’équipe, le pacche sulle spalle, le gratificazioni sono da tempo patrimonio delle tecniche aziendali: si realizzano prodotti migliori in minor tempo e a costi inferiori. Per molti settori, persino i militari preferiscono usare lo sviluppo aperto, piuttosto che la chiusura, per perfezionare i loro strumenti di dominio e sterminio. Vogliamo allora mettere il dito sulla piaga, evidenziare le incapacità politiche del Free Software, l’insufficienza della GPL, la necessità dell’estensione del copyleft e insieme l’ipocrisia, molto redditizia in tutti i sensi (ma che nonostante tutto ha dato una scossa al monopolio Microsoft), che ha portato al successo del termine Open Source.

Infine: se questo libro vi darà delle risposte e lo chiuderete colmi di sicurezze e gratificazioni, avremo fallito. Speriamo che questo libro vi deluda: siamo certi che non sia abbastanza e perciò speriamo che vi spinga a dire la vostra, ad agire in prima persona, magari a prendervi uno spazio di elaborazione e scrittura collettiva, usando e migliorando gli strumenti che qui abbiamo testato. Questi strumenti e molti altri sono a disposizione, fra l’altro, presso il server Ippolita (www.ippolita.net), che incidentalmente è anche l’autrice di questo libro. Solo così il meccanismo della delega, almeno per una volta, sarà accantonato: confidiamo nell’assunzione diretta di responsabilità, per la creazione di dinamiche impensate di autogestione.

1. Alcuni approfondimenti, in italiano: EUCD http://www.softwarelibero.it/progetti/eucd/ (cache); DMCA http://www.annozero.org/nuovo/pages.php?page=Sklyarov+DMCA (cache)
2 . Il discorso qui accennato è ovviamente assai più complesso. La realtà è idiota, nel senso etimologico del termine di proprio, privato, particolare; questo aspetto è assolutamente alieno alle codifiche totalizzanti che rendono invece la matrice digitale una sequenza, per quanto gigantesca, di impulsi discreti, di zeri e di uno.
3. Matthew Arnison, L’open publishing è la stessa cosa del software libero, Indymedia FAQ #23, http://italy.indymedia.org/news/2002/07/64459.php (cache). Lo strumento principale che abbiamo usato è un wiki, un software collaborativi per scrivere, che potete trovare qui: www.ippolita.net
4. In particolare abbiamo scelto una licenza Creative Commons copyleft di tipo by–nc–sa 2.0, ovvero: “Tu sei libero: di distribuire, comunicare al pubblico, rappresentare o esporre in pubblico l’opera; di creare opere derivate. Alle seguenti condizioni: by: Attribuzione. Devi riconoscere la paternità dell’opera all’autore originario. Nc: Non commerciale. Non puoi utilizzare quest’opera per scopi commerciali. Sa: Condividi sotto la stessa licenza. Se alteri, trasformi o sviluppi quest’opera, puoi distribuire l’opera risultante solo per mezzo di una licenza identica a questa. Maggiori informazioni: http://www.creativecommons.it (cache)

INTRODUZIONE
Codici, metodi, tattiche e amenità varie

In questo libro si parla spesso di codici. Un codice è un insieme di regole che permette la conversione di una porzione di informazione (una lettera, una parola, una frase) in un’altra forma di rappresentazione, non necessariamente dello stesso tipo. Una lingua naturale, come l’italiano, è un codice, in quanto è composta da segni arbitrari che, combinati con altri segni dello stesso tipo, costituiscono un sistema di segni complesso, ovvero un codice. La lingua quindi può essere considerata un codice in quanto essa mette in relazione un universo di significanti e l’insieme dei significati di quella lingua stessa.
Allo stesso modo, nel contesto informatico, un codice mette in relazione le proprietà di un particolare linguaggio (C, php, perl, ecc.), composto di segni arbitrari, con i significati che l’utilizzatore del linguaggio desidera esprimere. La scrittura di codice, l’atto del codare (la codifica, da to code), in questo senso, è un’operazione di passaggio da un significante a un significato. La decodifica, viceversa, sarà il passaggio dal significato al significante1. Nella stesura e nella composizione del libro, operazioni successive di codifica e decodifica, abbiamo cercato di tenere presente e di rendere questo continuo trapasso, questo movimento.


1. Canguri dimensionali

Saltando in una tensione continua da un piano all’altro, dalla rete al reale, dall’individuale al comunitario, e ritorno, è inevitabile porsi in un’ottica di traduzione, e dunque di tradimento.
Finora con la stesura di questo libro, che non riusciamo a considerare concluso, abbiamo saltato in continuazione da dimensioni virtuali a dimensioni reali: siamo passati dalle microrealtà individuali (l’hacker solitario che scrive il suo codice) ad ampliamenti comunitari (la condivisione delle conoscenze), a proiezioni globali (l’uso di licenze che rilasciano un permesso, che concedono un determinato potere a un certo utente riguardo a una precisa porzione di codice).
Naturalmente, questi stessi esempi sono semplificazioni: i flussi si possono analizzare solo perdendo qualcosa della loro complessità.
Questi passaggi non solo non sono affatto scontati, perché richiedono una certa elasticità e molteplicità di punti di vista, ma sono evidentemente anche del tutto soggettivi e situati.
Abbiamo cercato di fotografare una realtà complessa e in divenire vorticoso, il mondo digitale, con il suo pullulare di comunità, individui, codici, nelle relazioni con il mondo commerciale. Questa fotografia, è quasi inutile dirlo, non poteva che risultare mossa, dunque un tradimento dell’oggettività che esiste (forse) là fuori da qualche parte, ma che le parole e i codici possono appena abbozzare.


2. Analisi pure e oggettive – Desideri e linguaggi

I livelli di analisi macrosociale scadono presto in costruzioni di poco o nullo interesse perché perdono di vista la materialità degli individui che danno vita allo spazio sociale, sia esso digitale o reale (quanto poi i livelli siano mescolati, è un ulteriore elemento di complessità).
Se consideriamo invece i singoli individui, e i loro desideri, si svela l’ovvia parzialità del proprio punto di vista. Tradurre nella realtà ciò che sta in rete è un’azione impura (per fortuna), cioè di tradimento, perché ogni traduzione si confronta con la complessità del non–detto (i codici non sono mai equivalenti anche se sembrano dire la stessa cosa): allo stesso modo, un codice ben scritto non si esaurisce nella purezza delle sue routine e subroutine, e nemmeno nello stile di indentazione o nella ritmica dei commenti al codice stesso. Il codice contiene in sé la possibilità di un uso, che può tradursi in un accrescimento, in una perdita, comunque in una trasformazione di ciò che già esiste.


3. Codici

Limitiamo momentaneamente il termine codice all’ambito informatico.

Un codice non utilizzato è monco, o forse inutile. La questione dell’utilità o meno di un codice è decisamente mal posta, spinge un parallelo con i linguaggi naturali eccessivamente forzato2. Prescindiamo dall’utilizzo che ne viene fatto (o non ne viene fatto): possiamo dire che non esistono codici inutili.
Esistono sicuramente codici monchi, non finiti, abbandonati, non utilizzati, accatastati in qualche cimitero di sorgenti sparso da qualche parte nella rete. Non si scrive codice, non si coda mai iniziando dallo zero assoluto, ma studiando i codici sorgenti di altri prima di scrivere il proprio. Dunque accade che codici ritenuti monchi da chi li ha scritti tornino a essere sfogliati, studiati, utilizzati, implementati.
Il codice può essere riciclato e riutilizzato, studiato, ammirato, smembrato e ricomposto oppure semplicemente tenuto da qualche parte per i posteri o per il piacere di avere un archivio.
Infine, non è nemmeno detto che sia possibile analizzare l’utilità o meno di un codice. Ovvero, i codici possono essere scritti per il «grande pubblico», per gli «addetti ai lavori», per il «programmatore stesso». Non per forza acquistano valore nella loro compilazione ed esecuzione, ma a volte addirittura si attualizzano solamente e completamente nella loro semplice scrittura. Per non parlare dei codici che sono scritti per essere il più possibile non utilizzati oppure semplicemente per il gusto di essere i primi a riuscire in una qualche impresa.
L’utente medio può apprezzare un programma per gestire la posta elettronica come Thunderbird, «pochi eletti» o «addetti ai lavori» apprezzano Blender per la grafica 3d, alcuni coder sorridono all’idea delle librerie dmalloc. Esistono poi linguaggi di programmazione esoterici, il cui fine non è tanto l’usabilità quanto il desiderio di esplorare i limiti delle macchine, o dimostrare un concetto, o giocare semplicemente con le possibilità del codice ed espanderle3.


4. Virtù(alità) del codice

L’uso di un codice, in ogni caso, apre la strada al salto dimensionale: è virtuale, sì, e proprio per questo non è solo virtuale. Un codice usato non è solo codice: entra in relazione con la realtà, e la realtà non è fatta solo di codici e parole, ma anche di cose che proprio non ne vogliono sapere di rientrare nella semplicità del nostro codice, di essere fedelmente rispecchiate, di adattarsi. Anzi di solito accade che la realtà, le cose, trasformino il codice e viceversa: l’esempio più banale è l’uscita di nuove release dei programmi che impone l’aggiornamento del proprio sistema quindi un impiego di tempo da parte di individui in carne e ossa, e a volte un mutamento nella struttura stessa delle macchine (più potenti, più performanti).
L’uso, la prassi, fra l’altro, trascina con sé l’etica. L’etica è la responsabilità degli esseri umani, la loro capacità relazionale, e non solo. Non si tratta affatto di riscoprire il grande valore aggiunto dell’umanità, la centralità delle scelte dell’uomo, che si costruisce nel quadro di un umanesimo in fondo malinconico: ah, certo, le macchine servono, risparmiano fatica, ma come si stava bene senza! L’etica riguarda anche le macchine, e non solo gli esseri umani. perché, che piaccia o meno, attualmente esistono macchine che agiscono, che si relazionano con altre macchine, con altri esseri più o meno viventi e senzienti. Esistono ad esempio macchine armate (dagli esseri umani, certo) che decidono della vita di esseri animati4. Vi sono passaggi continui tra i mondi. Mancano, perché devono essere create, parole adeguate (che non siano solo codici) per esprimere questi passaggi, dal virtuale al reale e ritorno, e dal collettivo all’individuale e ritorno, dove non c’è mai un punto di partenza né di arrivo, ma il percorso dipende dal punto di entrata. Insomma, «realtà» non significa affatto «ambito d’azione degli esseri umani, mondo umano dei corpi e delle cose», né «virtuale» sta per «mondo delle macchine, delle menti e degli oggetti immateriali». Questa dicotomia fra reale e virtuale, cavallo di battaglia di una certa vulgata pseudoscientifica, è del tutto inappropriata, oltre che orfana di altre ben più potenti e storicamente influenti separazioni (fra corpo e mente, fra mondo delle idee e mondo della materia, ecc.)5. Immaginare possibili hacking della realtà non c’entra nulla con una ridefinizione e riproposizione dell’ambito reale come «migliore perché umano e umano dunque migliore» per intervenire.
Le cose sono assai più complesse, i mondi variamente mescolati, e osservare i punti di passaggio fra di essi implica delle identità sempre in gioco e negoziabili. Volerle fissare e legare a un livello a ogni costo è una semplificazione indebita. Chi vuole definire un livello «migliore», un approccio «migliore», di solito, vuole semplicemente mantenere lo status quo perché gli fa comodo, ovvero, per mantenere il potere che ha.
L’umanesimo che ribadisce allarmato che il progresso tecnico mette da parte l’essere umano ed esalta le macchine, inumane e dunque cattive – come se invece gli esseri umani fossero «di natura buoni» – è solo la faccia luddista della tecnofilia repressiva che immagina di scaricare le menti umane in software puri. Sogni, incubi di tecnofascisti puritani, che si troverebbero a loro agio in un universo disincarnato: come se potessero darsi software senza hardware o senza wetware. Entrambe le posizioni hanno scarse capacità di cambiare, ma soprattutto di immaginare e desiderare.


5. Visioni differenti

Capacità di immaginare e desiderare: in questo senso, ogni capitolo può essere letto come un tentativo di far vedere ciò che non si vede tra le «semplici» righe di un codice. Ad esempio, nel capitolo dedicato alle licenze software appare evidente che, adottando il «permesso d’autore» (copyleft), le licenze come la gpl (General Public Licence) funzionano con un meccanismo virale e cercano così di garantire ed estendere la libertà del codice. Un codice rilasciato sotto gpl è libero, e tutti i codici che da esso derivano saranno altrettanto liberi; queste licenze quindi cercano di esplicitare ciò che non si può esplicitare, far vedere la libertà intrinseca in quel codice. Tuttavia questo non è sufficiente per rendere oggettivo e ineliminabile un uso etico del software.
Infatti l’etica, come la libertà, non si può garantire per decreto o per licenza, dando o togliendo permessi, ma solo confrontando, traducendo, adattando. Lì sta il tradimento, nell’uso, che può essere diverso e lontano (volendo anche di mercato; per quanto la licenza gpl non neghi affatto la possibilità di profitto commerciale) rispetto a quello che si era previsto scrivendo quel codice. È come dire a un autore (che scriva romanzi, saggi, poesie o software a questo punto non è cruciale): io nel tuo testo ho letto questo. L’autore si potrà anche risentire, sostenendo di aver avuto tutt’altro intento, ma l’interpretazione non può che essere libera. La libertà dell’utente in questo caso sta nella possibilità di uso (etica) che gli viene concessa. Dare una libertà significa anche prendersela.
Scrivere uno stesso concetto con il linguaggio del liberismo, dello strutturalismo, del postmodernismo, del marxismo, dell’avanguardismo (o di qualunque altro –ismo, maggiore o minore che sia), ecc. non è metodologicamente diverso dallo scrivere un codice che in linea di principio compie le stesse cose in un linguaggio procedurale come il C, oppure con uno script perl, o php, o in un linguaggio a oggetti, o in un linguaggio macchina assembly, ecc. Si tratta di visioni differenti di una medesima, molteplice realtà. Ognuno ha familiarità e competenza per un certo linguaggio e non per altri, quindi formulerà il proprio approccio nel linguaggio che padroneggia meglio o che ritiene più adatto.
Un programma può essere scritto in un linguaggio qualsiasi, in linea di principio, sempre che i mezzi linguistici siano adeguati ai fini che si intende raggiungere e dunque: una sequenza di boot all’accensione di un computer, il cui fine è bootare, sarà probabilmente scritta in assembly, un sito web dinamico, il cui fine è servire pagine web agli utenti che interagiscono e le richiedono, potrà essere scritto ad esempio in php+mysql6, e così via.

Tuttavia alcune cose si possono scrivere solo con certi linguaggi, o meglio, la maggior parte delle idee che un programmatore desidera realizzare si possono codare con un linguaggio adeguato al target di utenti che si intende raggiungere7.

Dunque, la scelta del codice, o dei codici, utilizzati non è indifferente.


6. Traduzioni e poteri: modelli chiusi,
modelli aperti, modelli free: liberi.

Tradurre significa inoltre mescolare le carte in tavola. Significa mettere a confronto linguaggi spesso del tutto eterogenei che descrivono (codificano) la stessa realtà e cercare di trovare ciò che non quadra, l’errore, il bug, che può anche essere un elemento di nuova forza e spinta a migliorare linguaggi e codici.
Ovviamente, considerato quanto abbiamo detto poco sopra, tradurre significa posizionarsi in un luogo di potere dal quale si dà la parola a un certo linguaggio e in un certo modo. Tradurre è contraddittorio perché significa dare a chi non conosce quella lingua o quel codice la possibilità di accedere a un determinato significato, ma nello stesso tempo forzare il significato ad adattarsi al proprio particolare punto di vista. Significa prendersi la responsabilità della fiducia, affermando: fidati di me, anche se non conosci questa lingua, io ti posso spiegare. Nel caso della scrittura di codice vi sono ulteriori passaggi che rendono ancora più indispensabile un investimento di fiducia nella traduzione proposta, perché l’utente medio «legge» il codice già «tradotto» dall’interfaccia grafica8.
Ma sarebbe ipocrita fingere che i codici possano davvero spiegarsi da soli, per quanti manuali, howto e tutorial (o dizionari e prontuari) si scrivano: anzi, ogni manuale in più è un nuovo punto di vista, una nuova operazione di posizionamento in cui chi scrive per spiegare domanda la fiducia a chi ascolta la spiegazione9.
Il codice si spiega quando qualcuno prende coraggio e dice: secondo me funziona così, l’ho scritto (oppure l’ho debuggato, migliorato, ecc.) e credo che questo sia l’uso migliore che se ne possa fare. Se questo codice è proprietà privata, o puro oggetto di scambio commerciale, nessuno può in teoria spiegarci meglio, modificando e migliorando il codice stesso, come stiano le cose. In questo senso, possiamo dire che un software close, è nella stragrande maggioranza dei casi un’operazione di posizionamento assoluta, in cui qualcuno si arroga il diritto di spiegarci come stiano le cose, riducendole a un solo punto di vista, il suo, che generalmente non è affatto disinteressato, visto che il codice l’ha scritto per far soldi e basta.
Il software proprietario, ipocritamente, riduce le possibilità e afferma: le cose stanno così, proprio così, nessun privilegio, nessun luogo di potere, solo la pura e semplice verità. Non è una visione differente, è una visione totalizzante che richiede fiducia cieca da parte dell’utente senza dare in cambio l’accesso agli strumenti per interagire e implementare quella traduzione, quel particolare punto di vista.
Per rendere ancora più saldo questo monopolio interpretativo, il software close si avvale di minacce, ricatti e repressioni: bisogna aspettare il prossimo rilascio del programma se ci sono dei bug, ma se ci azzardiamo a metterci su le mani rischiamo denunce civili e penali. Ma ci sono anche strategie più morbide di controllo e persino sfruttamento degli utenti: per esempio, si può contribuire allo sviluppo di applicazioni close facendo betatesting, ovvero testando versioni non ancora stabili (beta version) e comunicando le proprie difficoltà e impressioni d’uso alle aziende produttrici; oppure inviare segnalazioni d’errore quando qualcosa non funziona. In cambio, potremo acquistare una nuova versione migliorata grazie ai nostri suggerimenti!
Adottare un modello open, o meglio free, libero, significa invece senz’altro affermare la propria posizione, scrivere il proprio codice, ma dare la possibilità ad altri di spiegarlo, nella maniera più condivisa possibile. Poi sta alla comunità che recepisce il codice trovare nuovi usi, interpretazioni e interazioni, nuove spiegazioni, modificare e tradurre, creare. Ma senza nascondersi dietro una presunta trasparenza del codice che hai scritto.
Se il codice si può usare, in un modo qualsiasi, anche smontandolo a pezzi (e non solo accettando passivamente le condizioni stabilite una volta per tutte da chi ha scritto la licenza), la trasparenza è meglio lasciarla a chi è davvero convinto che un giorno, quando il mitico Progresso del libero mercato avrà fatto il suo corso, chiunque schiacciando un bottone farà la cosa giusta e sarà libero. I codici non rispecchiano fedelmente e in maniera trasparente la realtà: sono traduzioni imperfette, punti di vista e prese di posizione parziali.
L’uso del codice implica l’etica, un certo stile, un certo codice di comportamento; la libertà d’uso implica l’imprevisto, e la continua rinegoziazione di ciò che significa «fare la cosa giusta» con quel pezzetto di codice. In ogni caso, fiducia negli altri e nelle capacità di condivisione degli esseri umani, nelle loro capacità d’interazione con le macchine (che non si costruiscono da sole – non ancora, almeno), nella loro capacità di conoscere, comprendere: nella possibilità di cambiare, e divenire Altro.
Questa fiducia non è per nulla incondizionata, anzi: non è fiducia nell’Uomo, nella Macchina, nella Ragione, ma più semplicemente in alcuni individui che si sentono affini, comunità di riferimento, situazioni in cui si è a proprio agio e che procurano piacere. Fiducia in alcune macchine che si ritengono migliori di altre, o che stimolano maggiormente il proprio senso estetico. Nessuna grande idea quindi, nessuna verità da svelare, nessuna bandiera da sventolare: al contrario, molte idee, molti individui, molte verità, molte etichette, raggruppamenti, comunità, sempre in divenire.
Tra questi soggetti e oggetti vogliamo stabilire delle relazioni, e non si tratta di volare basso, perché per quanto piccole, temporanee, revocabili, queste aperture di fiducia possono creare livelli di complessità enormi.

Note all’introduzione
1. In realtà la questione è assai più complessa, sia per quanto riguarda la lingua naturale, sia nel caso dei linguaggi informatici. Sitografia: CODICI e LINGUAGGI.
2. Infatti, avrebbe poco senso paragonare l’uso, nel 2005, di una lingua arcaica e desueta ad esempio la scrittura cuneiforme sumerica, con l’uso di codici informatici «antichi». Basti pensare a quanti usano i codici di mplayer 0.1, Linux 0.01, xchat 0.1 ecc. Non ha senso definirli codici monchi o inutili.
3. Linguaggi di programmazione esoterici: http://en.wikipedia.org/wiki/Esoteric_programming_language
4. L’espressione più compiuta dell’incubo delle macchine armate è probabilmente il film Il Dottor Stranamore, ovvero come imparai a non preoccuparmi e ad amare la bomba di Stanley Kubrick, Gb, 1964. Dati alcuni input iniziali, le macchine scatenano l’apocalisse nucleare. E, se non fosse per la pervicacia di alcuni esseri umani nel raggiungimento degli obiettivi di distruzione, nell’adempimento militaresco degli ordini ricevuti, potrebbero essere fermate! Per un’analisi più recente si veda: Manuel De Landa, La guerra nell’era delle macchine intelligenti, Feltrinelli, Milano, 1996 (ed. or. War in the Age of Intelligent Machines, Zone Books, New York, 1991). Sicuramente la biocenosi contemporanea è un continuum di interazioni e sinergie caotiche fra esseri di specie diverse, tra i quali le macchine svolgono una funzione non secondaria.
5. In particolare, si vedano i paradigmi dell’ia nella sua formulazione forte (non a caso, ispirata da oltre mezzo secolo di ricerca militare). Si tratta in un certo senso di una rivisitazione tecnofila del platonico mondo delle idee, trasformato in un mondo di software in cui finalmente i corpi non saranno più il carcere di gigantesche menti inumane. Si veda Naief Yehya, Homo Cyborg, p. 141 ssg., Elèuthera, Milano, 2005.
6. Non tutto si può scrivere con ogni linguaggio perché ogni linguaggio ha una sua finalità. Il C è stato ideato per scrivere a medio livello sistemi operativi, php è stato fatto per il web, l’assembly e stato scritto perché era un po’ più semplice del linguaggio macchina in codice binario. Ovviamente poi ci sono linguaggi particolarmente fortunati da essersi accaparrati altre fette di utilizzatori. Non credo che quando nel 1974 Dennis Ritchie ha rilasciato il primo compilatore C si immaginasse che oggi io programmo applicazioni grafiche...
7. Ad esempio, si può benissimo scrivere un window manager in perl, ma lo userebbero quattro persone e tutti e quattro perlisti esperti. Se faccio un portale web in C, lo faccio semplicemente per esibire i miei attributi (senza considerare che aumenterei esponenzialmente la possibilità di essere attaccabile).
8. Vedi nota 1. Un codice informatico, a seconda del linguaggio in cui è scritto, subisce passaggi radicalmente diversi. I linguaggi informatici si dividono in tre tipologie principali: linguaggi interpretati, linguaggi compilati, linguaggi macchina. Sitografia: CODICI e LINGUAGGI.
9. Un percorso di approfondimento a proposito della nozione di verità, della necessità di stringere patti di fiducia e di «sospensione dell’incredulità» (si veda in proposito Samuel T. Coleridge, «suspension of disbelief»), al fine di comprendere le traduzioni e il rispecchiamento del reale da parte di un linguaggio, prende le mosse senz’altro da Friedrich Nietzsche, Su Verità e menzogna in senso extramorale, Roma, Newton Compton, 1981 (ed or. Über Wahrheit und Lüge im aussermoralischen Sinn, 1873).

I
Storie informatiche

1. In principio era Unix , ma lo sapevano in pochi

Agli inizi degli anni Novanta la Free Software Foundation (FSF) distribuiva un sistema operativo derivato da Unix, ma libero, gratuito, stabile e soprattutto (ancora) poco famoso: GNU/Linux. Il panorama digitale di quegli anni, lato utente e piccole medie imprese, era scandito dal lancio sul mercato dei processori Intel e dalle release (1) di MS–DOS e, successivamente, di Windows.
Il computer, la scatola magica della rivoluzione informatica, era appena diventato un fenomeno di massa(2) e la gente veniva indottrinata sullo standard di accessibilità economica dei Personal Computer. (Un Computer per tutti! Un PC, un Computer Personale!)
Le nuove leve del digitale non conoscevano altri sistemi operativi oltre a quelli di casa Microsoft, i programmi erano piccoli e a pagamento, ma anche facilmente copiabili su floppy disc e distribuiti quindi di mano in mano.
I nuovi programmatori nati sui PC lavoravano per lo più in BASIC e pascal, pochissimi in assembly (3). Nascevano i virus, i giochi grafici, la computer music e le riviste di settore. GNU/Linux non era conosciuto, così come si ignorava la possibilità, e persino l’utilità, di avere i codici sorgente di un applicativo. Semplicemente, i programmi venivano crackati. L’aspetto commerciale del mondo digitale era dato per scontato da chiunque perché quasi nessuno sapeva cosa si celava all’altro lato di questa rivoluzione. In realtà, se consideriamo che la condivisione del codice è nata insieme all’informatica, piuttosto che di origini del Free Software dovremmo parlare di origini del Software Close o software proprietario.
Erano interessati al Free Software accademici, informatici consapevoli o programmatori con collegamenti a internet che si sarebbero diffusi presso l’utenza non specializzata solo 5–10 anni più tardi. Questi personaggi, insieme a tutti coloro che sviluppavano applicativi su piattaforma Unix, rappresentavano i principali depositari del termine hacker: colui che scrive codice per passione, lo migliora, lo condivide e aiuta chi ha problemi nell’utilizzarlo (4) .
Il termine hacker ha un ampio spettro semantico e sicuramente acquisterà nuove accezioni in futuro. Non è dunque errato sostenere che gli hacker esistevano anche su piattaforma PC legati per lo più al movimento cyberpunk della seconda metà degli anni Ottanta. Qualcuno usava Linux, ma pochissimi avevano contatti con le comunità virtuali di sviluppo software, utilizzando per lo più le BBS (Bullettin Board System(5) come strumento di incontro e confronto. I particolare, i gruppi che nascono in Europa in quegli anni sono orientati alla sperimentazione tecnica, come il mitico Chaos Computer Club di Amburgo(6) , ma spesso sono anche più spiccatamente luoghi di elaborazione politica e culturale, che di fatto c’entrano molto poco con il computer hacking, come l’italiano Decoder(7) o l’olandese Hacktic (8) , fino alla rete europea ECN (European Counter Network) (9) . Questi gruppi cercano nelle nuove tecnologie degli strumenti di comunicazione per gruppi di affinità sociale e/o ludica, per esperimenti di partecipazione pubblica e politica alla vita delle comunità reali; il mondo della rete è percepito come una frontiera di libertà nella quale rielaborare sconfitte e vittorie della controcultura underground (10) . Un momento cruciale, di forte aggegazione delle culture hacker, fu la tre giorni di Amsterdam Icata 89 (11) . In quell’occasione Lee Felsestein, il “papà” dei Personal Computer, che già negli anni Settanta aveva fondato il Community Memory Project e poco dopo l’Homebrew Computer Club, portò l’esperienza della Bay Area: il confronto con i gruppi americani diventava sempre più serrato, si elaborava con entusiasmo l’etica hacker.

Negli Stati Uniti, la novità nell’approccio della FSF risiedeva soprattutto nel taglio politico col quale esigeva l’accesso al codice sorgente. Mentre si diffondevano programmi crackati, la FSF insisteva sulla necessità politica di rilasciare software libero all’origine. Del resto, fino alla fine degli anni Settanta, quando il mercato del software non si era ancora affermato (il mercato era praticamente limitato all’hardware, e i produttori facevano a gara a distribuire software gratuitamente, pur di vendere le macchine), negli ambiti universitari o laboratoriali possedere i codici degli applicativi in uso rappresentava la base per l’evoluzione stessa dell’informatica; nessuno avrebbe rivendicato diritti sulla propria opera se non in termini professionali di riconoscimento dei meriti e dei contributi individuali. La protezione e la chiusura dei codici era dunque un fenomeno del tutto “nuovo”, e da combattere con determinazione.
La cultura digitale dell’epoca traeva le proprie origini dalla ricerca scientifica condivisa e dall’eccellenza accademica statunitense (ovvero da strutture come il MIT o l’Università di Berkeley); di qui vengono mutuate le successive codifiche, regole ed abitudini sociali all’interno dei network di sviluppo tecnologico, trasformandosi in quella cultura comunitaria virtuale che ha gettato le basi per l’approdo di un’intera società nella rete globale.

Il metronomo storico di questa cultura e delle evoluzioni che seguirono è il sistema operativo Unix (12) , l’ispiratore di GNU/Linux. L’introduzione dei sistemi operativi rese i programmi sempre più portabili: lo stesso sistema operativo veniva offerto dal produttore di diversi modelli di hardware. Unix nasce alla fine degli anni Sessanta nei laboratori Bell presso l’AT&T, società telefonica americana, da programmatori che lo avevano pensato e scritto nel tempo libero. Per quanto semplice, questo sistema conteneva innovazioni tecniche o implementazioni che l’hanno reso immortale: il linguaggio con cui è stato programmato, il C; un nuovo file system (13) e una nuova struttura dei file e delle directory; un’integrazione con l’ambiente di sviluppo che i sistemi operativi commerciali di uso domestico/individuale non erano ancora in grado di offrire (in realtà non esistevano affatto!).
Una famosa causa antitrust contro la AT&T vietò alla società di entrare nel settore dell’informatica. Unix venne allora distribuito a un prezzo simbolico a buona parte delle istituzioni universitarie, le quali si ritrovarono ad avere una piattaforma comune, completa di codice sorgente, ma senza alcun supporto da parte del produttore. Si creò spontaneamente una rete di collaborazioni attorno al codice di questo sistema operativo, coordinata dall’Università di Berkeley (che avrebbe in seguito sviluppato la versione BSD (14) di Unix).
Personaggi chiave dell’evoluzione informatica (da Vinton Cerf, a Richard Stallman, fino a Tim–Barnes Lee, insieme a molti altri) hanno sperimentato con grande autonomia nel periodo tra gli anni Settanta e Ottanta dando vita ai principali protocolli di comunicazione di rete (SMTP – invio di posta elettronica, FTP – trasferimento di file in rete, HTTP – trasferimento di ipertesti), ai linguaggi di programmazione ancor oggi fra i più utilizzati, come il C, e alla suite di protocolli di rete TCP/IP.

L’etica hacker, nata dalla spinta congiunta dei movimenti libertari dell’america negli anni Settanta e dall’ottimismo scientifico delle élite accademiche (15) , costituiva l’energia di cui si nutrivano i laboratori e gli studenti universitari crescendo nel brodo di coltura di un Sistema Operativo aperto, Unix, vivificato da uno strumento appena nato: internet.
Il potere politico derivato dalle conoscenze tecniche, unito al metodo della collaborazione paritetica, forniva la libertà necessaria a uno sviluppo dal ritmo incalzante; strumenti quali mailing list e chat line cominciavano a diffondersi anche nei primi gruppi non puramente tecnici, ma affascinati da questo nuovo paradigma comunicativo.
Nel frattempo, la suddivisione della AT&T in 26 società, le cosiddette BabyBell?, favorì l’uso di logiche biecamente commerciali nella distribuzione dello Unix. AT&T chiuse il codice e iniziò a distribuirlo solo compilato, innalzando notevolmente i costi delle licenze e impedendo la pratica delle patch. Nel 1982 iniziò la storia delle diverse versioni commerciali di Unix, legate ai singoli produttori di hardware, che, differenziando anche solo di poco la propria versione, riuscivano a legare a sé i clienti acquisiti, in quanto programmi scritti per una specifica versione di Unix non funzionavano solitamente su versioni concorrenti. Unix, senza una copertura legale, si modellava quindi secondo le esigenze delle comunità di ricerca, creando sistemi spesso non compatibili fra loro: nascevano BSD, Solaris, IRIX (16) e altri sistemi operativi di cui alcuni sono tutt’ora utilizzati. Sulla scia di questo esempio, le università e i laboratori di ricerca cominciarono regolamentare l’accesso ai codici e adottarono manovre di riservatezza e chiusura, facendo sottoscrivere ai coder accordi di non divulgazione (17) che sostanzialmente li espropriavano delle loro creazioni; in questo modo gran parte della filosofia hacker iniziò a perdere di valore.

Lo standard POSIX (18) , con il primo rilascio nel 1988, fu la conseguenza naturale della nascita di diversi Unix: per far comunicare fra loro diverse versioni del sistema vennero stese regole abbastanza ferree su cosa poteva e doveva essere un sistema operativo per definirsi Unix. L’operazione di standardizzazione fu compiuta in gran parte dalla IEEE (19) , un ente relativamente neutrale (se si tralasciano le operazioni di lobbying, assolutamente comuni negli Stati Uniti), che non privilegiò nessuno dei concorrenti Unix proprietari; in questo modo fu sostanzialmente raggiunto l’intento di fornire soltanto linee guida per rendere portabili gli applicativi tra le versioni e le varie implementazioni.

L’informatica stava uscendo dalle università, anche se l’informatica di massa era ancora ben lontana; con l’abbattimento dei costi dell’hardware molti neofiti si avvicinavano alle tecnologie grazie ai PC. Paradossalmente, da una situazione di scambio e libera circolazione dei saperi nei laboratori di ricerca, l’epoca d’oro degli hacker del MIT negli anni Sessanta, con l’espansione delle tecnologie digitali la direzione sembrava ormai tracciata: si andava verso la chiusura dei codici e la mera commercializzazione, il cracking stava diventando più diffuso dell’hacking. In attesa del boom internet negli anni Novanta, le comunità di sviluppo costituirono la riserva di caccia delle softwarehouse per assoldare coder, gente che scrivesse programmi commerciali, abbandonando di conseguenza lo sviluppo dei sistemi aperti (ai quali comunque molti coder continuarono a dedicarsi nel tempo libero).
Nessun privato poteva acquistare un PDP–11 della DEC, una macchina su cui giravano gli Unix, ma i PC IBM 8088, tecnicamente molto inferiori, erano compatibili col portafoglio della gente. Sui PC IBM 8088 e successivi girava un sistema operativo molto primitivo, se confrontato allo Unix System V commercializzato dall’AT&T, l’MS–DOS. Questo limitato e quindi semplice sistema operativo era della Microsoft, all’epoca piccola softwarehouse con appena due dipendenti e veniva fornito assieme al BASIC, linguaggio di programmazione implementato da Bill Gates e Paul Allen. L’MS–DOS era basato sul DOS, un sistema operativo compatibile con CP/M (20), l’86–DOS, subito acquistato dall’ex hacker e neo imprenditore Gates.
E mentre l’informatica diventava accessibile anche a chi desiderava un network unito per affinità sociali e culturali non solo informatiche, all’interno delle prime comunità di hacker molto stava cambiando. Negli anni Ottanta ormai da tempo le università avevano partner commerciali: per questa ragione ritenevano ragionevole bloccare la condivisione di codice tra laboratori e a utilizzare pratiche di controllo sullo sviluppo dei programmi.


2. E venne il Free Software

Fu in questo periodo che Stallman intraprese la sua battaglia politica. Abbandonati i laboratori di intelligenza artificiale del MIT, si dedicò a scrivere codice per un sistema operativo libero, avviando nel 1984 il progetto GNU (GNU’s Not Unix, un acronimo ricorsivo in stile hacker): “L’obiettivo principale di GNU era essere software libero. Anche se GNU non avesse avuto alcun vantaggio tecnico su UNIX, avrebbe avuto sia un vantaggio sociale, permettendo agli utenti di cooperare, sia un vantaggio etico, rispettando la loro libertà.”. Nel 1985 fondò la Free Software Foundation (FSF), un’organizzazione senza fini di lucro per lo sviluppo e la distribuzione di software libero: i software del progetto GNU (molti scritti da Stallman stesso, come il compilatore gcc e l’editor di testo Emacs) sarebbero stati rilasciati sotto la General Public License (GPL), licenza scritta da Stallman che rese de facto un applicativo libero, accessibile a tutti, modificabile e distribuibile in qualsiasi modo, purché accompagnato da codice sorgente. Approfondiremo il fondamentale discorso sulle licenze nel cap. II.
Con la diffusione di massa dei PC e di internet, il progetto GNU si fece conoscere; si creò una nicchia di utenti attivi, convinti e motivati. Si formava quindi una comunità indipendente dal nascente mercato del software e animata da precise finalità politiche: obiettivo principale della battaglia era la libertà d’espressione in campo digitale.
Nel combattere la strategia di penetrazione socioeconomica del close software, Stallman ipotizzò un sistema operativo basato su Unix, ma in ogni suo aspetto libero. Coniando il termine Free Software per definire gli applicativi liberi di essere scambiati, modificati e distribuiti, diede inizio a una campagna contro i brevetti, ma soprattutto contro il copyright, sostenendo l’uso del cosiddetto copyleft, il permesso d’autore: nessun diritto riservato (21) . In breve, il copyleft ribalta il copyright. In teoria, il livello massimo della libertà con cui può essere distribuito il software è quello che corrisponde alla denominazione di “pubblico dominio” (public domain), che da molti anni viene spesso adottata nella comunità degli informatici. Il problema è che un prodotto software di pubblico dominio può anche essere utilizzato per la realizzazione di software proprietario, così come è avvenuto anche per molti programmi liberi, che essendo distribuiti con licenze permissive (ad esempio BSD) sono stati trasformati in prodotti chiusi e proprietari. Stallman non ritenne opportuno rendere GNU di pubblico dominio, anche se quella soluzione avrebbe consentito la massima diffusione del prodotto: un programma completamente di pubblico dominio avrebbe rischiato di estinguersi, limitandosi a un’entusiasmante esperienza creativa, una volta che le sue varianti fossero state utilizzate per un uso proprietario. In tal modo le relazioni cooperative si sarebbero spezzate, oscurando anche il valore insito nel prodotto iniziale, in quanto l’ultima versione aggiornata avrebbe avuto molte più probabilità di diffondersi, vanificando tutto il lavoro precedente. Il copyleft invece rende inalienabili e virali le libertà del Free Software. Molti programmatori aderirono al progetto e allo sviluppo dei software di Stallman, scrivendone di nuovi o rilasciando i propri sotto licenza GPL.
Si definiva così la GNU Economy: uno spostamento dell’interesse economico dal prodotto (software) al servizio (assistenza). I programmatori furono messi nella condizione di modificare un loro programma per specifiche esigenze commerciali, e quindi divennero in grado di vendere una copertura di servizio difficile da ottenere per un software acquistato a scatola chiusa. Parecchi anni più tardi la new economy (22) non ha fatto altro che appropriarsi di questo e di molti altri aspetti dello sviluppo libero. Parte del fallimento della new economy è da attribuirsi sicuramente alla banalità con la quale ha utilizzato queste intuizioni senza alcuna cognizione di causa, come se si trattasse di una semplice strategia per conquistare nuovi mercati e non di un movimento essenzialmente politico. Infatti bisogna ricordare che le posizioni della FSF fin dall’inizio erano tese alla promozione della libera circolazione dei saperi e, attraverso la centralità dell’assistenza, alla liberazione dei programmatori dalla noia frustrante della routine lavorativa imposta dalla committenza, invece che dal proprio desiderio di creare nuovi strumenti.
Dopo 10 anni di lavoro, agli inizi del 1990, la comunità GNU aveva quasi ultimato il suo sistema operativo. Buoni compilatori, interfacce grafiche, editor di testi, giochi, software di rete, tutto ciò che esisteva per un sistema Unix degli anni Ottanta era disponibile anche nel lungo elenco degli applicativi GNU.
Ma non esiste un sistema operativo se non esiste il kernel. Il kernel (23) è il motore software per ogni computer ed è ciò che distingue un sistema operativo da un’altro. La FSF tentò per anni e senza alcun successo di scrivere questo ultimo fondamentale elemento.
Molteplici le ragioni del fallimento del kernel HURD (24) , l’elemento software mancante alla GNU per creare un sistema operativo completo: Stallman accusa l’architettura modulare scelta, palesemente troppo complessa da gestire e tuttavia già troppo sviluppata per decidere di accantonarla; altri invece considerano responsabili i programmatori a causa dell’approccio gerarchico imposto alla comunità scrivente (coder, debuggers, ecc.).
Qualunque siano le cause di questa sconfitta, la storia volle che un giovane studente finlandese, Linus Torvalds, risolvesse la situazione con risultati che andarono ben al di là del cuore del sistema operativo. Nell’agosto del 1991 Linus iniziò la scrittura di un nuovo kernel a partire dai sorgenti di Minix, un sistema operativo che Andrew S. Tannenbaum aveva concepito a scopo didattico, con una vera e propria chiamata alla armi sui principali newsgroup di programmazione. In due anni formò una comunità che con veloci rilasci di nuove versioni, un’ampia cooperazione e la totale apertura delle informazioni consentì di testare estensivamente il codice.
Mentre Stallman si affannava sul kernel HURD inutilmente, Linus aveva spontaneamente dimostrato che per ottenere una performance migliore, quando si è svincolati da istituzioni premianti (le università che gratificano attraverso lauree e titoli di riconscimento i ricercatori, oppure le aziende che offrono gratifiche monetarie, ecc.), è necessaria un’adesione a un complesso di valori capaci di coniugare il coinvolgimento comunitario e la passione tecnica.
Pubblicare i codici sorgenti prima ancora che l’applicativo fosse terminato, chiedendo immediatamente un feedback ai propri pari, agli individui che si ritengono in grado di comprendere e collaborare a qualsiasi livello, rappresentava per la FSF un processo nuovo e non privo di rischi, ma ebbe un successo tale da venire assunto collettivamente sotto il nome di metodo “bazar” (25) , termine coniato da Eric S. Raymond, uno degli ex sviluppatori GNU, per sottolineare l’aspetto di scambio quasi caotico dello sviluppo.
Con l’ingresso della metodologia “bazar” usata per il kernel Linux, la comunità assumeva una configurazione completamente diversa. Al ruolo degli sviluppatori si affiancava quello di una miriade di funzioni periferiche con finalità di testing, documentazione, traduzione. Non occorreva più essere un mago del codice per diventare parte di una comunità perché ogni aspetto era stato reso pubblico e trasversale. Anche il singolo utente poteva sapere come stava procedendo il progetto e contribuire con test e suggerimenti.
Il bazar di Torvalds aveva segnato il passaggio definitivo degli hacker dal luogo chiuso degli atenei e dei network di soli sviluppatori, allo spazio sconfinato della rete di internet – soprattutto, uno spazio misto e spurio, in cui la contaminazione fra reale e virtuale diventa la norma e non l’eccezione .
In questo nuovo contesto la produzione di applicativi si apriva alla cooperazione di centinaia di potenziali partecipanti attivi. L’immagine di un centro pulsante di sviluppo a cui si può collaborare in maniera marginale, derivata in ultima analisi dal mito dello scienziato chiuso nel suo laboratorio, viene spazzata via dal modello bazar. Le reti favoriscono la deterritorializzazione dello sviluppo, per cui un luogo fisico univoco, il laboratorio, non è più indispensabile: il lavoro deterritorializzato delle periferie, che producevano feedback a tutti i livelli (dalla documentazione al debug) si muoveva con lo stesso ritmo del cuore dello sviluppo (d’altra parte nemmeno gli sviluppatori codavano in luoghi vicini, certo non tutti insieme nello stesso laboratorio) e non ci volle molto perché lo stesso metodo reticolare venisse esportato in nuovi progetti comunitari.
In brevissimo tempo si materializzarono comunità autonome per specifiche esigenze. Sono del 1995 i progetti Apache, uno dei server web più utilizzati; PHP, un linguaggio per web dinamico e The Gimp, il programma di manipolazione di immagini della GNU. I principali desktop GNU/Linux, KDE e Gnome, nascono rispettivamente nel 1996 e nel 1997.

Fu infatti la grafica a rendere Linux così attraente ai non tecnici. Il porting del window server X fu sicuramente un duplice successo: senza un ambiente grafico il nuovo sistema operativo non avrebbe mai avuto un’ampia diffusione e il server X sarebbe rimasto confinato sui sistemi Unix.
Con l’uscita delle prime distribuzioni , si affermò subito Linux come nome del sistema operativo. I software della FSF erano largamente in uso ma non sembravano più avere particolare importanza politica: il ruolo della FSF veniva relegato a una battaglia passata e in parte vinta, almeno dal punto di vista della diffusione dei modelli aperti. La libertà passava in secondo piano.
Stallman dovette spesso ribadire che il nome corretto del nuovo sistema operativo era GNU/Linux e non Linux, poichè questo è solo il nome del kernel, una delle tante parti essenziali di un sistema completo – in particolare l’unico che la FSF non era riuscita a creare. Ancora oggi questo errore concettuale viene commesso da molti .
Il 1998 fu l’anno del cambiamento. Per molti membri della comunità, GNU/Linux era pronto per diffondersi sui sistemi desktop fino ad allora monopolizzati da Microsoft (e da Apple, per quanto riguarda una ristretta ma fedele nicchia di utenti). Dopo la coniazione del termine Open Source e attraverso la pubblicazione di alcuni testi firmati da Raymond, O’really e altri guru, si ottennero i primi risultati. In quello stesso anno la Netscape, famosa softwarehouse in concorrenza con il browser Explorer, rilasciò i codici sorgenti del proprio applicativo insieme a un nuovo nome: Mozilla.


3. E finalmente solo soldi! Nasce l’Open Source.

Il termine Open Source nasce quindi per ragioni prettamente economiche. In inglese la parola free ha il duplice significato di libero e di gratuito. Tutte le comunità di sviluppo erano favorevoli alla libertà del codice, ma per alcuni free poteva essere inteso come gratuito ed essere quindi un ostacolo per la vendita. La soluzione a questo problema, non solo linguistico, fu la creazione ex novo di un termine più neutro politicamente e più appetibile per le imprese. Tuttavia, si trattava di un problema apparente: bisogna infatti notare che il progetto GNU, finanziato dalla FSF, non aveva particolari preclusioni al mercato. I software venivano sviluppati da programmatori appositamente stipendiati. Furono sviluppate anche altre componenti di sistema UNIX, alle quali si aggiunsero le applicazioni più disparate e anche giochi. Questi programmi furono distribuiti per circa 150$, una cifra che, oltre a coprire i costi di riproduzione (il costo delle memorie di masse era centinaia di volte superiore a quello attuale per MB di memoria), garantiva un servizio di supporto al cliente. L’unica condizione era che tutte le modifiche eventualmente effettuate su tali programmi venissero notificate agli sviluppatori. Il termine Open Source non ha dunque altra finalità se non far passare in secondo piano le libertà propugnate dalla FSF.
La FSF non riconobbe mai il nuovo nome perché avrebbe dato adito all’ambigua idea secondo cui il software può essere accessibile, ma contemporaneamente non libero: semplicemente, aperto.
Dal 1998 in avanti, spinti dall’esempio di Netscape/Mozilla, alcuni progetti Open Source iniziano a modificare il metodo di scrittura aperta, eliminando la relazione di dipendenza con gli altri progetti e strutturando le comunità in gerarchie sempre più verticali. Questi cambiamenti di metodo implicano mutamenti radicali anche nel software finale (vedremo come nei prossimi capitoli). Banalizzando, lo status del software passa da creazione, frutto di un investimento creativo da parte di un coder o di un’intera comunità di sviluppo, a prodotto, generato per soddisfare una richiesta di mercato (solitamente un bisogno indotto).
Fino ad allora le relazioni “a piramide” costituivano una parte minima della gestione dei rapporti interni alle comunità (per quanto la pratica della meritocrazia comporti nella pratica dei rapporti gerarchici). Dopo la svolta di Mozilla la gerarchizzazione diviene una condizione imprescindibile per quei progetti che si rendono completamente autonomi dalle modalità di condivisione maturate nel periodo precedente.

Dopo la decisione della Netscape, molte altre aziende cercarono di stabilire legami con il mondo Open Source: IBM, SUN, Novell e HP sono di certo le più note. Quando il software libero comincia a essere chiamato più semplicemente e facilmente software aperto, in modo da entrare a pieno regime nella catena commerciale, la nostra storia inizia.


1 . È significativo notare che “release”, in inglese, significa in prima istanza “scarcerazione, liberazione” e solo in seguito ha assunto l’accezione di “rilascio” di una versione di codice o di una determinata caratteristica hardware. Tradurre quindi “release software” con “scarcerazione” o “liberazione di codice” non è affatto esagerato.
2 . Naturalmente parliamo di masse di utenti nel cosiddetto “primo mondo”; gran parte della popolazione rimane comunque ancora oggi esclusa dal paradigma digitale; si veda http://www.digital–divide.it
3 . BASIC: http://it.wikipedia.org/wiki/Basic (cache); pascal: http://it.wikipedia.org/wiki/Pascal_%28linguaggio%29 (cache); assembly: http://it.wikipedia.org/wiki/Assembly (cache)
4 . Più precisamente, si tratta di “computer hacking”; per una storia del termine hacker, si veda Sam Williams, Codice Libero – Richard Stallman e la crociata per il software libero, Apogeo, 2003, disponibile in rete all’indirizzo http://www.apogeonline.com/ebooks/2003/90045/CodiceLibero/ (cache)
5 . http://it.wikipedia.org/wiki/BBS (cache)
6 . Il CCC nasce nel 1981, poi formalizzato nel 1984, per iniziativa di Wau Holland e S. Wernery http://www.ccc.de/ (cache)
7 . http://www.decoder.it (cache)
8 . http://www.hacktic.nl (cache)
9 . Il progetto ECN, di cui si discuteva dal 1988, coinvolgeva fin dall’inizio gruppi italiani, inglesi, tedeschi e olandesi; nasce di fatto nel 1990, in particolare in diversi nodi italiani. Si veda http://www.ecn.org (cache)
10 . SITOGRAFIA: La cultura CYBERPUNK. Si veda il portale http://www.dvara.net/HK/ e l’ipertesto http://www.decoder.it/archivio/cybcult/index.htm (cache)
11 . Dichiarazione iniziale: http://www.dvara.net/HK/icata89bis.asp (cache); dichiarazione finale: http://www.strano.net/wd/cr/cr001.htm (cache)
12 . SITOGRAFIA: UNIX. http://it.wikipedia.org/wiki/UNIX (cache); repository: ftp://ftp.autistici.org/Unix–mirror (primi codici dello Unix). Si veda anche la storia di Unix nel Corso Base di Unix, documentazione dei corsi di Unix del LOA Hacklab di Milano http://www.autistici.org/loa/web/doc/corsounix.pdf
13 . In informatica, un file system è, informalmente, un meccanismo con il quale i file sono immagazzinati e organizzati su un dispositivo di archiviazione, come un hard disk o un CD–ROM. Più formalmente, un file system è l’insieme dei tipi di dati astratti necessari per la memorizzazione, l’organizzazione gerarchica, la manipolazione, la navigazione, l’accesso e la lettura dei dati .
14 . BSD è un sistema operativo libero largamente utilizzato da sistemisti, hacker e programmatori. Ispirato anch’esso dallo Unix, come GNU/Linux, rispetta lo standard POSIX. http://www.ibsd.org;
15 . Basti pensare all’influenza di personaggi come Marvin Minsky o John MacCarthy?, teorici e fautori dell’intelligenza artificiale, entrambi professori al MIT a partire dagli anni Sessanta. Si veda: Steven Levy, Hackers, ShaKe?, Milano, 1996. Elaborazioni molto più note al grande pubblico, come quelle di Pekka Himanem e dello stesso Linus Torvalds, derivano da analisi assai più tarde e sostanzialmente debitrici all’esplosione del fenomeno Linux: si veda Pekka Himanem (con Linus Torvalds e Manuel Castells), L’etica Hacker e lo spirito dell’età dell’informazione, Feltrinelli, Milano, 2001.
16 . Solaris: http://www.sun.com/software/solaris/ (cache); Irix: http://freeware.sgi.com/ (cache)
17 . Gli accordi di non divulgazione sono sempre più diffusi in ogni settore; si veda NDA: Non-Disclosure? Agreement http://en.wikipedia.org/wiki/Non-disclosure_agreement (cache)
SITOGRAFIA: Lo standard POSIX e la guerra tra IBM, SUN, Novell e altre società che commercializzavano Unix. Vedi anche http://www.lilik.it/~mirko/gapil/gapilsu8.html (cache)
IEEE: Institute of Electrical and Electronics Engineers, http://www.ieee.org (cache)
18 . Control Program for Microcomputers, sistema operativo sviluppato nel 1975 dalla Digital Research. Nel 1979 Tim Paterson, della Seattle Computer Product scrisse l’86-DOS. Contemporaneamente l’IBM stava pensando di costruire un personal computer. Fu allora che Bill Gates, presidente della Microsoft, si incontrò con l’IBM (la quale nello stesso momento contattò anche la Digital Research). L’IBM non raggiunse un accordo con la Digital Research, mentre la Microsoft acquistò i diritti per la distribuzione dell’86-DOS di Tim Paterson e trattò con successo con IBM: fu così che l’MS-DOS (leggi 86-DOS) divenne il sistema operativo del nuovo personal computer IBM. Ecco che finalmente, nell’aprile del 1981 l’IBM annunciò l’uscita del personal computer IBM (che adottava la CPU Intel 8088), con il sistema PC-DOS (MS-DOS con alcuni programmi aggiuntivi).
19 . La definizione originale di copyleft, formulata nel 1988, si trova all’indirizzo http://www.gnu.org/copyleft/copyleft.html (cache); in italiano, una buona introduzione è http://www.wumingfoundation.com/italiano/outtakes/copyleft_booklet.htm (cache)l
20 . Non si parla più oggi di new economy, ma sicuramente pratiche come regalare i decoder satellitari (magari grazie a contributi governativi) per poi far pagare i programmi sono applicazioni su vasta scala del principio della vendita dei servizi (le trasmissioni televisive, i servizi legati alla telefonia cellulare, ecc.) piuttosto che dei prodotti. In fondo, l’esplosione stessa dei call–center deriva appunto da una spinta alla vendita di servizi, al customer care, ecc.
21 . Si tratta di un software avente il compito di fornire ai processi in esecuzione sull’elaboratore un accesso sicuro e controllato all’hardware. Dato che possono esserne eseguiti simultaneamente più di uno, il kernel ha anche la responsabilità di assegnare una porzione di tempo–macchina e di accesso all’hardware a ciascun programma (multiplexing).
22 . Il progetto kernel della GNU HURD si basa su una struttura a micro–kernel tanto complessa quanto elegante. A cavallo fra gli anni Ottanta e Novanta furono pubblicati molti scritti sulla progettazione di kernel, tra cui vale la pena citare Andrew S. Tannenbaum (l’inventore di Minix, da cui Linus Torvalds ha sviluppato Linux), Operating Systems: Design and Implementations, Prentice Hall, 1987 (n.e. Modern Operating Systems, Prentice Hall, 2001). La struttura a micro–kernel era definita un’architettura molto più performante rispetto alla monolitica approcciata da Linus Torvalds. SITOGRAFIA: Linux is obsolete. http://www.kde.org/history/Linux_is_obsolete.php (cache)
23 . Eric S. Raymond, The cathedral and the bazar, http://www.catb.org/~esr/writings/cathedral–bazar/ trad. it. La cattedrale e il bazar, http://www.apogeonline.com/openpress/doc/cathedral.html (cache).
24 . Nel passaggio da comunità omogenee (coder GNU, progetti monolitici) a comunità eterogenee (GNU/Linux, progetti distribuiti) i linguaggi si moltiplicano necessariamente e di conseguenza si moltiplicano anche le occasioni di incontro. In questa espansione anche il mercato, e il suo linguaggio, trova spazio e possibilità di sviluppo.
25 . X nasce nei laboratori del MIT come gestore di finestre grafico. Era rilasciato gratuitamente e senza una licenza che limitasse l’utilizzo o che ne regolasse il copyright. SITOGRAFIA: La storia di Xfree.
26 . Una distribuzione (distro) è una raccolta di software scelti e preconfigurati. Le principali usate oggi sono: Debian, Redhat, Suse, Mandrake, Gentoo e alcune altre centinaia.
27 . Curiosa la posizione di Linus a riguardo: sostenne che non tutto il resto del sistema operativo era GNU quindi chiamare GNU/Linux il tutto significava non riconoscere adeguatamente l’apporto di altri applicativi come X.

II
Licenze Politica Mercato

1. Free Software != Open Source

Free Software (1) (Sofware Libero) e Open Source (2) (Sorgente Aperto) sono sintagmi usati spesso come sinonimi per indicare codici o porzioni di codici; rispecchiano tuttavia prospettive radicalmente differenti. Free Software è un termine nato agli inizi degli anni Ottanta per iniziativa di Richard Stallman (vedi cap. i): si riferisce alla libertà dell’utente di usare e migliorare il software. Più precisamente, può essere riassunto in quattro libertà fondamentali:

1) Libertà di eseguire il programma, per qualsiasi scopo.
2) Libertà di studiare come funziona il programma e adattarlo alle proprie necessità. L’accesso al codice sorgente ne è un prerequisito.
3) Libertà di ridistribuire copie in modo da aiutare il prossimo.
4) Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio. L’accesso al codice sorgente ne è un prerequisito.

L’espressione Open Source, invece, nasce alla fine degli anni Novanta, per iniziativa in particolare di Bruce Perens e Eric S. Raymond, che nel 1998 fondano la Open Source Initiative (3) (OSI); si riferisce alla Open Source Definition, a sua volta derivata dalle Debian Free Software Guidelines, ovvero una serie di 10 punti pratici che definiscono quali criteri legali debba soddisfare una licenza per essere considerata effettivamente «libera»: o meglio, con il nuovo termine, Open Source.
È evidente quindi che da una parte il Free Software pone l’accento sulla libertà: come sottolineato nella definizione, «il «Software libero» è una questione di libertà, non di prezzo» (4). Dall’altra parte, l’Open Source si occupa esclusivamente di definire, in una prospettiva totalmente interna alle logiche di mercato, quali siano le modalità migliori per diffondere un prodotto secondo criteri open, cioè aperti. Il Free Software ha un senso che va ben oltre il mercato, pur non escludendolo a priori; l’Open Source esiste, come specificato dai suoi stessi promotori, per adattare un modello preesistente, quello free, al mercato.
Comunità hacker, fsf, Progetto gnu: erano questi i primi soggetti protagonisti di un percorso che dopo aver rilanciato nelle menti e nelle reti l’idea di condivisione, insistendo sul concetto di permesso d’autore (copyleft), avevano messo in crisi l’apparente inattaccabilità della proprietà privata, almeno nella sua applicazione al software.
Negli anni Ottanta e Novanta l’importanza dello sviluppo di software crebbe in maniera esponenziale (mentre in precedenza era l’hardware la componente principale e più costosa di un computer): aumentò di conseguenza l’attenzione delle aziende nei confronti del Free Software, delle comunità hacker e dei suoi metodi. Il mercato di riferimento, infatti, dopo aver gettato le basi per la diffusione del software close (vedi cap. i), vedeva crescere il colosso Microsoft che, attraverso la stipula di contratti commerciali capestro e accorte manovre di lobbying, ha condotto il mercato a una fase sostanzialmente monopolistica (5).
Le implicazioni di questo fenomeno non sono solo tecniche, ma permeano l’etica, la filosofia e necessariamente la sfera del politico, oltre che quella dell’economico. L’avvicinamento del mondo commerciale al mondo delle comunità hacker non poteva infatti non intaccare l’etica che sta alla base del movimento Free Software (6). La radicalità politica del Free Software, questa insistenza sulle libertà, era piuttosto scomoda e controproducente dal punto di vista della sua diffusione al di fuori dall’ambito hobbistico o universitario. Inoltre in inglese era facilmente fraintendibile, per via del doppio significato di «Software Libero» e di «Software Gratuito» (7); a ragione o a torto, il termine Free era visto come fumo negli occhi perché legato a correnti di pensiero poco apprezzate nel mondo aziendale. Troppa «libertà» fa male al «libero» mercato: l’Open Source entra allora in gioco.
Il cambiamento – dapprima lessicale – presupponeva punti di vista e possibili evoluzioni diverse rispetto al periodo precedente: non solo il termine free non piaceva alle aziende che cercavano quote di mercato, ma anche la licenza GPL non era soddisfacente, perché il suo sistema di diffusione virale rischiava di lasciare fuori dall’accelerazione digitale molte imprese, che vedevano nelle comunità hacker uno sbocco naturale delle proprie strategie economiche.
Open Source era un termine che rispondeva perfettamente a queste esigenze: una volta avvicinate le imprese si trattava solo di dimostrare come le logiche organizzative e produttive delle comunità da una parte e il profitto dall’altra potessero andare d’accordo. Diventava così molto semplice ampliare il bacino delle aziende impegnate a entrare nel «fantastico mondo dell’Open Source».
Il nuovo movimento, meno politicizzato e più orientato alle possibilità commerciali di quello che era allora definito Free Software, si impose. Molte le ragioni concomitanti che facilitarono il passaggio concettuale e pratico: lo scossone dovuto alla nascita di Linux; alcuni passaggi a vuoto della FSF, spesso chiusa su posizioni piuttosto ingenue e di nostalgia per un’età dell’oro di condivisione e libertà delle conoscenze; la paralisi delle comunità hacker più radicali (che negli anni Settanta avevano dato luogo a mitici gruppi come L’Homebrew Computer Club nella Bay Area di San Francisco); la potenza intrinseca del movimento Open Source, spalleggiato fin da subito da imprese che avevano subodorato l’affare. Lo scenario politico del mondo hacker veniva modificato rapidamente e profondamente.
Lo strappo si completò con la formulazione di nuove licenze che si ponevano in un concorrenza con la GPL. L’outing di alcune società che rilasciarono il loro codice sorgente, Netscape in primis, rappresentò il contributo decisivo: il Free Software e la sua filosofia, con una forzatura palese ma funzionale, vengono relegate nell’angolo dell’estremismo, dei progetti non sostenibili economicamente; dall’altra parte l’Open Source conquista il mercato anche a livello di credibilità in termini di business.
Nonostante queste differenze palesi, i fraintendimenti sono molti. Proviamo allora a specificare e delimitare meglio termini e concetti. Si può definire l’Open Source come quel metodo di progettazione e produzione (di software, ma non solo) basato sulla condivisione di ogni aspetto e passaggio (tipico delle comunità hacker e del Free Software) che, nell’ottica di sviluppare un prodotto open, accetta al proprio interno componenti e passaggi closed (comunità ristrette e chiuse, in alcuni casi anche software proprietario) per garantire maggiore competitività sul mercato ai propri prodotti. Nulla di troppo differente da quanto le imprese avessero fatto fino ad allora: il lavoro d’équipe e la condivisione di obiettivi comuni non è certo una novità (8).
La differenza tra queste due componenti delle comunità virtuali hacker è comprensibile seguendo le evoluzioni delle licenze che nel tempo hanno cercato di regolare la distribuzione di prodotti Free Software, garantendone da un lato i principi di riproducibilità, modifica, distribuzione e dall’altro cercando, con l’avvento dell’Open Source, di linkarlo più agevolmente al mercato e alle sue regole (9).

Quello sulle licenze è il primo livello di investigazione circa le effettive novità e l’originalità dell’approccio hacker – nel mondo del software ma non solo. Immaginiamo per un attimo una comunità di individui che si definiscono hacker: le licenze d’uso rappresentano il livello più esterno, di relazione verso coloro che non appartengono alla comunità, che per lo più non sono hacker e non condividono un’etica e una storia comune. Quando dalla GPL si passa a licenze formulate esclusivamente per il mercato, ovvero del tutto aliene allo spirito hacker, appare evidente che bisogna scavare molto più a fondo. Useremo allora una sorta di lente d’ingrandimento, passando dalle licenze, alle comunità, fino all’individuo: abbozzare una cartografia di questi tre differenti livelli ci permetterà di delineare possibili vie di fuga dal virtuale al reale, cioè di immaginare nuove possibili ricadute dell’hacking nella realtà.


2. La licenza: che cos’è?

La parola licenza deriva dal latino licentia, da licire «essere lecito»; nell’accezione che ci riguarda, significa: «concessione, da parte di un organo competente, di una determinata autorizzazione; anche, il documento che comprova l’autorizzazione concessa: licenza di esercizio...» (10).
Le licenze infatti specificano una concessione da parte di un soggetto nei confronti di qualcun altro. Nel caso del software «concedono» l’utilizzo del codice alle condizioni stabilite da chi redige la licenza: «licenziare» significa «concedere il potere specificato».
In ambito informatico la licenza è un contratto tra il detentore del copyright e l’utente. Si parla quindi propriamente di «licenza d’uso». La licenza è una sorta di «certificato» che l’autore pone al proprio prodotto per salvaguardarne la sicurezza, la distribuzione e naturalmente rendere noti i propri meriti. Un software rilasciato senza alcun testo che «determini» un utilizzo del prodotto stesso rischierebbe infatti di finire nelle mani di qualcuno che potrebbe arricchirsi indebitamente, farne un uso non etico, non rispettare la volontà del creatore del prodotto.
Le Licenze software, nel loro complesso, rappresentano una cartina di tornasole per misurare l’evoluzione delle comunità hacker e verificare l’impatto della nascita e dello sviluppo del concetto di Open Source.
Ogni movimento ha bisogno di qualcosa che sancisca i passaggi salienti della propria vita: le licenze software hanno spesso segnato qualcosa di più di un cambiamento, coagulando un modus operandi, uno stile, un background culturale e politico.
Le licenze, dalla GPL alle ultime rilasciate, ripercorrono la storia del Free Software e dell’OpenSource in alcuni casi incidendo profondamente su di essa (non solo la GPL, ma anche altre: si pensi solo alla Mozilla Public Licence, mpl11): differenti per specificità e finalità, prendono le mosse da percorsi etici e culturali anche molto eterogenei. Le licenze adottate sottolineano con forza le molte differenze tra le varie comunità ed evidenziano l’intreccio di finalità diverse in un breve lasso di tempo. Gli anni di rilascio delle varie licenze, infatti, tracciano la mappa temporale e concettuale del processo che ha portato all’egemonia del termine Open Source e delle sue pratiche.
Le discussioni in merito alle licenze, sul «permesso», sui «poteri», spaziano ovviamente ben oltre i limiti delle reti informatiche. Innumerevoli le visioni, le note, le caratteristiche riscontrate, gli usi, le preferenze. Nell’ottica di analizzare i rapporti di potere e le evoluzioni dell’Open Source le licenze sono da un lato tentativi di regolamentare qualcosa che fino a quel momento non aveva delle regole, dall’altro veri e propri scatti concettuali da parte di particolari gruppi di «potere» all’interno del mondo delle comunità hacker.
In un racconto Philip K. Dick, già rivisitato dal cinema (12), un ingegnere elettronico ha il compito di carpire i segreti della concorrenza e provvedere a concepire nuovi prodotti tecnologicamente migliori. I suoi datori di lavoro si tutelano a loro modo dalla possibilità che l’ingegnere venga «assoldato» da altre aziende, cancellando al loro dipendente la memoria.
Dick, straordinario nel suo oscuro scrutare (13), percepisce con largo anticipo la nascita di un’economia in cui la «protezione» delle conoscenze sarebbe diventata fondamentale (14) anche a costo di limitare, castrare e distruggere gli individui stessi.
L’economia del xx secolo si è basata sempre più sul concetto di «protezione delle idee» e «proprietà intellettuale»: un miscuglio assurdo di copyright, brevetti, marchi registrati e accordi di segretezza che ha prodotto tra l’altro infinite e costose cause legali. In teoria tutti questi strumenti erano stati approntati per tutelare le creazioni e diffondere meglio le conoscenze; nei fatti si sono sempre rivelati armi a doppio taglio, come del resto le stesse licenze apparse negli ultimi anni, che vanno esattamente in questa direzione: evitare un eccessivo arricchimento economico da parte di chi si impossessa del software, garantendo quindi la libertà del software e allo stesso tempo tutelando l’autore del programma da tentativi di appropriazione (anche a scopi economici) del proprio software. Nel xxi secolo, la cooptazione da parte delle aziende dei metodi di sviluppo free, diventati open, dimostrano in maniera lampante come la «protezione» debba cedere il passo alla libera circolazione dei saperi.


3. Free Software e GPL

Abbiamo visto che la licenza GPL (General Public Licence) nasce dal progetto gnu di Richard Stallmann.
Stallmann si pose il problema di come distribuire il software libero, provando dapprima attraverso un semplice spazio ftp del mit. Questo risolveva il problema della distribuzione, ma non garantiva che il software rimanesse libero. Chiunque infatti in quel momento poteva comprare il software e adottarlo come prodotto della propria azienda, commercializzandolo e appropriandosi dei diritti. Proprio questo era l’inconveniente del public domain che Stallmann e migliaia di coder volevano evitare: la possibilità che il proprio software finisse per essere utilizzato in progetti commerciali e proprietari, o ancor peggio, in progetti eticamente discutibili. Mancava cioè la possibilità per il programmatore di avere delle valide difese rispetto a un uso non solo commerciale, ma anche irresponsabile, del proprio prodotto. Fin dall’inizio quindi il problema di Stallmann non era la «sostenibilità» economica del Free Software (era ovvio, dal suo punto di vista, che il fs fosse migliore, anche commercialmente, del software close), quanto piuttosto la salvaguardia della sua libertà attraverso una sorta di copyright del proprio autore.
Stallmann adottò allora quello che definì permesso d’autore, giocando sul significato della parola copyleft: anziché privatizzare il software, lo rendeva libero, fornendo quindi tutta una serie di garanzie nei confronti dell’autore del software.
Così nasce la GPL (15): l’idea centrale è di dare a chiunque il permesso di eseguire, copiare, modificare e distribuire versioni modificate del programma, ma senza dare la possibilità di aggiungere restrizioni. La GPL è virale perché le libertà di cui è intriso il software sono garantite a chiunque ne abbia una copia e diventano «diritti inalienabili»: il permesso d’autore infatti non sarebbe efficace se anche le versioni modificate del software non fossero libere.
In questo modo Stallmann «garantiva» il creatore del software e la comunità di riferimento stessa, perché ogni lavoro basato sul prodotto originale sarebbe stato sempre disponibile, libero, aperto, per tutta la comunità.
La GPL e Stallmann in quel momento rappresentavano lo stato avanzato dell’etica hacker e il primo vero tentativo di «dichiarare autonoma e replicabile» l’esperienza della condivisione e del superamento del settecentesco copyright, della stupidità del concetto di proprietà intellettuale nel mondo software. Abbiamo visto però che Stallmann, uno dei personaggi chiave della storia del movimento hacker, non riuscì a vincere la sfida tecnologica che si poneva: creare un sistema operativo potente e flessibile come unix, ma libero.
Dopo l’esplosione di Linux, all’inizio degli anni Novanta, apparve chiaro che Stallmann e il suo Free Software non erano più gli unici soggetti in movimento nel mondo delle comunità digitali, anzi: erano considerati improvvisamente quasi arcaici relitti dell’epoca d’oro dell’hacking, surclassati dal successo mondiale di Linux. Ormai il processo di espansione di internet, principale veicolo della diffusione del software, era inarrestabile e contestualmente i limiti e l’agilità con cui la comunità hacker si apriva anche al commerciale venne incarnata anche dalla nascita del termine Open Source. Eppure sappiamo che la GPL stessa non esclude applicazioni commerciali con finalità di business.


4. Open Source e nuove licenze

Nel 1997 Bruce Perens e Eric Raymond, in una conferenza in posta elettronica, sanciscono la definizione di Open Source, per specificare che il termine non significa solo «accesso al codice sorgente», ma si estende a numerosi altri aspetti. Il radicalismo politico del Free Software non era attraente per molte imprese produttrici di software, che tra l’altro temevano di perdere il proprio capitale intellettuale; la Open Source Definition (OSD) cambiava decisamente le carte in tavola.
Alcune precisazioni. Innanzitutto la OSD sottolinea di non prevedere nessuna discriminazione dei settori che possono utilizzare software Open Source: la licenza non proibisce ad alcuno l’uso del programma in uno specifico campo o per un determinato proposito. Nessuno può proibire che il software venga utilizzato per scopi commerciali o scopi non considerati etici. La precisazione degli autori della OSD è piuttosto chiara: il software dev’essere impiegabile allo stesso modo in una clinica che pratichi aborti e in un’organizzazione antiabortista.
A chi fa notare l’incongruenza, o quanto meno, i rischi di tali affermazioni, la risposta è di una sconcertante apoliticità: queste discussioni politiche sono di pertinenza del Congresso degli Stati Uniti, si sostiene, non delle licenze del software. Delega totale. D’altro canto per i fautori dell’Open Source, la GPL, che pure viene consigliata in molti casi, viene considerata con malcelato disprezzo un mero «manifesto politico» (16).
Lo scossone del 1998, quando Netscape rende pubblici i propri codici sorgenti e nasce il progetto Mozilla, è strettamente legato alla questione delle licenze: la mpl, pur essendo approvata dalla OSI come licenza Open Source, specifica che chiunque «è libero di creare un prodotto commerciale utilizzando il codice Mozilla» e proprio nella licenza il primo punto è dedicato a questo aspetto («1.0.1. ‘Commercial Use’ means distribution or otherwise making the Covered Code available to a third party.»).
Il passaggio da Free Software a Open Source è compiuto, non solo a livello semantico e linguistico ma anche a livello di implicazioni commerciali: dalla libertà al primo punto, siamo giunti a mettere il mercato avanti a tutto. Se infatti accettassimo come reale la distinzione operata da Raymond tra «fanatici» e moderati» dell’Open Source, il percorso concettuale apparirebbe lineare: inizialmente il Free Software porta alla ribalta la parte «fanatica» delle comunità hacker, coloro cioè che hanno sempre specificato la libertà del codice senza accettare compromessi commerciali, se non a livello di distribuzione.
La distinzione di Raymond è semplicistica ed è evidentemente sbilanciata a favore dell’Open Source. Egli infatti si pone tra i «moderati» (termine conciliante e sempre buono per chi non vuole apparire scomodo) e definisce gli altri «fanatici»: letteralmente, «ispirati da un dio» o «presi da delirio»: nulla di positivo, in genere. Fanatiche sarebbero, per Raymond, quelle comunità hacker che avevano appoggiato la fsf e il suo percorso e che mal digerivano la piega conciliante con il mercato intrapresa dal movimento Open Source. Lo stesso Raymond, per avvalorare la propria tesi, richiama a sé proprio Linus Torvald: questi, al pari degli estensori della OSD, ha specificato di apprezzare anche l’utilizzo di software proprietario, per compiti specifici, deridendo «gentilmente quegli elementi più puristi e fanatici all’interno della cultura hacker» (17).
La distinzione è quindi più che altro funzionale all’Open Source, non certo oggettiva. La realtà è ben più complessa di quanto un’etichetta possa racchiudere: nella storia del movimento hacker si è assistito alla nascita di un’etica che ha messo in crisi il concetto di proprietà intellettuale, in un’epoca e in un settore, il software, di riproducibilità tecnica totale. Una delle conseguenze maggiori di questa forte politicità, ovvero di questa prassi fortemente orientata e innovativa, è stato l’avvicinamento di alcune comunità ad aziende e imprese che hanno fiutato nei metodi e nello sviluppo di software delle comunità una valida opzione per creare mercato e profitti. Nel prossimo capitolo ci occuperemo di questo incontro tra comunità digitali e mondo commerciale.
Distinguere tra fanatici e moderati significa mettere in un angolo i primi, considerare nel giusto i secondi, mentre naturalmente la questione è più sfumata: Free Software e Open Source, sono queste le due componenti di peso delle comunità hacker, entrambe, e la seconda è un’evoluzione della prima, ma non necessariamente un miglioramento.
La distinzione non tiene inoltre conto del mondo hacker nella sua complessità: esiste infatti una «massa grigia» che possiamo considerare come una parte poco interessata non solo alle implicazioni politiche e filosofiche che il Free Software aveva portato alla luce, ma anche alle stesse implicazione business oriented. Unica esigenza di questa «massa»: poter codare in maniera sicura avendo garantita la GPL e poter praticare quella condivisione connaturata al mondo delle comunità di software libero.
Linux, come del resto la mpl, rappresentavano dunque queste parti delle comunità che vedevano nella GPL solo un mezzo, uno strumento e non una riflessione etica, politica e filosofica applicata al software. Si muovevano fin da subito verso un dimensione di «democraticizzazione» (a fronte del monopolio Microsoft) del mercato del digitale, partendo dal software commerciale, ma comunque libero, e cabotando pericolosamente la zona commerciale non-libero.
L’Open Source sviluppò fin da subito marketing in grado di irretire queste componenti; nello stesso tempo, il movimento Free Software, poco in grado di cogliere immediatamente questi cambiamenti, si trovò presto in grave difficoltà nel proporre soluzioni al passo con i tempi.
In realtà, anche tralasciando divisioni artificiose che quasi mai sono applicabili a una realtà in costante evoluzione, pare invece più fondato e realistico il passaggio concettuale che le imprese sono riuscite a far attecchire all’interno delle comunità: l’Open Source infatti non rappresenta altro che un’assunzione del rischio imprenditoriale da parte tanto dei programmatori, quanto delle aziende. Le licenze nate dopo il 1998 sanciscono questo passaggio.
Una società in crisi può «guarire» passando all’Open Source, perché le licenze (che per definizione cercano di regolare il mercato, non uscendo, in pratica, dal mercato) permettono affidabili recuperi di denaro e competenze in una sana, apparentemente democratica, economia di mercato. In fondo anche la monopolista Microsoft, in un certo senso, si sta muovendo verso l’Open Source (certo non verso il Free Software). Infatti Microsoft ha risposto alla crescente richiesta da parte di Pubbliche Amministrazioni e grosse aziende di poter visionare il codice che utilizzano, varando l’iniziativa denominata Shared source: a pagamento (ma gratuitamente per le Pubbliche Amministrazioni), consente di avere accesso ai sorgenti (18).
Le licenze quindi possono essere definite addirittura «metronomi» del processo di avvicinamento del mondo commerciale all’Open Source: più il legame si faceva stretto, più nascevano licenze in grado di permettere, mantenendo il principio di libertà d’accesso al codice, una collaborazione effettiva tra comunità Open Source e progetti commerciali.

.............Continua Parte 2 >>>>>>>