1.1.2 Unix e il linguaggio C

Il 1969 fu anche l'anno in cui Ken Thompson dei Bell Labs di AT&T cominciò a sviluppare Unix nell'intento di realizzare un sistema operativo più semplice da usare, da programmare e quindi più efficace e produttivo rispetto ai complessi sistemi operativi esistenti. Il fatto che nel frattempo un altro hacker collega di Thompson alla Dell, Dennis Ritchie, concepisse un nuovo linguaggio di programmazione chiamato C da usare sotto Unix che avesse le stesse caratteristiche di flessibilità e semplicità, fece sì che si potesse realizzare per la prima volta il concetto di portabilità1.1 su cui si concentravano molti degli sforzi comuni di sviluppo dell'epoca. Cioè Unix poteva essere modificato in modo da poter funzionare con le stesse caratteristiche e capacità su macchine diverse. Non era più necessario quindi ridisegnare un intero pacchetto di software ogni volta che una macchina diventava obsoleta e si doveva cambiare con un'altra più moderna.

Sia Unix che C avevano delle caratteristiche rivoluzionarie per l'epoca. Si basavano su un concetto di semplicità estraneo al modo di programmare un po' barocco ed involuto comune a quel tempo. L'intera struttura logica di C poteva essere, più o meno facilmente, memorizzata dal programmatore - al contrario della maggior parte degli altri linguaggi - consentendo un ridotto ricorso ai manuali. Mentre Unix era a sua volta strutturato, come un pacchetto flessibile di semplici programmi/moduli1.2 pensati per combinarsi in vari modi a seconda delle esigenze, superando il concetto imperante di un unico blocco disegnato specificatamente e su misura per una determinata macchina.

Queste caratteristiche fecero si che Unix fosse presto adottato dalla maggior parte delle università, dei laboratori di ricerca informatica ma soprattutto da una moltitudine di hacker. Unix infatti aveva integrata al suo interno una specifica task di networking, una caratteristica grazie alla quale due macchine Unix potevano comunicare scambiandosi dati attraverso una normale linea telefonica. Nacque così quella che ancora oggi è chiamata Usenet, un network di utenti Unix che diede un grosso stimolo al fenomeno della diffusione e condivisione del software. Anche se questo metodo di trasmissione risultava lento, consentiva comunque a qualsiasi utilizzatore di questo sistema operativo di comunicare senza per forza dover accedere ad ARPAnet, appannaggio esclusivo al tempo, come già detto, di pochi soggetti istituzionali ben determinati.

La nascita di una vera e propria comunità di utenti Unix fu anche facilitata da una circostanza particolare. AT&T, il colosso telefonico a cui facevano capo i Bell Labs, in cui nacque e fu sviluppato inizialmente Unix, fu accusata nel 1949 dalla Divisione Antitrust del Dipartimento di Giustizia statunitense di aver violato lo Sherman Antitrust Act. Ciò portò nel 1956 ad un consent decree che diffidava AT&T dall'intraprendere qualsiasi attività commerciale diversa dai servizi telefonici e telegrafici.

Fu per non violare tale disposizione che AT&T decise che nel caso del software la propria politica sarebbe stata di licenziarlo, come consentito dal decreto, ma non di svilupparvi una politica commerciale. In quest'ottica Unix fu quindi fornito - a pagamento - a chi lo richiedesse, ma a scatola chiusa, senza cioè nessun servizio correlato né di assistenza né di correzione di bug.

Senza alcun supporto, la nascente comunità di utenti Unix fu in un certo senso costretta dalla necessità a sviluppare una cultura di solidarietà e condivisione, mettendo in comune idee, informazioni, programmi, modifiche sia hardware che software, e ciò fu facilitato dagli strumenti di comunicazione cui ho appena accennato.

È da annotare a margine che in questi anni, più precisamente nel 1975, fu commercializzato il primo Personal Computer (PC) - Apple fu fondata appena due anni dopo, nel 1977 - dando vita ad un'altra generazione parallela di hacker il cui linguaggio era il BASIC... ma questa è un'altra storia.