Intervista di BYTE con Richard Stallman
a cura di David Betz e Jon EdwardsRichard Stallman parla con i redattori di BYTE del suo sistema operativo di pubblico dominio compatibile con Unix (luglio 1986).
Richard Stallman ha intrapreso il progetto di sviluppo di software libero probabilmente più ambizioso fino ad oggi, il sistema GNU. Nel suo Manifesto GNU, pubblicato nel numero di marzo 1985 del Dott. Dobb's Journal, Stallman ha descritto GNU come un “completo sistema di software compatibile con Unix che sto scrivendo così da poterlo dare liberamente a tutti coloro che possono usarlo ... Una volta che GNU sarà scritto, tutti potranno ottenere un buon sistema di software liberamente, proprio come l'aria.” (GNU è un acronimo per sta per “GNU Non è Unix”; la “g” va pronunciata).
Stallman è ampiamente conosciuto come l'autore di EMACS, un potente editor di testo che ha sviluppato al Laboratorio di Intelligenza Artificiale del MIT. Non è una coincidenza che il primo pezzo di software prodotto come parte del progetto GNU sia stata una nuova implementazione di EMACS. GNU EMACS ha già la reputazione di essere una delle migliori implementazioni di EMACS attualmente disponibili ad un qualsiasi prezzo.
BYTE: Abbiamo letto il suo Manifesto GNU nel numero di marzo 1985 del Dott. Dobb's Journal. Cosa è accaduto da allora? Quello era realmente l'inizio, e come ha fatto progressi da allora?
Stallman: La pubblicazione sul Dott. Dobb's Journal non era l'inizio del progetto. Ho scritto il Manifesto GNU quando mi preparavo a cominciare il progetto, come una proposta per chiedere ai fabbricanti di computer un finanziamento. Non hanno voluto essere coinvolti e ho deciso che piuttosto che passare il mio tempo cercando fondi, avrei dovuto passarlo scrivendo codice. Il manifesto è stato pubblicato circa un anno e mezzo dopo che l'avevo scritto, quando avevo appena cominciato a distribuire GNU EMACS. Da allora, oltre a rendere GNU EMACS più completo e farlo eseguire su molti più computer, ho quasi finito il compilatore C ottimizzato e tutto l'altro software necessario per eseguire programmi C. Questo comprende un debugger a livello di sorgente che ha molte funzioni che gli altri debugger a livello di sorgente su Unix non hanno. Per esempio, ha variabili di convenienza all'interno del debugger, così è possibile salvare valori, ed ha anche una cronologia di tutti i valori che sono stati stampati, rendendo tremendamente più facile girare tra le strutture lista.
BYTE: Ha completato un editor che è ora estesamente distribuito ed ha quasi finito il compilatore.
Stallman: Presumo che sarà finito questo ottobre.
BYTE: E il kernel?
Stallman: Progetto attualmente di cominciare col kernel che è stato scritto al MIT ed è stato distribuito al pubblico recentemente con l'idea che l'avrei usato. Questo kernel è chiamato TRIX; è basato su chiamate di procedure remote. Ancora devo aggiungere compatibilità per molte funzioni di Unix che non ha attualmente. Non ho ancora cominciato a lavorarci. Voglio finire il compilatore prima di andare a lavorare sul kernel. Ho anche intenzione di riscrivere il file system. Intendo farlo a prova di errori facendo in modo che scriva i blocchi nell'ordine giusto così che la struttura del disco sia sempre consistente. Poi voglio aggiungere i numeri di versione. Ho un progetto complicato per riconciliare i numeri di versione con il modo in cui la gente di solito usa Unix. Si deve poter specificare i nomi dei file senza numeri di versione, ma si deve anche poterli specificare con numeri di versione espliciti, e questi devono entrambi funzionare con i normali programmi Unix che non sono stati modificati in nessun modo per trattare l'esistenza di questa caratteristica. Penso di avere uno schema per fare questo, e solo provandolo mi dimostrerà se esegue realmente il lavoro.
BYTE: Può darci una breve descrizione di come GNU come sistema sarà superiore ad altri sistemi? Sappiamo che uno dei suoi obiettivi è produrre qualche cosa che sia compatibile con Unix. Ma almeno nell'area dei file system ha già detto che vuole andare oltre Unix e produrre qualcosa di migliore.
Stallman: Il compilatore C produrrà codice migliore e girerà più velocemente. Il debugger è migliore. Per ogni pezzo potrrei trovare o meno un modo per migliorarlo. Ma non c'è un'unica risposta a questa domanda. In un certo senso ottengo il beneficio della reimplementazione, che rende molti sistemi molto migliori. In un certo senso è perché sono in questo settore da lungo tempo e ho lavorato su molti altri sistemi. Perciò ho molte idee da realizzare. Un aspetto in cui sarà migliore è che praticamente tutto nel sistema funzionerà su file di ogni dimensione, su linee di ogni dimensione, con ogni carattere che vi appaia. Il sistema Unix è pessimo da questo punto di vista. Non è una novità, come principio di ingegneria del software, che non si dovrebbero avere limiti arbitrari. Ma metterceli sempre, era una pratica standard per Unix, forse solo perché lo scrivevano per un computer molto piccolo. L'unico limite nel sistema GNU è quando il programma finisce la memoria per aver cercato di lavorare su troppi dati e non ha posto per tenerli tutti.
BYTE: E questo non è probabile che accada se si ha la memoria virtuale. Può solo volerci un tempo infinito per giungere ad una soluzione.
Stallman: In realtà questi limiti tendono ad essere raggiunti ben prima che ci voglia un tempo infinito per giungere ad una soluzione.
BYTE: Può dirci qualcosa dei tipi di macchine e degli ambienti sotto i quali GNU EMACS in particolare è stato fatto funzionare? Funziona ora sui VAX; è stato portato in qualche forma sui personal computer?
Stallman: Non so esattamente quello che intende per personal computer. Per esempio un Sun è un personal computer? GNU EMACS richiede almeno un megabyte di memoria disponibile e preferibilmente di più. Normalmente è usato su macchine che hanno la memoria virtuale. A parte vari problemi tecnici in alcuni compilatori C, quasi ogni macchina con memoria virtuale e con una versione abbastanza recente di Unix farà girare GNU EMACS, e la maggior parte attualmente lo fa.
BYTE: Qualcuno ha cercato di portarlo su Atari o su Macintosh?
Stallman: L'Atari 1040ST ancora non ha abbastanza memoria. La prossima macchina Atari, presumo, lo eseguirà. Penso anche che i prossimi Atari avranno alcune forme di mapping della memoria. Ovviamente non progetto il software perché venga eseguito sui tipi di computer oggi più comuni. Sapevo quando ho cominciato questo progetto che ci sarebbero voluti alcuni anni. Perciò ho deciso che non volevo fare un sistema peggiore accettando anche la sfida di farlo girare con i vincoli di ambiente attuali. Così invece ho deciso che lo scriverò nel modo che sembra il più naturale e il migliore. Sono fiducioso che in un paio di anni macchine di dimensione sufficiente saranno le più comuni. Infatti gli aumenti di dimensione della memoria accadono così velocemente che mi sorprende come la maggior parte della gente sia lenta ad inserire la memoria virtuale; penso che sia assolutamente essenziale.
BYTE: Penso che la gente non lo veda poi così necessario per macchine con un singolo utente.
Stallman: Non capiscono che singolo utente non vuol dire singolo programma. Certamente per qualche sistema simile a Unix è importante poter eseguire molti processi diversi contemporaneamente anche se c'è solo un utente. Si potrebbe eseguire GNU EMACS su una macchina senza memoria virtuale con abbastanza memoria, ma non si potrebbe eseguire molto bene il resto del sistema GNU o un sistema Unix.
BYTE: Quanto LISP è presente in GNU EMACS? Mi è venuto in mente che potrebbe essere utile come strumento per imparare il LISP.
Stallman: Certamente. GNU EMACS contiene un sistema LISP completo, benché non molto potente. È abbastanza potente per scrivere comandi dell'editor. Non è paragonabile con, diciamo, un sistema Common LISP, qualcosa che si potrebbe usare realmente per la programmazione di sistemi, ma ha tutte le cose di cui il LISP ha bisogno.
BYTE: Può già fare una previsione di quando probabilmente distribuirà un ambiente nel quale si possa lavorare e dove, se lo mettiamo sulle nostre macchine o sulle nostre workstation, potrebbe essere fatto un lavoro ragionevole senza usare nient'altro che il codice che voi distribuite?
Stallman: È veramente difficile dirlo. Potrebbe accadere in un anno, ma naturalmente potrebbe volerci di più. Potrebbe anche in teoria volerci di meno, ma questo non è piu molto probabile. Penso che finirò il compilatore in un mese o due. L'unico altro lavoro più consistente che devo fare in realtà è nel kernel. All'inizio prevedevo che per GNU ci sarebbe voluto qualcosa come due anni, ma sono passati ora due anni e mezzo e non ho finito ancora. In parte la ragione del ritardo è che ho passato molto tempo a lavorare su un compilatore che è risultato essere un punto morto. Ho dovuto riscriverlo completamente. Un altro motivo è che ho passato molto tempo su GNU EMACS. Originariamente pensavo di non doverlo fare affatto.
BYTE: Ci dica del suo schema di distribuzione.
Stallman: Non rilascio software o manuali sotto dominio pubblico, e la ragione è che voglio essere sicuro che tutti gli utenti abbiano la libertà di condividerli. Non voglio che qualcuno faccia una versione migliorata di un programma che ho scritto e lo distribuisca come proprietario. Non voglio che questo possa mai accadere. Voglio incoraggiare i liberi miglioramenti a questi programmi, e il modo migliore di farlo è togliere a chiunque ogni tentazione di fare dei miglioramenti non liberi. Sì, alcuni di loro si asterranno dal fare miglioramenti, ma molti altri faranno gli stessi miglioramenti e li renderanno liberi.
BYTE: E come fa per garantirlo?
Stallman: Lo faccio mettendo i programmi sotto copyright e mettendo un avviso che dà alle persone il permesso esplicito di copiare i programmi e cambiarli, ma solo a condizione che, se li distribuiscono, lo facciano sotto gli stessi termini che ho usato io. Nessuno deve necessariamente distribuire le modifiche che fa a qualcuno dei miei programmi -- è possibile anche farle solo per se stessi, e non si deve darle, o dirlo, ad alcuno. Ma se si danno a qualcun altro, si deve farlo sotto gli stessi termini che uso io.
BYTE: Ottiene qualche diritto sul codice eseguibile derivato dal compilatore C?
Stallman: La legge sul copyright non mi dà diritti di copyright sull'output del compilatore, così non mi dà modo di dire qualcosa su questo argomento, ed infatti non ci provo. Non sono d'accordo con le persone che sviluppano prodotti proprietari con qualunque compilatore, ma non sembra particolarmente utile cercare di non farglieli sviluppare con questo compilatore, così non lo faccio.
BYTE: Le sue restrizioni si applicano anche se si prendono pezzi del suo codice per produrre altre cose?
Stallman: Sì, se si incorporano con modifiche pezzi di considerevoli dimensioni. Se fossero due linee di codice, non sarebbe nulla; la legge del copyright non si applica. Essenzialmente, ho scelto queste condizioni così che prima c'è un copyright, che è quello che tutti gli accaparratori di software usano per impedire a chiunque di fare qualcosa, e poi aggiungo un avviso per rinunciare a parte di quei diritti. Così le condizioni parlano solo delle cose a cui si applica il copyright. Non credo che la ragione per cui si dovrebbero rispettare queste condizioni sia la legge. La ragione per cui si dovrebbero rispettare è perché una persona giusta quando distribuisce software incoraggia altra gente a condividerlo ulteriormente.
BYTE: In un certo senso, attira la persone a questo modo di pensare fornendo tutti questi interessanti strumenti che si possono utilizzare, ma solo se si condivide la sua filosofia.
Stallman: Sì. Si potrebbe vedere anche come un modo per usare contro gli accaparratori di software il sistema legale da loro stessi istituito. Io lo uso per proteggere il pubblico da loro.
BYTE: Dato che i fabbricanti non hanno voluto sostenere economicamente il progetto, chi pensa che userà il sistema GNU quando sarà finito?
Stallman: Non ne ho idea, ma non è un problema importante. Il mio scopo è che si possano rifiutare le restrizioni che si hanno con il software proprietario. So che c'è chi vuole farlo. Ora, ci possono essere altri a cui non importa, ma non sono la mia preoccupazione. Mi sento un po' triste per loro e per la gente che influenzano. Al momento chi percepisce la sgradevolezza delle condizioni del software proprietario si sente bloccato e non ha altra alternativa se non quella di non usare un computer. Bene, io gli darò una comoda alternativa.
Altri possono usare il sistema GNU semplicemente perché è tecnicamente superiore. Per esempio il mio compilatore C produce un codice buono come quelli prodotti da un qualsiasi altro compilatore C. E GNU EMACS è generalmente considerato molto superiore rispetto ai concorrenti commerciali. E neanche GNU EMACS è stato sostenuto economicamente da nessuno, ma lo usano tutti. Perciò penso che molta gente userà il resto del sistema GNU per i suoi vantaggi tecnici. Ma farei un sistema GNU anche se non sapessi come farlo tecnicamente migliore perché voglio che sia socialmente migliore. Il progetto GNU è in realtà un progetto sociale. Usa mezzi tecnici per fare un cambiamento nella società.
BYTE: Allora è piuttosto importante per lei che la gente adotti GNU. Non è solo un esercizio accademico produrre questo software per darlo alla gente. Lei spera che cambi il modo di operare dell'industria del software.
Stallman: Sì. Alcuni dicono che nessuno l'userà mai perché sopra non ha nessun attraente logo commerciale di nessuna ditta, ed altri dicono di pensare che sia estremamente importante e che tutti vorranno usarlo. Non ho modo di sapere quello che succederà realmente. Non conosco nessuna altro modo per cercare di cambiare quello che non va nel campo dove io stesso mi trovo ad operare, così questo è ciò che devo fare.
BYTE: Può dire qualcosa delle implicazioni? Evidentemente sente che questo è un punto importante a livello politico e sociale.
Stallman: È un cambiamento. Cerco di cambiare il modo in cui le persone si avvicinano alla conoscenza e all'informazione in genere. Penso che cercare di possedere la conoscenza, cercare di controllare se le persone hanno il permesso di usarla, o cercare di impedire ad altri di condividerla è sabotaggio. È un'attività che avvantaggia chi lo fa al costo di impoverire tutta la società. Una persona guadagna un dollaro distruggendo il valore di due dollari di ricchezza. Penso che una persona con una coscienza non farebbe una cosa simile tranne forse se rischiasse di morire. E naturalmente chi lo fa è piuttosto ricco; posso solo concludere che è privo di scrupoli. Mi piacerebbe vedere che chi scrive software libero e incoraggia altri ad utilizzarlo ricevesse ricompense. Non voglio vedere che si ottengano ricompense per scrivere software proprietario perché questo non è un reale contributo alla società. Il principio del capitalismo è l'idea che la gente riesca a fare soldi producendo cose e perciò è incoraggiata a fare cose utili, automaticamente per così dire. Ma questo non funziona quando si tratta di possedere la conoscenza. Sono incoraggiati a fare non ciò che è utile davvero, e quello che davvero è utile non è incoraggiato. Penso che sia importante dire che le informazioni sono una cosa diversa da oggetti materiali come macchine e pane perché le persone possono copiarle e condividerle di per sé e, se nessuno tenta di fermarle, possono cambiarle e renderle migliori per se stesse. Questa è una cosa utile che le persone possono fare. Questo non è vero per le pagnotte di pane. Se si ha una pagnotta e se ne vuole un'altra, non si può semplicemente mettere la nostra pagnotta in una macchina per copiare il pane. Non se ne può fare un'altra se non passando attraverso tutte le fasi che sono state usate per fare la prima. Perciò è irrilevante che la gente abbia o meno il permesso di copiarla - è impossibile.
I libri sono stati stampati solo con macchine a stampa fino a poco tempo fa. Era possibile farsene una copia a mano, ma non era pratico perché ci voleva molto più lavoro che usando una macchina a stampa. E produceva qualcosa di così poco attraente che, effettivamente, era come se fosse impossibile fare libri se non producendoli su larga scala. E perciò il copyright in realtà non toglieva nessuna libertà al pubblico dei lettori. Non c'era niente che chi comprava un libro poteva fare che fosse proibito dal copyright.
Ma questo non è vero per i programmi di computer. Non è vero neanche per le cassette. È in parte falso ora per i libri, ma è ancora vero che per la maggior parte dei libri è più costoso e certamente molto più laborioso fotocopiarli che comprarne una copia, ed il risultato è ancora meno attraente. Proprio ora siamo in un periodo in cui la situazione che ha reso il copyright innocuo ed accettabile sta cambiando in una in cui il copyright diverrà distruttivo ed intollerabile. Così chi viene calunniato come "pirata" è in realtà chi cerca di fare qualcosa di utile che gli è stato proibito di fare. Le leggi sul copyright sono progettate interamente per aiutare le persone ad avere il completo controllo sull'uso di alcune informazioni a proprio vantaggio. Non sono progettate per aiutare chi vuole essere sicuro che le informazioni siano accessibili alla collettività e vuole impedire che la collettività ne sia privata. Penso che la legge dovrebbe riconoscere una categoria di opere di proprietà della collettività, diversa dal pubblico dominio nello stesso modo in cui un parco pubblico è diverso da qualcosa trovata in un bidone dell'immondizia. Non è lì perché qualcuno la prenda, è lì perché tutti la usino ma nessuno impedisca ad altri di usarla. Chiunque della collettività che si trovi privato del lavoro derivato da qualcosa di proprietà della collettività dovrebbe potersi rivolgere alla legge.
BYTE: Ma i pirati non sono interessati ad ottenere copie di programmi perché vogliono usare quei programmi, non perché vogliono usare quella conoscenza per produrre qualcosa di migliore?
Stallman: Non credo che sia questa la distinzione importante. Se più persone utilizzano un programma vuol dire che il programma contribuisce di più alla società. Abbiamo una pagnotta che può essere mangiata una volta o un milione di volte.
BYTE: Alcuni utenti comprano il software commerciale per avere il supporto. Come fornisce il supporto il suo schema di distribuzione?
Stallman: Sospetto che quegli utenti siano fuorviati e non pensino chiaramente. È certamente utile avere il supporto, ma quando cominciano a pensare a come ciò abbia qualcosa a che fare con la vendita del software o con il software proprietario, a quel punto si confondono. Non c'è nessuna garanzia che il software proprietario riceverà un buon supporto. Semplicemente perché i venditori dicono che forniscono il supporto, questo non significa che sarà buono. E possono ritirarsi dagli affari. Infatti gli utenti pensano che GNU EMACS abbia un supporto migliore degli EMACS commerciali. Uno dei motivi è che probabilmente io sono un hacker migliore di chi ha scritto gli altri EMACS, ma l'altro motivo è che tutti hanno i codici sorgenti e c'è così tanta gente interessata a scoprire come fare alcune cose con questi codici che non è necessario avere il supporto da me. Anche il solo supporto libero che consiste nelle mie correzioni dei bug di cui gli utenti mi riferiscono e che vengono incorporati nelle versioni successive ha fornito agli utenti un buon livello di supporto. Si può sempre assumere qualcuno per risolvere un nostro problema, e se il software è libero si ha un mercato competitivo per il supporto. Si può assumere chiunque. Io distribuisco con EMACS un elenco di servizi, un elenco di nomi e numeri di telefono di persone e quanto chiedono per fornire il supporto.
BYTE: Raccoglie le loro correzioni ai bug?
Stallman: Sì, me le spediscono. Ho chiesto a tutte le persone che volevano essere elencate di promettere che non chiederanno mai a nessuno dei loro clienti di tenere segreto ciò che viene detto loro o qualunque modifica al software GNU che hanno avuto come parte del supporto.
BYTE: In questo modo non si possono avere persone che si facciano concorrenza per fornire un supporto basato sulla loro conoscenza della soluzione di un problema che qualcun altro non conosce.
Stallman: No. Possono competere a seconda della loro bravura e della probabilità di trovare la soluzione al problema, o della comprensione che già hanno dei problemi più comuni, o del loro sapere spiegare meglio cosa si dovrebbe fare. Questi sono tutti modi in cui possono competere. Possono cercare di fare meglio, ma non possono ostacolare attivamente i loro concorrenti.
BYTE: Suppongo che sia come comprare una macchina. Non siamo costretti a tornare dal fabbricante originario per il supporto o per la manutenzione continua.
Stallman: O comprare una casa - come sarebbe se la sola persona che potesse mai risolvere i problemi con la nostra casa fosse l'imprenditore che l'ha costruita originariamente? Questo è il genere di imposizione che è implicita nel software proprietario. Mi dicono di un problema che accade in Unix. Poiché i fabbricanti vendono versioni migliorate di Unix, tendono a raccogliere correzioni e non le danno se non in formato binario. Il risultato è che i problemi non vengono realmente corretti.
BYTE: Tutti loro duplicano gli sforzi cercando di risolvere i bug indipendentemente.
Stallman: Sì. Ecco un altro punto che aiuta a mettere il problema dell'informazione proprietaria in una prospettiva sociale. Pensi alla crisi dell'assicurazione di responsabilità. Per ottenere una compensazione dalla società, una persona danneggiata deve assumere un avvocato e dividere i soldi con quell'avvocato. Questo è un modo stupido ed inefficiente di aiutare chi è stato vittima di incidenti. E consideriamo tutto il tempo che le persone impiegano a cercare di tenere i concorrenti fuori dalla competizione. Pensi alle penne che sono imballate in grandi pacchi di cartone che costano più della penna -- solo per assicurarsi che la penna non sia rubata. Non sarebbe meglio se mettessimo penne gratis ad ogni angolo di strada? E pensi a tutti i caselli che impediscono il flusso del traffico. È un fenomeno sociale gigantesco. La gente trova il modo di fare soldi ostacolando la società. Se possono ostacolare la società, possono anche essere pagati per lasciare in pace la gente. Lo spreco legato al possesso delle informazioni diverrà sempre più importante e alla fine farà la differenza fra l'utopia dove nessuno deve realmente lavorare per vivere perché tutto viene fatto da robot ed un mondo come il nostro in cui ognuno passa molto tempo a replicare quello che sta facendo un altro.
BYTE: Come scrivere avvisi di copyright sul software.
Stallman: Piuttosto come controllare tutti per accertarsi che non abbiano copie proibite di niente e duplicare tutto il lavoro già fatto perché proprietario.
BYTE: Un cinico potrebbe chiedersi come si guadagna da vivere.
Stallman: Con le consulenze. Quando faccio una consulenza, mi riservo sempre il diritto di donare ciò che ho scritto per il lavoro di consulenza. Inoltre, potrei guadagnarmi da vivere spedendo copie del software libero che ho scritto e che hanno scritto altri. Molti spediscono 150 dollari per GNU EMACS, ma ora questi soldi vanno alla Fondazione per il Software Libero (FSF) che ho avviato. La fondazione non mi paga un salario perché sarebbe un conflitto di interessi. Invece, assume altra gente per lavorare a GNU. Finché io posso guadagnarmi da vivere con le consulenze penso che questo sia il modo migliore.
BYTE: Cosa è attualmente incluso nel nastro della distribuzione ufficiale GNU?
Stallman: Al momento il nastro contiene GNU EMACS (una versione va bene per tutti i computer); Bison, un programma che sostituisce YACC; MIT Scheme, che è il dialetto LISP super-semplificato del Professor Sussman; ed Hack, un gioco di esplorazione di sotterranei simile a Rogue.
BYTE: Anche il manuale stampato è incluso nella distribuzione insieme al nastro?
Stallman: No. I manuali stampati costano 15 dollari ciascuno oppure potete copiarveli. Copiate anche questa intervista e condividetela.
BYTE: Come se ne può ottenere una copia?
Stallman: Scrivete alla Free Software Foundation, 675 Massachusetts Ave., Cambridge, MA 02139.
[L'indirizzo attuale (dal 2005) è:Free Software Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
Telefono: +1-617-542-5942
Fax: +1-617-542-2652]
BYTE: Cosa farà quando avrà finito col sistema GNU?
Stallman: Non lo so esattamente. Qualche volta penso che quello che farò sarà la stessa cosa in altre aree del software.
BYTE: Così questo è solo il primo di un'intera serie di assalti all'industria del software?
Stallman: Spero di sì. Ma forse quello che farò sarà solo fare una vita tranquilla e lavorare un po' tanto per vivere. Non devo vivere alla grande. Per il resto del tempo posso trovare gente interessante da frequentare o imparare a fare cose che non so fare.