Archivi categoria: software

La continua evoluzione

Nel mondo dei libri fisici esistevano le edizioni.

Non è il mondo del web, dove le modifiche avvengono a ciclo continuo, e neppure quello delle app. Con gli aggiornamenti automatici delle applicazioni, i cambi di versione del software sono diventati poco percepibili, dal punto di vista degli utenti. E anche i libri digitali e le opere multimediali possono o potrebbero venire modificati e aggiornati in automatico (anche se è sperabile che ciò non accada senza il consenso di autori e fruitori).

Problema serio, per chi debba gestire gli archivi o studiare le opere basandosi sulla loro evoluzione nel tempo.

“The Web is about rapid evolution. It’s not about new editions. It is rather about an eternal beta and continuous flow. This is not print anymore. That age is over.” (Gerry McGovern).

Software e autismo

“Chi fa selezione del personale ha notato che le qualità mentali tipiche di un buon programmatore assomigliano a quelle che portano a diagnosticare la sindrome di Asperger: un interesse ossessivo per soggetti ben delimitati; una passione per i numeri, i pattern e le macchine; una passione-dipendenza per task ripetitivi; l’assenza di sensibilità per gli aspetti sociali.”

“In praise of misfits”, The Economist, June 2nd 2012

Software medico

“Più di metà degli apparecchi medici venduti in America (il maggior mercato di strumenti medici) è basata su software, spesso su molto software. Il software di un pace-maker può contenere oltre 80.000 righe di codice, un infusore di farmaci 170.000, e un apparato per la risonanza magnetica oltre 7 milioni di righe di codice.”

L’affidabilità di questo software è ovviamente critica. Uno studio condotto su apparati venduti negli USA dal 1999 al 2005 ha scoperto che un terzo di tali apparati sono stati tolti dal servizio per problemi legati al software.

Una strada per rendere il software medico più affidabile potrebbe essere l’open source, per permettere una migliore visibilità e la possibilità di esaminare il codice. Purtroppo, i regolamenti di approvazione del software stabiliti dagli enti di validazione (come la FDA, la Food and Drug Administration degli USA) sono fatti in modo da scoraggiare il ricorso alle pratiche collaborative tipiche dell’open source.

“When code can kill or cure”, The Economist, Technology Quarterly, June 2nd 2012.

La qualità del codice software è importante

La qualità del codice è importante, scrive Bjarne Stroustrup, l’ideatore del linguaggio di programmazione C++ , in un articolo pubblicato a gennaio 2012 su IEEE Computer.

Importante, in particolare, per il software presente in quei dispositivi su cui la nostra vita quotidiana si regge. Il software che controlla le automobili, i treni, gli aerei. Ma anche i dispositivi medici, gli apparati di controllo ambientale, i telefoni cellulari, o i PC tramite i quali accediamo ai conti bancari.

Stroustrup definisce tutto il software che può creare danni fisici, ambientali o economici come software infrastrutturale, e sostiene che deve essere progettato e implementato diversamente dagli altri tipi di software, quelli meno rischiosi per gli esseri umani:

“Infrastructure software needs more stringent correctness, reliability, efficiency, and maintainability requirements than non- essential applications. This implies greater emphasis on up-front design, static structure enforced by a type system, compact data structures, simplified code structure, and improved tool support. Education for infrastructure and application developers should differ to reflect that emphasis.”

Interessante, tra l’altro, l’opinione di Stroustrup contraria al Model-Driven Development per il software infrastrutturale: “Many tasks aren’t mathematically well-defined, resource constraints can be draconian, and we must deal with hardware errors. I see no alternative to programmers and designers directly dealing with code for most of these tasks.”

Duraturo – adattabile

Il web è il più grande laboratorio mai esistito per studiare il comportamento umano, secondo Gerry McGovern:

“The Web facilitates continuous testing and improvement. Great web designs are responsive and flexible. They allow for rapid innovation based on feedback.”

Dal “Built-to-last” (fatto per durare) al “Built-to-change” (fatto per cambiare).

Sulla stessa linea, per approfondire, l’ottimo libro di Eric Ries, The Lean Startup.