Ingegneri Pesanti Group

Febbraio 9, 2007

Licenza software – 1: scelta del software

Archiviato in: Licenze software — ingegneripesanti @ 2:10 pm

Iniziamo con questo, una serie di articoli riguardanti licenze software. Come ben avrete capito, dando uno sguardo ai post relativi ai software presenti in questo blog, si evince che siamo un gruppo di persone fermamente decise ad utilizzare, per la maggiore, programmi open source, dei quali abbiamo trattato in un articolo che ne mette in evidenza le qualità. (clicca QUI per visualizzare l’articolo).

Prima di iniziare la vera trattazione delle licenze, cosa che faremo negli articoli successivi, ci sembra opportuno darvi delle informazioni riguardo software liberi e proprietari, quando utilizzarne uno anzichè un altro, quali sono vantaggi e svantaggi delle scelte, e così via tante altre info che dovrebbero aiutarvi nella scelta del software prima e della licenza poi.

Questo e gli articoli successivi, hanno lo scopo di farvi scegliere in soli 3 passi il software che effettivamente volete realizzare, tenendo conto delle accortezze e/o i limiti legali ai quali l’utente finale deve attenersi.

1 passo: scelta del tipo di software che si intende realizzare: proprietario, libero;

2 passo: scelta della licenza: concessioni e/o limiti relative all’utente finale;

3 passo: elenco di licenze che potrebbe fare al caso vostro;

Facciamo ora una panoramica dei software su elencati.

Definizione di software libero

Il Software libero è una questione di libertà, non di prezzo. Per capire il concetto, bisognerebbe pensare alla libertà di parola e non alla birra gratis [NdT: il termine free in inglese significa sia gratuito che libero, in italiano il problema non esiste].L’espressione “software libero” si riferisce alla libertà dell’utente di eseguire, copiare, distribuire, studiare, cambiare e migliorare il software. Più precisamente, esso si riferisce a quattro tipi di libertà per gli utenti del software:

  • Libertà di eseguire il programma, per qualsiasi scopo (libertà 0).

  • Libertà di studiare come funziona il programma e adattarlo alle proprie necessità (libertà 1). L’accesso al codice sorgente ne è un prerequisito.

  • Libertà di ridistribuire copie in modo da aiutare il prossimo (libertà 2).

  • Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio (libertà 3). L’accesso al codice sorgente ne è un prerequisito.

Un programma è software libero se l’utente ha tutte queste libertà. In particolare, se è libero di ridistribuire copie, con o senza modifiche, gratis o addebitando delle spese di distribuzione a chiunque ed ovunque. Essere liberi di fare queste cose significa (tra l’altro) che non bisogna chiedere o pagare nessun permesso.

Bisogna anche avere la libertà di fare modifiche e usarle privatamente nel proprio lavoro o divertimento senza doverlo dire a nessuno. Se si pubblicano le proprie modifiche, non si deve essere tenuti a comunicarlo a qualcuno in particolare o in qualche modo particolare.

La libertà di usare un programma significa libertà per qualsiasi tipo di persona od organizzazione di utilizzarlo su qualsiasi tipo di sistema informatico, per qualsiasi tipo di attività e senza dover successivamente comunicare con lo sviluppatore o con qualche altra entità specifica. Quello che conta per questa libertà è lo scopo dell’utente, non dello sviluppatore; come utenti potete eseguire il programma per i vostri scopi; se lo ridistribuite a qualcun altro, egli è libero di eseguirlo per i propri scopi, ma non potete imporgli i vostri scopi.

La libertà di ridistribuire copie deve includere le forme binarie o eseguibili del programma e anche il codice sorgente, sia per le versioni modificate che non modificate (distribuire programmi in formato eseguibile è comodo per avere sistemi operativi liberi facili da installare). È legittimo anche se non c’è alcun modo di produrre una forma binaria o eseguibile (dal momento che alcuni linguaggi non supportano questa caratteristica), ma si deve avere la libertà di ridistribuire tali forme nel caso si trovi o si sviluppi un modo per farlo.

Affinché le libertà di fare modifiche e di pubblicare versioni migliorate abbiano senso, si deve avere accesso al codice sorgente del programma. Perciò, l’accessibilità al codice sorgente è una condizione necessaria per il software libero.

Un importante modo di modificare un programma è quello di includervi funzioni e moduli liberi già esistenti. Se la licenza del programma prevede che non si possano includere moduli già esistenti, ad esempio se richiede che voi possiate aggiungere solo codice di cui detenete il copyright, allora la licenza è troppo restrittiva per essere considerata libera.

Queste libertà per essere reali devono essere irrevocabili fin tanto che non si fa qualcosa di sbagliato: se lo sviluppatore del software ha il potere di revocare la licenza anche senza che l’utente sia causa di tale revoca, il software non è libero.

“sotware-libero” non vuol dire non-commerciale. Un programma libero deve essere disponibile per uso commerciale, sviluppo commerciale e distribuzione commerciale. Lo sviluppo commerciale di software libero non è più inusuale: questo software commerciale libero è molto importante.

Per quanto riguarda l’open source, possiamo dirvi che si tratta di un software rilasciato con un tipo di licenza per la quale il codice sorgente è lasciato alla disponibilità di eventuali sviluppatori, in modo che con la collaborazione (in genere libera e spontanea) il prodotto finale possa raggiungere una complessità maggiore, qualitativamente migliore, di quanto potrebbe ottenere un singolo gruppo di programmazione.

Definizione di software proprietario

Con il termine software proprietario si indica quel software che ha restrizioni sul suo utilizzo, sulla sua modifica, riproduzione o ridistribuzione, solitamente imposti da un proprietario. Queste restrizioni vengono ottenute tramite mezzi tecnici o legali.

  • Mezzi tecnici: rendere pubblico solo il codice binario del software, trattenendone il codice sorgente. In questi casi la modifica del software risulta molto difficile, ottenibile solo grazie a disassemblatori e ad elevate capacità informatiche.

  • Mezzi legali: licenze, copyright e brevetti.

Il codice sorgente di un software proprietario solitamente non viene diffuso e viene ritenuto un segreto commerciale.

Alcuni software proprietari, invece, vengono rilasciati con il codice sorgente o danno la possibilità di osservarlo secondo determinate condizioni. In questi casi gli utenti sono liberi di usare ed anche studiare e modificare il software, ma sono vincolati da licenze o accordi di non divulgazione (NDA: Non-Disclosure Agreement) per la ridistribuzione delle modifiche o anche per la semplice condivisione del software.

Alcuni esempi di software proprietario sono Microsoft Windows, RealPlayer, Winzip, Adobe Photoshop, Mac OS e UNIX.
A questo punto, dopo una panoramica che vi elenca pregi e difetti dei software liberi e proprietari, ognuno di voi dovrebbe esser in grado di scegliere il software che soddisfi al meglio le prorprie esigenze; però, il discorso non sarebbe completo se non elencassimo pregi e difetti dell’open source rispetto al software proprietario, essendo sostenitori di questa categoria di programmi.

Vantaggi del software open source (parlano i sostenitori)

  • per la sua natura aperta, è gratuito (salvo rare eccezioni);

  • essendo possibile modificare liberamente il software, è possibile personalizzarlo ed adattarlo alla proprie esigenze (direttamente o commissionandolo a una ditta di propria scelta);

  • il codice sorgente è sottoposto ad una revisione da parte di moltissime persone, pertanto è più difficile che contenga bug e malfunzionamenti. In ogni caso, è sempre possibile per chiunque tenere un indice pubblico dei problemi, in modo che gli utenti li conoscano;

  • se viene scoperto un baco o una falla di sicurezza, la sua correzione di solito è molto rapida e normalmente condivisa con l’intera comunità degli utilizzatori;

  • essendo il sorgente liberamente consultabile, non è possibile inserire intenzionalmente nel software backdoor, cavalli di Troia o spyware senza che questi vengano prontamente scoperti, come invece è accaduto per alcuni software commerciali (ad esempio il caso del database Interbase della Borland che conteneva una backdoor scoperta quando di tale software sono stati rilasciati i sorgenti);

  • non esistendo standard proprietari, le cui specifiche sono normalmente segrete, è molto più facile costruire software interoperabile;

  • permettere a chiunque di modificare i sorgenti garantisce che ogni nuova funzionalità o copertura di un baco possa essere proposta da chiunque e immediatamente applicata dagli sviluppatori. Questo permette di avere già a disposizione un software che rispetta le esigenze di chi ha richiesto le modifiche;

Critiche al software open source (parlano gli antagonisti)

  • alcune tipologie di software, soprattutto di nicchia, non sarebbero disponibili come software open source;

  • lo sviluppo del software open source non segue i tradizionali principi di ingegneria del software; ciò porta a risultati incoerenti e ad una mancanza di uniformità e consistenza;

  • l’ usabilità spesso non è ottimale per un utente inesperto;

  • alcuni software moderni hanno raggiunto livelli di complessità tale da richiedere il supporto di un’azienda che impieghi molte persone che lavorano a tempo pieno al progetto;

  • mancando un sistema formale di revisione, il software open source sarebbe inadatto ad applicazioni mission-critical (ad esempio sistemi di avionica);

  • anche se spesso è disponibile molta documentazione, a volte (qualcuno sostiene che accada spesso) è incompleta o non aggiornata.

  • A volte si possono creare piu’ derivati (fork) di uno stesso software con conseguente divisione del team di sviluppo e rallentamento nello sviluppo del software stesso.

Per ora vi rimandiamo al prossimo articolo dove tratteremo le licenze adeguate ai vari tipi di software.

Articolo a cura di: Gianpiero Buzzo

Ancora nessun commento. »

Non c’è ancora nessun commento.

RSS feed dei commenti a questo articolo. TrackBack URI

Lascia un commento

Blog su WordPress.com.