La "lista" di istruzioni in linguaggio comprensibile all'uomo è il codice sorgente; se questo viene reso disponibile agli utenti, il software si definisce aperto (open in inglese), in caso contrario si definisce chiuso (closed).
Disporre del sorgente permette di capire come funziona un dato programma, cosa può fare e come, cosa impossibile nel caso di software closed.
La differenza tra software chiuso e software aperto può essere vista come la differenza tra comprare una torta industriale senza sapere cosa c'è dentro (ok, ci può essere un'etichetta più o meno precisa sugli ingredienti, ma chi ci dice che sia veritiera? E anche se fosse, nessuno ci dice come è stata fatta questa torta... conoscere gli ingredienti non basta) e conoscere la ricetta con relativi ingredienti e il procedimento di preparazione.
Quale dei due casi voi definireste più "sano" e più "affidabile"? La torta industriale va comprata (come il software chiuso), fidandosi dell'etichetta (come il software chiuso), senza sapere cosa effettivamente ci sia dentro e come effettivamente sia stata fatta (come il software chiuso). La "torta della nonna", invece, è molto più sana perché hai a disposizione la ricetta (come il software aperto), la puoi modificare (se non ti piace con le mandorle puoi metterci le nocciole...), etc. Insomma con la torta ci fai quel che vuoi, la modifichi come vuoi. Ovviamente dopo non si potrà più chiamare torta della nonna, ma dovrà chiamarsi torta del nipote sulla base della torta della nonna (anche col software aperto possono verificarsi casi simili).
Ecco qualche esempio di software open e di corrispettivo software closed (tutti disponibili per vari sistemi operativi: Windows, GNU/Linux, MacOS): Mozilla Firefox (Microsoft Internet Explorer™ oppure Opera™ ), Mozilla Thunderbird (Microsoft Outlook™ ), OpenOffice.org (Microsoft Office™ ), The GIMP (Adobe Photoshop™ ).
Tra questi, sicuramente, ne avrete riconosciuto qualcuno che usate quotidianamente :-).
Differenze tra Free Software e software Freeware
In inglese la parola "free" significa sia "gratuito" che "libero".
Nel caso del Free Software la parola free significa libero: si pone l'accento sulla libertà piuttosto che sulla gratuità. Richard Matthew Stallman, fondatore della Free Software Foundation (FSF), ha definito le 4 libertà fondamentali che dovrebbero sempre avere gli utilizzatori di software:
- libertà 0: libertà di eseguire il programma, per qualsiasi scopo;
- libertà 1: libertà di studiare come funziona il programma e adattarlo alle proprie necessità. L'accesso al codice sorgente ne è un prerequisito.
- libertà 2: libertà di ridistribuire copie in modo da aiutare il prossimo.
- libertà 3: libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti (e le versioni modificate in genere), in modo tale che tutta la comunità ne tragga beneficio. L'accesso al codice sorgente ne è un prerequisito.
È sufficiente che anche una sola di queste libertà non sia soddisfatta e il software non potrà essere definito Free Software.