
Quella del software libero è una visione interna al mondo dell’informatica che nasce negli anni ‘80 del secolo scorso. Indica l’attività di produzione, scambio e promozione di un programma informatico a codice sorgente (cioè le istruzioni che lo definiscono) aperto, rilasciato con una licenza che permette a chiunque di utilizzarlo, copiarlo, studiarlo e modificarlo. Questa attività si è poi evoluta e alla fine del secolo scorso si sono definiti i punti chiave per definire una licenza open source.
Di questo e altro abbiamo parlato con Alberto di Taranto, che nel corso della sua storia professionale ha collaborato alla realizzazione del portale dei dati Open Source della Commissione Europea e che oggi è titolare di Tyto, piccola impresa nata a Trento nel 2013 improntata alla filosofia del software libero. Nel tempo Tyto è cresciuta e adesso lavora soprattutto a grandi progetti in giro per il mondo.
Di cosa si occupa Tyto?
Realizziamo architetture software complesse. Da questo filone principale se ne innestano altri di contorno ma che possono talora diventare importanti. Per esempio, era di contorno tutto quanto legato alla gestione dei dispositivi IoT che sta prendendo forza e sta assumendo un carattere di interesse principale. Tutto nasce dall’idea di gestire e analizzare una grande mole di dati, in modo da individuare delle correlazioni o addirittura, nei casi fortunati, delle relazioni di causa-effetto. L’importanza di ciò risiede nel fatto che possiamo creare software anche molto complessi che ci permettono di prendere rapidamente decisioni in situazioni di emergenza o prevedere evoluzioni di un fenomeno partendo dai dati conosciuti.
Mi fai un esempio concreto di applicazione in cui ti sei trovato a gestire “big data”?
Tempo fa, nel corso di una collaborazione con la Commissione Europea, ricevetti una telefonata che mi avrebbe portato nel giro di pochi giorni a Phnom Penh, capitale della Cambogia, e ad entrare in un team che aveva il compito di disegnare l’architettura che gestisce la previsione delle maree del fiume Mekong (un fiume gigantesco, soggetto a maree superiori ai 12 metri; la Cambogia è un paese estremamente piatto e sbagliare anche di soli pochi decimetri la previsione della marea significa non riuscire ad avvisare popolazioni che abitano nell’entroterra del fiume per decine di km). Il tema è molto complicato ma grazie all’architettura sviluppata che elabora i dati provenienti da 250 centraline disseminate in Cambogia, Laos, Vietnam e Thailandia, è possibile gestire questa situazione quotidiana. È con questo incarico che è iniziato il mio interesse per il settore IoT.
Come definisci IoT?
IoT vuol dire Internet delle cose (Internet of things). Si tratta di una rete di dispositivi in Internet che captano informazioni dall’ambiente e li mandano, in maniera grezza o dopo averne fatto una pre-lavorazione, a un sistema che deve capire e prevedere quello che succederà. Il sistema realizzato in Cambogia con la collaborazione di esperti di geologia, idrologia, etc, analizza l’orografia, la morfologia e la qualità del terreno. Elaborando tutte queste informazioni siamo riusciti a ottenere una previsione con l’errore di 1 cm nelle 24 ore, che è un risultato molto buono, un ottimo esempio di cosa significa causa-effetto, che permette alle autorità di capire chi avvisare e chi non avvisare.
In questo progetto è stato utilizzato software libero?
Poco, purtroppo, perché è ancora molto radicata la convinzione che siccome il software è libero e aperto e quindi tutti lo possono consultare debba essere, per sua natura, meno sicuro. L’idea diffusa è che se vedo come è fatto il software, posso trovare delle falle, aggirare le difese e colpire dove il software non riesce a tutelare i dati. In realtà, il fatto che il software sia aperto permette a chiunque di noi non solo di osservare come in un dato punto non sia sicuro e farlo notare a chi deve scrivere il codice, ma permette a noi di vedere se ci sono, per esempio, dei sistemi fraudolenti che possano rubare informazioni. Una grossa azienda americana, nota per la qualità eccezionale del suo software, decise anni fa di aprire con licenza open source il proprio database. Rendendolo open source, i programmatori si resero conto che c’era una backdoor, quindi con un login e la password specifica si riusciva a entrare come amministratori nel sistema. Chiaramente questa vulnerabilità fu prontamente corretta.
Quindi la trasparenza di un codice aperto garantisce vigilanza e maggiore sicurezza?
Certo, la trasparenza aiuta sicuramente. Qui però serve una puntualizzazione. Libero è una parola che in inglese ha più significati: free vuol dire sia libero che gratuito. L’italiano può operare una distinzione maggiore perché possiamo avere software libero a pagamento. La mia azienda, se può, preferisce produrre software che non solo sia aperto, ma anche gratuito e che chiunque possa usarlo. Ciò vuol dire scrivere software di eccellente qualità, perché di solito non si va a mettere in piazza la sporcizia che c’è sotto il tappeto. Il grosso fraintendimento nasce dal dubbio che se si realizza software gratuito allora non ci si guadagna. Se non si guadagna come si fa a vivere? Da qui il sospetto che ci deve essere sotto qualcosa di poco chiaro.
Dunque quali sono i vantaggi del software libero per chi lo produce?
La risposta forse esula dai tradizionali meccanismi della contrattazione commerciale. Nelle normali transazioni commerciali acquisto il diritto d’uso di un software che rimane chiuso, lo uso, dopodiché se non mi va più bene, ne compro un altro, lo cambio, provo con qualche altro fornitore. Dietro al software aperto c’è una comunità di sviluppatori che lo usa e lo migliora, correggendo in tempi rapidi eventuali errori. Gli utenti stessi fanno da tester contribuendo a sviluppare un software “robusto”. Tutta la fase di test del software avrebbe un costo aziendale alto. Con il software libero ho una platea di centinaia di migliaia di persone che lo utilizzano contribuendo ad alzare la qualità del mio lavoro.
Un’altra fonte di guadagno è la personalizzazione. Se qualcuno trova interessante il software che ho distribuito a livello mondiale però fa solo il 98% di quello che desidera, per fare il restante 2% ha tre possibilità: completarlo in autonomia, affidarsi a un’azienda con cui già collabora oppure contattarmi per la personalizzazione. Entrambe le parti sono soddisfatte, il cliente che ha un prodotto che funziona al 100% come vuole lui e il software stesso che ha aggiunto nuove funzionalità.
E il cliente che vantaggi ha ad affidarsi a te in quanto softwarista libero?
Generalmente per il cliente i costi per un software libero o chiuso non sono molto diversi, ma i vantaggi che offre il libero sono molteplici. Il principale è che si mitiga l’effetto vendor lock-in, cioè la dipendenza che si instaura con un fornitore. Utilizzando un software chiuso per elaborare e conservare i dati rischiamo di non riuscire a spostarli da un software all’altro. O che diventi un’operazione costosissima o impossibile. Se invece il codice è aperto, vuol dire che anche la struttura dei dati è aperta ed è disponibile e consultabile. I motivi per cambiare possono essere molti: software che non funziona bene, o il cui sviluppo viene interrotto, il fallimento del fornitore o semplicemente il cambio delle necessità di chi lo usa. Chiediamoci inoltre: se un cliente utilizza un software chiuso, ad esempio un editor di testi, per scrivere un documento, quest’ultimo di chi è? Se un domani l’azienda proprietaria decide, legittimamente, in quanto formato proprietario, di chiedere due centesimi di euro ogni volta che il cliente vi accede, quel documento è ancora del cliente?
Che ruolo svolge la comunità di sviluppatori?
Senza la comunità il software libero non esisterebbe. È la comunità che lo usa, lo testa, lo commenta e lo fa crescere. Per esempio il sistema per mobile Android è un sistema basato su Linux. Entrambi sono quasi completamente open source. Entrambi i software sono a disposizione di tutti, ma Android non può essere considerato un sistema veramente open source perché gli manca una comunità alle spalle. Se un domani viene scoperto un malfunzionamento o una falla non c’è nessuna comunità che la sistemi. Ogni segnalazione deve essere inviata a Google che probabilmente la rigetterà. È la sottile differenza che c’è tra software libero e open source che spesso sono utilizzati, a sproposito, come sinonimi.
Google, come tante aziende, ha interesse a tenere accentrate le conoscenze e fare in modo che il codice sia libero ma non libero di essere modificato. È gratuito e libero perché esistono delle implementazioni di Android che non sono mantenute da Google ma da altre aziende che hanno fatto una grandissima fatica a ottenere il codice completo e ad aggiungergli funzionalità non previste.
Che diffusione ha nel mondo l’open source?
Enorme e pervasiva. Tutti i telefoni Android, quasi tutti i televisori smart e i navigatori GPS hanno al loro interno un sistema Linux. Linux è nato esattamente 30 anni fa dall’idea di uno studente universitario finlandese, Linus Torvalds, dalla volontà di rifare e superare un vecchio sistema operativo, Minix, basato su Unix, che era libero solo a scopi didattici. Torvalds ha condiviso in rete il suo lavoro dando vita a un modo rivoluzionario di realizzare software. Oggi l’80% del traffico Internet è basato su server con sistema operativo Linux, perché in questo modo i server sono nettamente più performanti, molto più economici e più sicuri. A parità di applicazioni non ha senso usare macchine diverse da Linux. Al contrario, la percentuale di PC che utilizzano Linux è inferiore al 4%… davvero mosche bianche.
Vuoi dire che il mercato ha fatto in qualche modo suo l’open source?
Si. Considera che lo stesso Windows in futuro sarà probabilmente basato su sistema Linux. Già adesso si vedono piccole avvisaglie di questa tendenza. Naturalmente ciò avviene perché sta diventando un vantaggio economico usare software aperto. Se Microsoft utilizza un sistema operativo Linux delega alla comunità buona parte di test e risoluzione dei bug che attualmente deve gestire in casa. Per l’utente non cambia nulla perché l’interfaccia resta uguale e Microsoft risparmia sulla manutenzione. Anche la comunità avrà un vantaggio, poiché un contratto funziona solo se entrambi i contraenti ci guadagnano qualcosa.
Quindi sia le aziende produttrici di software che i clienti ci guadagnano a usare il software basato sul codice aperto?
L’azienda guadagna perché fa molti meno test, l’utente finale perché si trova un prodotto già pronto e con licenza d’uso gratuita. Inoltre, se lo desidera, può stipulare un abbonamento per essere assistito, che è diverso da spendere soldi per comprare il software. Chi non vuole pagare è autorizzato a usare il software ma senza assistenza. Nel caso di software chiuso, nella maggior parte dei casi si paga una licenza d’uso senza avere l’assistenza. Ciò significa che mentre l’utente usa il software, se si imbatte in un errore il programma invia automaticamente un report all’azienda senza che l’utente se ne accorga. Tutti gli attori in gioco traggono vantaggio.
Un altro esempio è il caso di Red Hat il più grosso produttore al mondo di software totalmente libero. Nel 2019 è stata acquistata da IBM per 34 miliardi di dollari. Ed è un paradosso, perché tutto il software di cui è proprietaria è liberamente disponibile in codice sorgente, in quanto open source, e il suo utilizzo è garantito come gratuito a vita. Il suo valore di mercato è dato dal fatturato annuo (3,4 miliardi di dollari nel 2018) che riesce a generare vendendo un’assistenza di qualità eccellente: risposte competenti in brevissimo tempo.
Qual è la relazione tra quanto hai appena raccontato e un’economia che vorremmo più solidale?
Anzitutto, un patto in cui tutti ci guadagnano qualcosa è un patto di solidarietà. Inoltre, non pagare o pagare costi molto bassi per licenze proprietarie dei sofware più diffusi è frutto di un mercato reso più ‘democratico’ anche dalla comunità del software libero. Infine, non sottovaluterei l’importanza del fatto che, in un mondo dove tutto ha un prezzo, e quindi anche la cultura, ci sia la possibilità di accedere gratuitamente a molti canali informativi. Significa che le aziende scelgono di chiedere soldi a chi vuol fare soldi con un certo software, e di darlo in licenza gratuita a chi userà il software solo per aumentare la propria conoscenza e competenza.