Free software, opensource, freeware
Introduzione
In questi ultimi anni si parla molto di Free Software e Open Source, molti software si sono diffusi (quasi) a macchia d'olio entrando anche nei PC degli utenti meno smaliziati.
Ma di quali software stiamo parlando? Diciamo che quasi tutti voi conoscerete (per averli installati o usati almeno una volta) programmi come Mozilla Firefox per navigare, oppure Openoffice.org al posto della ben più pesante (e costosa) suite Microsoft Office™.
Fino a pochi anni fa chi voleva nel proprio PC un programma di videoscrittura evoluto (wordprocessor) e un programma per fare calcoli e tabelle (foglio di calcolo o spreadsheet) aveva di fronte a sé due strade: o spendere per acquistare la licenza d'uso o (purtroppo molto più spesso di quanto si possa immaginare) "piratarlo" facendoselo copiare o copiandolo.
Quali sono i vantaggi dell'Open Source e del Free Software rispetto al software proprietario?
Andiamo con ordine...
Differenze tra software chiuso e software aperto
Cosa è il software "chiuso" e cosa è il software "aperto"? Questa prima distinzione si incentra sulla disponibilità del codice sorgente del programma in esame.
Il computer, come tutti saprete, sa capire soltanto se passa corrente elettrica oppure no in un circuito. Tutto quello che capisce è 1 oppure 0. Senza entrare nei particolari (questo non vuole essere un articolo tecnico, ma divulgativo) un programma per PC deve per forza essere scritto come una lunga sequenza di 0 e 1. Questi numeri vengono interpretati come una lista di cose da fare, in ordine ben preciso.
Risulta evidente che per un programmatore scrivere del codice in questo modo è molto pesante e complicato, nonché soggetto a molti errori (negli anni '50 in effetti i programmatori ragionavano e scrivevano così!). Per questo sono stati creati dei compilatori e degli interpreti per agevolare questo lavoro. Questi sono, a loro volta, programmi che traducono una lista di istruzioni scritte in un linguaggio più vicino a quello umano nell'unico linguaggio comprensibile al computer: il linguaggio macchina (quello fatto di 1 e 0).
Questi linguaggi (C, C++, Pascal, PHP, Perl, Java, Python, Ruby, etc.) sono definiti di "alto livello" proprio perchè la loro sintassi, come detto, è più vicina al linguaggio "umano" che a quello "macchina".