Cosa sono le licenze software (MIT, GPL, Apache)
Cosa sono le licenze software spiegate semplice: differenza tra licenze permissive e copyleft, MIT, GPL, Apache, e perché contano quando usi codice o librerie altrui.
Le licenze software sono uno di quei temi che molti sviluppatori ignorano finché non diventano un problema. Eppure ogni volta che usi una libreria o del codice altrui, c'è una licenza che dice cosa puoi farne. In questo articolo ti spiego cosa sono le licenze software e quali sono le più comuni, in modo semplice e pratico.
Cosa sono le licenze software in parole semplici
Una licenza software è un documento legale che stabilisce come un software (o il suo codice) può essere usato, modificato e distribuito. Definisce i diritti e i doveri di chi usa quel codice. In sostanza, è il "regolamento d'uso" che accompagna ogni progetto software.
Punto fondamentale che molti ignorano: il codice senza licenza non è "libero", è tutto il contrario. Per impostazione predefinita, il codice è protetto dal diritto d'autore, e senza una licenza esplicita che dia il permesso, nessuno è autorizzato a usarlo. La licenza serve proprio a concedere quei permessi.
Permissive vs copyleft: la distinzione chiave
Le licenze open source si dividono in due grandi famiglie, ed è la cosa più importante da capire:
- Licenze permissive: ti lasciano grande libertà. Puoi usare il codice quasi come vuoi, anche in progetti commerciali e chiusi, di solito con il solo obbligo di mantenere l'attribuzione all'autore.
- Licenze copyleft: impongono che, se distribuisci software basato su quel codice, anche il tuo debba essere rilasciato con la stessa licenza aperta. In altre parole, "l'apertura si propaga".
La differenza pratica è enorme: una licenza permissiva puoi usarla in un prodotto commerciale chiuso; una copyleft forte potrebbe obbligarti ad aprire il tuo intero progetto.
Le licenze più comuni
Ecco le tre licenze che incontri più spesso, in sintesi:
| Licenza | Tipo | In breve |
|---|---|---|
| MIT | Permissiva | Molto libera: usa come vuoi, mantieni l'attribuzione |
| Apache 2.0 | Permissiva | Simile a MIT, con tutele aggiuntive su brevetti |
| GPL | Copyleft | Se distribuisci, devi rilasciare con la stessa licenza |
Licenza MIT
La più diffusa e amata per la sua semplicità e libertà. Praticamente: "fai quello che vuoi, ma cita l'autore e non ritenerlo responsabile". Ideale per chi vuole massima adozione del proprio codice.
Licenza Apache 2.0
Permissiva come la MIT, ma con clausole esplicite sui brevetti che la rendono più adatta a contesti aziendali. Una scelta solida per progetti seri.
Licenza GPL
La più nota tra le copyleft. Garantisce che il software resti libero: chi lo usa e distribuisce deve mantenere la stessa libertà. Ottima per la filosofia del software libero, ma da valutare con attenzione in contesti commerciali.
Perché le licenze contano per te
Anche se non scrivi software da distribuire, le licenze ti riguardano in pratica:
- Quando usi librerie: ogni dipendenza ha una licenza. Alcune (copyleft forti) potrebbero imporre obblighi al tuo progetto.
- Quando rilasci codice: scegliere la licenza giusta determina come gli altri potranno usarlo.
- In azienda: usare codice con licenze incompatibili può creare problemi legali seri.
Il consiglio pratico: prima di integrare una libreria in un progetto importante, dai un'occhiata alla sua licenza. Per la maggior parte degli usi, le librerie con licenza MIT o Apache sono le più sicure e flessibili.
In sintesi
Una licenza software stabilisce come un codice può essere usato, modificato e distribuito; senza licenza, il codice non è liberamente utilizzabile. Le licenze open source si dividono in permissive (come MIT e Apache, molto libere) e copyleft (come GPL, che impongono di mantenere l'apertura). Conoscere le licenze è importante sia quando usi codice altrui sia quando rilasci il tuo, per evitare problemi legali.
Per il contesto, vedi cos'è l'open source e cos'è una libreria.