Cos'è il software open source? Open source e FOSS spiegato

Alla base di ogni software che utilizzi c'è il codice sorgente che emette i comandi e gestisce i dati che consentono al software di fare ciò che fa. La questione di chi dovrebbe avere il diritto di guardare, modificare o ridistribuire quel codice sorgente è stata a lungo una delle fondamentali divisioni ideologiche nel mondo dei computer.

I fautori del software open source, come suggerisce il nome, scendono dalla parte dell'apertura; ritengono che le persone dovrebbero avere il diritto di accedere al codice sorgente del software che utilizzano. Come vedremo, però, in pratica c'è molta varietà che rientra in quell'etichetta. Esistono vari tipi di software open source praticamente in ogni nicchia a cui puoi pensare, in effetti, l'open source domina molti di essi.

Cos'è il software open source, cos'è il software libero e sono diversi?

Una definizione succinta di software open source è che si tratta di software il cui codice sottostante può essere esaminato, modificato e ridistribuito. (C'è una definizione più lunga e ufficiale a cui arriveremo tra poco.) Le parti "alterate e ridistribuite" sono davvero la chiave della filosofia open source. Nonostante ciò che il nome potrebbe suggerire, aprire semplicemente il codice sorgente in modo che le persone possano guardarlo non lo rende open source.

In un certo senso, il termine "software open source" è un retonimo: nei primi decenni dell'informatica, il codice sorgente del software era disponibile come una cosa ovvia e liberamente scambiato tra ricercatori e scienziati del settore. I computer erano pochi e lontani tra loro e ci si aspettava che fossero ampiamente modificati dai loro utenti, quindi le persone avevano bisogno di accedere al codice. Per molti versi il software era visto come un'aggiunta all'hardware del computer; solo nel 1974 fu stabilito legalmente che il software fosse soggetto a copyright. Ma quando l'era del microcomputer è iniziata alla fine degli anni '70, l'industria ha iniziato a passare alla posizione che il software era qualcosa che aveva un valore monetario in sé e per sé e che l'accesso al codice sottostante poteva e doveva essere limitato al fine di proteggere i creatori di software 'diritti.La famosa lettera aperta di Bill Gates del 1976 agli hobbisti che si lamentava della diffusa pirateria del primo prodotto Microsoft, l'interprete Altair BASIC, è un documento spartiacque di questo cambiamento.

Sebbene queste nuove idee siano state rapidamente riprese dall'industria del software in rapida crescita, alcune persone le hanno respinte. Uno dei primi oppositori è stato Richard Stallman, che ha fondato la Free Software Foundation (FSF) nel 1985. Il termine "libero" nel software libero ha lo scopo di denotare la libertà degli utenti di modificare e distribuire il codice a loro piacimento; non esiste una regola contro l'addebito di denaro per il software libero in questo senso. La distinzione viene spesso fatta tra "gratis come nella birra gratis" e "libero come nella libertà di parola", con il software libero che si trova in quest'ultimo campo.

Tuttavia, l'idea del software libero rendeva nervose molte persone nell'industria privata, che, dopo tutto, non erano fan del dare via le cose. Nel 1998 Christine Peterson ha coniato la frase "open source" in parte come tentativo di rendere l'idea più accessibile ai nuovi arrivati, in particolare a quelli che lavorano in aziende a scopo di lucro. Sebbene Stallman abbia resistito al termine open source, dicendo che si allontana dalle idee politiche e filosofiche originali del software libero, è diventata la frase dominante che descrive questo concetto. Il diagramma di Venn del software libero e open source si sovrappone abbastanza che a volte i due sono combinati sotto l'acronimo FOSS (software gratuito e open source) . In generale, tutto il software libero è open source, anche se una piccola parte del software open source ha termini di licenza che significa che non è gratuito (più sulle licenze open source tra un momento).

Il concetto di software libero e open source ha dato origine a un'altra definizione di retronym: "software proprietario ", qualsiasi software che non sia open source.

Licenze software open source

Tutti i diritti e le responsabilità coinvolti nel software open source sono stabiliti dalle licenze in base alle quali il software è distribuito. Quando si affermò la dottrina legale che il software fosse soggetto a copyright, iniziarono a essere scritte licenze software per fornire un contratto tra il proprietario del copyright e l'utente, dando all'utente il permesso di eseguire il software su un personal computer.

Le licenze software originariamente esistevano per limitare il comportamento degli utenti e proteggere i diritti del produttore del software. Ma i sostenitori del software libero si sono resi conto che potevano invertire lo scopo originale delle licenze: la licenza di un pacchetto software potrebbe invece richiedere che il codice sottostante sia disponibile a chiunque utilizzi il software e che gli utenti abbiano il diritto di modificare e ridistribuire quel codice. La prima licenza software open source (sebbene preceda il termine) è probabilmente l'avviso di autorizzazione alla copia di GNU Emacs, rilasciato nel 1985 per la versione dell'editor di testo Emacs scritto da Stallman della FSF.

Da allora il numero di licenze gratuite e open source si è moltiplicato, ciascuna fissando termini leggermente diversi per l'uso del codice concesso in licenza; Wikipedia mantiene un grafico abbastanza buono con i dettagli sulle licenze più importanti. Per definizione, ognuna di queste licenze open source garantisce agli utenti le tre libertà fondamentali di poter leggere, modificare e ridistribuire il codice sorgente; l'area principale in cui differiscono è nei termini che impongono alla ridistribuzione:

  • Le licenze permissive ti consentono di ridistribuire qualsiasi codice sorgente come ritieni opportuno. Ad esempio, potresti prendere il codice sorgente rilasciato con una licenza permissiva, incorporarlo nel tuo software, quindi rilasciare quel software con una licenza proprietaria. La licenza BSD è una delle licenze permissive più famose.
  • Le licenze copyleft richiedono che qualsiasi codice ridistribuito che incorpori il codice concesso in licenza sia rilasciato con una licenza simile. Le varie versioni della GNU Public License (GPL) della FSF sono licenze copyleft e il loro obiettivo è richiedere agli sviluppatori di pagarle condividendo i vantaggi che hanno ricevuto dall'incorporazione di codice open source nel loro progetto.

È interessante notare che le idee alla base di queste licenze si sono diffuse oltre il mondo del software. Creative Commons è un'infrastruttura legale per l'applicazione di termini simili a opere artistiche scritte o visive.

La definizione Open Source e l'iniziativa Open Source

L'open source per sua stessa natura non è controllato da nessuna singola entità o organizzazione. Nel 1998, un gruppo di sviluppatori di spicco, tra cui Bruce Perens ed Eric S. Raymond, ha fondato l'Open Source Initiative (OSI), un'organizzazione no profit dedicata alla difesa dell'open source all'interno dell'industria del software più ampia. L'OSI ha provato e fallito a registrare il termine open source nel 1999; tuttavia, la loro definizione formale di Open Source è, per consenso, il framework che tutte le licenze che si definiscono open source seguono. Oltre alla libertà di esaminare, modificare e ridistribuire il codice di cui abbiamo già discusso, la definizione Open Source vieta le licenze che discriminano gruppi o persone specifici, che impediscono che il codice venga utilizzato per uno scopo o campo di attività specifico, o dall'esecuzione su un dispositivo o tipo di dispositivo specifico.

Sviluppo open source e progetti open source

Lo sviluppo che utilizza codice open source avviene in tutti i tipi di ambienti, dalle università alle grandi aziende, e spesso segue gli stessi schemi di qualsiasi altro tipo di sviluppo software. Ma esiste un tipo specifico di processo di sviluppo comunitario aperto associato all'open source. Nel suo influente saggio "The Cathedral and the Bazaar", Eric S. Raymond ha delineato la sua visione per questo processo, in cui chiunque può accedere al codice e gli aggiornamenti vengono aggiunti alla base di codice da un gruppo ampiamente distribuito di sviluppatori che si immergono e escono come il loro interesse impone.

Lo sviluppo open source di questo tipo è organizzato attorno a progetti open source . Questi a volte funzionano su un singolo pezzo di software e talvolta su un intero set correlato di applicazioni. Il software di controllo della versione mantiene in linea i contributi di tutti. GitHub è probabilmente il più popolare.

A volte iniziati da una sola persona, i progetti open source sono generalmente piccole comunità Internet auto-organizzate e, sebbene chiunque possa contribuire a qualsiasi progetto, la maggior parte viene di solito lavorata da un gruppo relativamente piccolo di sviluppatori. A volte un progetto può essere sponsorizzato da una società a scopo di lucro che prevede di utilizzare il software che produce, arrivando addirittura a mettere a libro paga gli sviluppatori più importanti del progetto.

Esempi open source

Il software open source è infatti onnipresente e crea gran parte delle fondamenta di Internet moderno. Forse il progetto open source più famoso è Linux, la variante Unix open source che alimenta milioni di server. Altri progetti importanti ed estremamente cruciali includono il server web Apache, il database MySQL e WordPress. Numerosi framework di sviluppo vengono rilasciati come open source, da Ruby on Rails a .Net Core di Microsoft.

L'open source ha avuto meno successo nella produzione di software per computer domestici destinato agli utenti ordinari. Nonostante l'elevato costo dei pacchetti software proprietari come Microsoft Word e Adobe Photoshop, le controparti open source come OpenOffice e GIMP non sono mai riuscite a trovare una nicchia al di là degli entusiasti irriducibili, in gran parte perché la comunità open source ha tradizionalmente privilegiato le funzionalità e la flessibilità rispetto alla facilità di uso. (Il blocco del formato di file da parte di fornitori proprietari non ha aiutato.) Anche Linux, i cui sostenitori hanno affermato dalla fine degli anni '90 che il sistema operativo open source è a solo un anno dal dominare il desktop, non è mai riuscito a spazio dei consumatori. In generale, l'open source viene utilizzato per l'infrastruttura molto più che per il software dell'utente finale.Ma il passaggio dal software monolitico eseguito localmente alle app SaaS è stato un vantaggio per l'open source, poiché le infrastrutture basate su cloud sono in gran parte basate su stack dominati dall'open source.

Ricordi cosa abbiamo detto sulle società a scopo di lucro che supportano l'open source? Spesso questi progetti sono prodotti con una licenza permissiva, quindi quelle aziende possono mettere il codice open source al centro delle loro offerte proprietarie mantenendo una base di codice open source separata in parallelo come progetto comunitario. Ad esempio, il sistema operativo mobile Android ha Linux al suo centro; tutti i sistemi operativi mobili e desktop di Apple sono basati su Darwin, un sistema operativo open source originariamente derivato da BSD Unix. Anche Google Chrome è basato su un browser open source chiamato Chromium.

La comunità open source e il movimento open source

L'open source è più di un semplice processo di sviluppo; è una filosofia di cui le persone sono appassionate ed è una comunità sociale a cui può aderire chiunque abbia competenze di programmazione. In effetti, è un'intera serie di comunità, come afferma la Linux Foundation. (L'esistenza di organizzazioni non profit come la Linux Foundation e l'OSI è un aspetto importante di quella comunità.) Florian Effenberger ha un ottimo saggio su come la comunità open source ha arricchito la sua vita.

Sentirai spesso persone parlare del movimento open source o del software libero, che ha una connotazione di politica e difesa. Molte persone nella comunità open source hanno spinto per l'adozione diffusa di software open source per una serie di ragioni: pensano che l'open source produca un codice intrinsecamente migliore, o pensano che l'accesso al codice sorgente sia un diritto fondamentale di cui gli utenti di computer dovrebbero godere, o una combinazione dei due. Questo aspetto della comunità oggi sembra un po 'meno visibile, ma forse è perché, per molti versi, l'open source ha vinto. Nel 2001, l'allora CEO di Microsoft Steve Ballmer disse che, a causa della sua licenza open source, Linux era "un cancro che si attacca in senso di proprietà intellettuale a tutto ciò che tocca". Oggi, Microsoft è un ampio utente e produttore di software open source.Questi sono gli ultimi due decenni di storia dell'open source in poche parole.

Download del software open source

Vuoi iniziare a navigare e armeggiare con progetti open source? Dai un'occhiata alla pagina Progetti e applicazioni di opensource.com, alla scheda Esplora di GitHub o alla mappa del software della rete di sviluppo open source. Ce n'è per persone curiose di qualsiasi livello.