Avete presente le lotte che hanno fatto la storia dell’umanità come quella tra Guelfi e Ghibellini, o le grandi guerre mitologiche che hanno fatto parlare di sé per generazioni e generazioni (e lo fanno ancora) come quella di Zeus contro i titani?
Bene, spostandoci un attimo nel mondo IT esiste qualcosa del genere che da anni ed anni si insinua tra le mura del software informatico: l’eterna battaglia tra software a sorgente aperto – open source – e software a sorgente chiuso – closed source.
In breve, un software viene detto open source quando il codice sorgente è reso disponibile a chiunque ed è spesso anche modificabile e riutilizzabile; al contrario, un software closed source non viene reso disponibile a nessuno (spesso neanche ai tester che lavorano nelle software house d’interesse, ovvio).
L’utenza è abbastanza divisa sul prediligere l’uno o l’altro software: è facile trovare autentici fan dell’open – qualche volta anche perché viene associato (in modo assolutamente errato) al concetto di open source anche il concetto di gratuità -, d’altra parte non è difficile trovare anche chi sostiene a spada tratta il software a sorgente chiuso.
Perché? Esistono davvero casi in cui il software non dovrebbe essere open source?
Mi è capitato di leggere un thread su reddit che parlava proprio di questo, ed è stato abbastanza interessante notare i punti di vista differenti di diversi partecipanti.
La risposta prevalente, esattamente come mi aspettavo, è stata un no secco: secondo alcuni il codice dovrebbe essere sempre e comunque open source per una questione di chiarezza e di trasparenza verso la comunità che lo utilizza, soprattutto alla luce degli avvenimenti celati-ma-non-troppo (qualcuno ha parlato di backdoor infilate dalle agenzie di sicurezza?) dei giorni nostri e per garantire sicurezza costante e margini di miglioramento praticamente infiniti.
E proprio di backdoor parla sarcasticamente Sicl4, sottolineando che un software dovrebbe essere closed source quando il programmatore “vuole essere in grado di far cadere l’utente finale in back doors, spyware o altre funzionalità ostili”.
Secondo sisyphus, invece, un software dovrebbe essere closed source quando da funzionale rischierebbe di essere trasformato in qualcosa di inutile: considerando ad esempio un meccanismo di prevenzione dello spam, se un codice del genere finisse nelle mani di un programmatore spammer questi potrebbe essere in grado di capire come eluderlo, rendendolo appunto inutile.
Wmcscrooge la pensa in maniera simile, pur parlando di software invece craccato: secondo questi infatti la chiusura del sorgente potrebbe essere una barriera di protezione aggiuntiva per tutte quelle aziende consapevoli di non avere abbastanza risorse per assicurarsi la protezione completa dagli hacker, pur sottolineando che esistono abbastanza sviluppatori “open” nel mondo in grado di perfezionare il software.
Ciò si riallaccia al discorso sarcastico di mudclub, secondo il quale un software potrebbe essere closed anche per nascondere le immense falle di sicurezza con cui la software house proprietaria cerca di venderlo.
Ancora, c’è chi parla di concorrenza ed afferma che un software dovrebbe essere closed source per “difendere” le funzionalità esclusive ed impedire ai competitor di copiarle e, discorso assolutamente affine, c’è chi afferma che un software dovrebbe essere closed source quando in esso vengono utilizzate parti di codice esterne per cui il programmatore (o la software house) paga licenza a parte.
Insomma non è difficile immaginare scenari in cui un software dovrebbe essere a sorgente chiuso ma noi teniamo ad avere la vostra opinione: secondo voi, esistono davvero casi in cui un software dovrebbe essere a sorgente chiuso… o ritenete che open, accessibile e modificabile da tutti e potenzialmente chiaro e sicuro sia meglio?
Fatecelo sapere!