Codice e società/Capitolo 4/2

4.2 Dagli attori forti all'esperienza

../../Capitolo 4/1 ../../Capitolo 4/3 IncludiIntestazione 10 giugno 2013 75% Tesi universitarie

4.2 Dagli attori forti all'esperienza
Capitolo 4 - 1 Capitolo 4 - 3

Quello che sembra sussistere è una situazione complessa e dialogica dove sussistono contemporaneamente solidarietà meccanica e solidarietà organica, e non un passaggio netto tra una fase e un'altra. Sussistono nello stesso tempo, come abbiamo già visto, anche i rapporti formali: le commesse del Ministero della Difesa USA, ingegneri stipendiati o a contratto, industrie che vendono apparati e via dicendo, e quindi esistono anche i ruoli, ma in mezzo a tutto questo ci sono anche le forme collaborative che Weber (2004) chiama pre-competitive. La pre-competitività esiste in una particolare fase storica solo se consideriamo la produzione di codice slegata da il tutto complesso di relazioni competitive, economiche e politiche, legate alla guerra fredda e al progetto ARPANET‎ ad esempio, dove la competizione è spostata su un piano estremo e globale: quello tra i due blocchi. La produzione di codice, o di software se si preferisce, è possibile solo se esiste un senso, cioè qualcosa che abbia senso automatizzare, e questo senso è dato dalle necessita (quand'anche costruite) che nascono nelle circostanze di un sistema complessivo e complesso.

Da questo primo nucleo pre-competitivo nascono diversi progetti, e l'informatica si espande sulla base di rapporti collaborativi tra soggetti che hanno interessi diversi ma anche competitivi, come le diverse compagnie telefoniche. È come se venisse creato una sorta di spazio altro dove le dure leggi del mercato vengono neutralizzate. Questo spazio protetto ha tuttavia dei costi monetari non indifferenti, ed è “costruito” allo scopo di raggiungere obiettivi altrimenti non raggiungibili nelle normali condizioni di mercato. Esso tuttavia non scompare quando esaurisce i suoi scopi, o meglio, cambiano i protagonisti (i nodi) e con essi le relazioni, ma non il tipo di relazioni.

Una volta costruita questa rete in modo pianificato, quando non viene più alimentata, più che esaurirsi si modifica, si adatta e si autoalimenta con quelle con gli psicologi chiamano “motivazioni intrinseche”, mentre resta la tensione verso la sperimentazione e la ricerca delle università americane, che sono il vero filo conduttore e l'elemento costante fino ai giorni nostri. In sintesi, come abbiamo già evidenziato, questa rete diventa autopoietica1 e autoreferenziale (Luhmann, 2007). La sua chiusura operativa richiede energie esterne, ma una volta raggiunta il sistema sociale che vi è implicato è in grado di persistere e di adeguarsi alle perturbazioni esterne. Una di queste perturbazioni può essere il venir meno delle commesse da parte del Ministero della Difesa con la fine della guerra fredda, ecco allora che escono di scena i contractors dell'industria aerospaziale, le università occupano più spazio e così pure le compagnie telefoniche.

È un sistema autoreferenziale (Luhmann, 1987), in grado di tenere conto di se stesso, ed è autopoietico adattivo, nel senso che i suoi elementi muoiono e rinascono in continuazione. I nuovi elementi (nodi) sostituiscono quelli vecchi, ma con forme diverse. La rete, che attiene alla produzione di codice libero pre-istituzionale, dal punto di vista del tipo di solidarietà meccanica (cfr. cap. 2 p. 24) e dei rapporti pre-competetivi (Weber, 2004) al suo interno, risulta però fortemente istituzionalizzata se, anziché guardare alle relazioni, si guarda ai soggetti (Governo USA, Università, compagnie telefoniche, contractors del dipartimento della difesa USA). Senza una minima ricostruzione storica (che descrive esaustivamente Weber) è difficile cogliere questa ambivalenza. Come può una rete costituita da soggetti governativi, università prestigiose e industrie potenti basarsi su rapporti non di mercato o burocratici, ma sulla collaborazione? Vista come una struttura ER (Entità Relazioni – volendo speculare sulla terminologia informatica), o un network (in senso sociale), la risposta sta nel semplice fatto che i suoi nodi sono fortemente organizzati e istituzionalizzati al loro interno, tenuti assieme da relazioni collaborative.

In pratica, non necessariamente la tipologia dei soggetti caratterizza (o implica) il tipo di network: nodi e relazioni sono entità che hanno caratteristiche tra loro autonome in una certa misura, e ciò che caratterizza il tipo sistema sociale che vi sottende sono le relazioni, più che i nodi.

Open Source Pre Competition 2
www.questionmaps.net
Fig. 2

Abbiamo già visto che questa rete si estende, e non è un fatto così scontato: significa che riesce ad intercettare e assorbire iniziative tecnologiche. Nel 1969 ci troviamo per la prima volta di fronte ad un iniziatore che autonomamente annuncia di aver scritto un sistema operativo funzionante e chiede aiuto a quelli che erano allora gli attori in gioco.

È importante tener presente che la rete si modifica nel tempo – la tipologia dei soggetti coinvolti cambia2 – e anche nello spazio, in quanto si espande. I vari iniziatori nelle diverse epoche (uno dei quali sarà Torvalds) trovano tipi di rete diverse, e questo determinerà la forma istituzionale che assumerà quella tecnologia. In questo momento storico (1969) Ken Thompson, iniziatore di Unix, trova una rete basata su relazioni collaborative, ma ciò che condiziona il destino di Unix sono i nodi fortemente istituzionalizzati. Il suo destino sarà quello delle licenze d'uso e della distribuzione chiusa (compilata) e commerciale. Come spesso accade, ciò che invece ne permette la diffusione in una fase iniziale di Unix, e tra utenti tecnologicamente avanzati, sarà proprio il fatto di essere distribuito come codice libero. Ognuno può adattarlo (“porting” in termini informatici) alle diverse tipologie di computer adattando il codice. Ognuno può scrivere nuovi programmi e nuove funzionalità, che si distribuiscono sempre e comunque sotto forma di codice libero e non di software compilato (scatola nera).

Dobbiamo immaginare un sistema operativo o un programma come la sequenza di operazioni necessarie a svolgere dei compiti che abbiamo descritto nelle note introduttive. La sequenza di operazioni necessarie a confezionare una torta dovrebbe essere valida in qualsiasi cucina. Purtroppo non sempre è così: le cucine sono attrezzate in modo diverso. Per sbucciare le mele, da usare nella torta, si può usare un coltello se non si ha a disposizione uno sbucciamele, ma ciò implica la possibilità di ridefinire le operazioni all'interno della sequenza. Macchine come il PDP, il Vax o [en.wikipedia.org/wiki/Eagle_Computer Eagle] nelle loro varie versioni, sono come cucine diverse. Gli informatici vi diranno che hanno un diverso modo di indirizzamento, che sono a 16 bit piuttosto che 32 e via dicendo.

Fatto sta che un sistema operativo scritto per un tipo di microcomputer non funziona se installato in un altro. Se dovessimo fare in modo che la nostra sequenza di operazioni da eseguire, al fine di produrre una torta di mele, funzioni in qualsiasi cucina dobbiamo aggiungere molti “se”: “se hai lo sbucciamele allora sbuccia la mela con lo sbucciamele, altrimenti sbuccia la mela con un un coltello”.

L'aggiunta di tutti questi “se” è ciò che in termini informatici (molto semplificati) viene chiamato porting. Il porting potrebbe anche sostituire l'operazione da effettuare con il coltello anziché con lo sbucciamele, piuttosto che aggiungere un “se”, ma questo causerebbe la non riusabilità della “ricetta” nella cucina/macchina originaria. Aggiungendo il “se” otterremmo una sequenza più articolata, ma pur sempre unica (universale), di operazioni eseguibili in diversi “ambienti”3.

In questo momento storico troviamo nel mercato più tipi di computer, principalmente la famiglia PDP e VAX, quindi Unix deve essere adattato alle diverse situazioni. Questo è possibile nella misura in cui il codice è libero ed intelligibile. Se non fosse così, non lo si potrebbe adattare, e la nostra sequenza di operazioni da fare per confezionare la torta di mele rimarrebbe relegata alle sole cucine attrezzate allo stesso modo.

Le varie università, in particolare Berkeley, e i vari laboratori di ricerca, aggiungono codice e contribuiscono ad eliminare i difetti, finché si arriva ad un prodotto tecno-scientifico, oltre che complesso, affidabile, stabile e consolidato. I professor Bob Fabbry con i suoi studenti, in particolare, porta avanti le implementazioni maggiori del sistema Unix a codice aperto, che assume il nome di BSD nelle sue varie versioni. Di fatto BSD rappresenta la frontiera del sistema Unix, mentre quello detenuto dalla AT&T acquisisce il codice BSD più avanzato in un secondo momento.

L'autopoiesi del sistema, la sua bassa entropia, la sua adattabilità e quindi capacità di colonizzare nuovi “ambienti”, è proporzionale al grado di apertura e di libertà del codice. Per entropia noi intendiamo lo stesso concetto che usa Luhmann nella sua teoria dei sistemi (1987), però articolato su due livelli. In altri termini, la bassa entropia, intesa come grado di differenziazione interna al sistema socio-tecnico (Sommerville, 2005) può porre l'accento sul prefisso “socio” oppure sul suffisso “tecnico”. Le due dimensioni, società e tecnologia, si implicano sul piano dell'entropia. Ciò significa che sistemi informatici chiusi, entropici e poco adattivi richiedono (e costruiscono) sistemi sociali standardizzati, cioè entropici. Per contro sistemi informatici basati sul codice libero vengono modificati dal sistema sociale e possono mantenere le loro differenze in termini di peculiarità. In sintesi la tecnologia chiusa e pronta all'usa tende a trasformare la società, mentre la società trasforma la tecnologia aperta e libera che pian piano si consolida e si chiude: La società trasforma il codice → il codice si chiude attraverso la commercializzazione o l'istituzionalizzazione dell'open source → il codice chiuso trasforma la società → nasce e si consolida altro codice libero destinato poi a chiudersi.

Note

  1. Qui si pone l'accento sul prefisso auto del termine autopoietico, quindi riproduttivo e autonomo dalla concentrazione di risorse economiche e politiche necessarie per tenerlo in vita.
  2. A parte la presenza di università che resta una costante.
  3. Non a caso il termine ambiente assume il significato informatico di contesto tecnologico in cui viene eseguito un programma o un sistema operativo. È un termine elastico che può riferirsi tanto al tipo di hardware (computer) che si usa, piuttosto che al sistema operativo: Spesso si usano le espressioni “ambiente Linux”, “ambiente Unix”, “ambiente DOS”.