venerdì 9 dicembre 2016

Software e pregiudizi

Stamattina su una rivista specializzata sul mondo delle auto ho trovato un articolo sulla cybersicurezza, intesa come sicurezza dei sistemi informatici che anche sulle automobili stanno prendendo il sopravvento, quindi argomento quanto mai attuale ed interessante. In particolare, l'articolo citava gli attacchi che maggiormente sono stati perpetrati nel 2015 e nel 2016 sulle auto; tra questi, riporto i ransomware (argomento di un mio precedente post, anche se ignoravo che la cosa potesse essere arrivata anche sulle auto) e gli errori dei software opensource.
Solo la mia radicata educazione, considerato che ero in un luogo pubblico in presenza di estranei, mi ha impedito di saltar su e di esternare la mia sorpresa con una colorita espressione (che sarebbe suonata più o meno equivalente a: "Ohibò! Qual ragione può aver portato costui a cader in cotanto errore?").

Un software "opensource" si distingue da quelli "closedsource" non per la qualità del software, ma semplicemente perché del primo sono resi pubblici anche i cosiddetti codici sorgenti, del secondo no. I codici sorgenti altro non sono che la forma leggibile della logica del programma, che risponde a ben definite regole strutturali e sintattiche, che poi viene trasformata da appositi programmi ("compilatori") nel codice eseguibile dal processore, che è tutto meno che intellegibile. Il vantaggio è che chiunque, ovviamente con le opportune competenze, può controllare il codice (e quindi anche trovarne gli errori).

Sfatiamo un mito: il software non funziona sempre come vorremmo, e come vorrebbe anche colui che lo scrive; il software perfetto, semplicemente, non esiste. Scrivere software è uno dei lavori più difficili che esistono, l'errore è sempre possibile; infatti la qualità di un software non dipende solo dalla bravura di colui che lo scrive, ma anche , e secondo me soprattutto, dalla quantità e qualità dei test a cui viene sottoposto prima di essere rilasciato per l'utilizzo. Ora, normalmente (ma non sempre) i software opensource sono scritti da persone appassionate che cercano nella soddisfazione di aver fatto un buon lavoro la loro ricompensa; e infatti spesso questi software sono disponibili gratuitamente per l'utilizzo. Invece, normalmente (ma non sempre) i software closedsource sono prodotti da aziende che poi guadagnano vendendo la licenza d'uso. Solo ad una disattenta lettura, come quella della rivista in questione, può portare all'equazione che l'opensource è di qualità peggiore, quindi possiede più errori, di un closedsource. Infatti, accade frequentemente che le aziende rilascino i software valutando più gli aspetti commerciali rispetto a quelli tecnici; per dirla più semplicemente, i software non vengono testati a sufficienza, e quindi escono ancora immaturi. Né è vero che i migliori programmatori sono quelli che lavorano per le aziende; al contrario, gli autori di alcuni dei software opensource più diffusi mai hanno lavorato per delle aziende di software, e vivono grazie alle consulenze che si guadagnano grazie al loro lavoro "gratuito".

Detto così, potrebbe sembrare che il mondo opensource sia tutto rose e fiori e le aziende di software siano il diavolo: anche in questo caso sarebbe una lettura disattenta. Anche nel mondo opensource operano aziende, che fanno grandi profitti non grazie alla vendita delle licenze, ma ai servizi professionali che forniscono agli utilizzatori; e di conseguenza possono cadere vittima dei loro pur legittimi interessi economici. D'altro canto, faccio l'esempio del più celebre database al mondo, prodotto da una ricchissima azienda nota anche dai non addetti ai lavori, nel cui software è stato volontariamente omesso un controllo, cosa che sarebbe normalmente considerata un grave errore di programmazione, per ottimizzare le prestazioni della gestione della memoria!

Ecco perché stamattina sono saltato (silenziosamente...) dalla sedia: in quel contesto, citare tra i problemi di sicurezza della "informatizzazione" delle auto i software opensource suonava come un pregiudizio bello e buono. Personalmente non sono mai andato a controllare il codice sorgente di un software per verificarne la qualità, ma potrei citare (e non escludo di farlo in futuro su questo blog) esempi di software splendidi, sia opensource che non, sia gratuiti che a pagamento. E comunque, manterrò sempre una lucida diffidenza su tutti i sistemi che abusano dell'utilizzo di software, qualsiasi sia la sua provenienza.

Nessun commento:

Posta un commento