Articolo di Francesco Politi.
Come può il concetto di libertà avere a che fare con il mondo dei programmi? Scopriamolo in questo articolo.
Chiunque abbia un minimo di dimestichezza con il computer si è trovato, nella sua vita, a dover installare un programma sul proprio PC.
Poteva essere un software acquistato online, in un negozio, oppure un programma di cui un conoscente ci aveva fornito il CD o il file d’installazione.
Altre volte, invece, abbiamo scaricato software da un sito e lo abbiamo installato direttamente.
Apparentemente, quindi, le possibilità sono solo due: il software ha un costo oppure è gratis.
Ma allora, potremmo ragionevolmente concludere che il software libero è quello gratuito?
Ebbene, non è così.
Prima di spiegare meglio cosa significhi software libero (free software), è opportuno qualche cenno tecnico.
Probabilmente ci sarà capitato di sentir dire che il computer “capisce solo il linguaggio binario: 0 e 1”.
Per quanto semplicistica possa suonare la frase, in fin dei conti è proprio così: il computer legge ed interpreta lunghissime stringhe di 0 e 1 ed esegue operazioni di conseguenza.
Tuttavia, gli esseri umani (i programmatori) non scrivono i programmi direttamente in quella forma…
…ma usano piuttosto linguaggi di programmazione di alto livello, ognuno con una propria sintassi e struttura.
Ad esempio, un banalissimo programma che mostri la scritta “Hello World!” nel linguaggio di programmazione C, appare così:
#include <stdio.h>
main ()
{
printf(“Hello World!”);
}
Ma, se come abbiamo detto, il computer comprende solo il linguaggio binario (0 e 1), ci deve essere una processo intermedio che trasformi il codice di cui sopra in un qualcosa che il nostro computer possa comprendere.
Questo processo si chiama compilazione, e serve appunto a tradurre il codice scritto dagli umani in linguaggio binario. Solo allora il computer potrà eseguirlo!
Agli albori era uso comune scambiarsi il codice: lo si condivideva con gli altri, lo si migliorava, e lo si condivideva nuovamente.
In questo senso, si potrebbe dire che il codice scritto dai programmatori era di pubblico dominio.
L’antagonista di questo “spirito di collaborazione tra programmatori” è il software proprietario, che nella quasi totalità dei casi viene rilasciato direttamente in formato binario.
E’ proprio questo il genere di software che installiamo quando decidiamo di utilizzare, ad esempio, Skype o Acrobat Reader.
Possiamo liberamente scaricare questo genere di programmi dai rispettivi siti, ma non potremmo mai analizzarli e apportare modifiche/migliorie: non viene infatti reso disponibile il codice sorgente. Ciò che viene reso disponibile è il programma direttamente in formato binario. E’ il classico Setup.exe su cui si fa doppio click per portare a termine l’installazione.
Anche se viene pagato un prezzo, ciò che si paga non è la proprietà di quel programma (che rimane della società informatica che l’ha creato) ma il permesso di utilizzarlo, ossia la licenza d’uso.
Questa è l’essenza del software proprietario, detto anche closed source.
Il software open source, invece, è tale perché chi lo crea e lo distribuisce, ne consente anche la consultazione del codice sorgente. I programmi di questa categoria sono spesso distribuiti in due forme:
- formato binario, per semplificare agli utenti la possibilità di installarlo sui propri computer
- codice sorgente, che gli utenti più esperti posso comunque compilare e ottenere il file binario
Ma perché è tanto importante poter consultare il codice sorgente? Apparentemente sembra solo una complicazione, una via decisamente più lunga per arrivare allo stesso risultato: il file binario su cui si fa doppio click.
In realtà, dietro tutto ciò, si nasconde una fondamentale proprietà: la totale trasparenza nel poter vedere nel dettaglio ogni singola parte, in modo che non si possa aver alcun dubbio sulle sue funzionalità.
Purtroppo non è infrequente che programmi “closed” abbiano delle funzioni nascoste, spesso e volentieri con l’obiettivo di raccogliere dati sugli utenti.
E’ importante infine sottolineare che open source e free software non siano esattamente sinonimi.
L’essenza dell’Open Source è la mera distribuzione del codice sorgente, senza coinvolgere altri aspetti ideologici.
Il Free Software è più vicino ad essere una corrente di pensiero, una filosofia incentrata sulla libertà degli utenti, i quai devono avere la possibilità di usare i programmi per qualsiasi scopo, di disporre del codice sorgente, di modificarlo, e in caso di ridistribuirlo (a patto di mantenere la stessa licenza, che nel mondo Free Software viene ironicamente definita copyleft – in contrapposizione con copyright).
Per approfondimenti:
Revolution OS (documentario)
Open non è free. Comunità digitali tra etica hacker e mercato (testo).