Vorrei prendere posizione nella discussione relativa alla direzione che l'industria del software sembra aver preso. Prima però facciamo un passo indietro, alla lezione di Alan Turing. Con la sua celebre “macchina”, egli mostrò che era un errore inseguire piattaforme hardware sempre più complesse, perché qualsiasi funzione computabile può essere realizzata con una macchina semplicissima: un nastro, una testina e una logica di controllo. E in questo modo inaugurò quella strada che portò all'architettura di Von Neumann, che è tuttora alla base dei nostri computers.
Da allora gli elaboratori sono rimasti concettualmente semplici, ma la tecnologia non ha più smesso di incrementarne le prestazioni. Se in alcuni campi tale incremento è tuttora il benvenuto, in altri, dove le funzionalità essenziali sono ormai assicurate, realizza una spinta verso caratteristiche accessorie che spesso creano inutili complicazioni all'utente non specialista.
Così la competizione avviene sul piano della complessità funzionale e i prodotti software continuano ad arricchirsi di tantissime feature; di molte di queste l'utente resterà per sempre inconsapevole, mentre di un'altra quota non ne individuerà mai un reale utilizzo.
Penso agli affollatissimi pannelli impostazioni di alcuni programmi; a tanti come me piacciono, ma l'utente tipo, che vede l'informatica come un puro strumento e non un fine, ignorerà la maggior parte delle opzioni e di conseguenza si esporrà a modalità funzionali non desiderate.
Ancora, i moderni browser permettono di salvare impostazioni e password on line in modo da ritrovarle quando si usa un diverso computer, magari non nostro. Comodissimo, ma i rischi potete immaginarli da soli.
Tante funzioni poi, in combinazione con altri due elementi sempre più attuali, il cloud e le “scorciatoie” in punta di mouse, di hot-keys o di riconoscimento vocale, creano, temo, anche vulnus di sicurezza. Ho visto utilities che consentono di pubblicare su web con una sola hotkey il contenuto della clipboard, ottenendo un link da inviare via email o durante una chat. Utili, certamente, ma si rischia di pubblicare informazioni per errore, senza mai più avere la possibilità di rimuoverle da internet.
Potrei continuare a lungo con esempi di questo tipo. Eppure non penso che la “colpa” sia delle software house. In realtà per ogni tipo di prodotto esistono sempre numerose soluzioni, da semplici a complesse. Se poi l'utente vuole sempre la “versione di punta del prodotto più professionale”, anche quando ne farà un uso entry level, è lui il responsabile della scelta errata.
Dovremmo prendere consapevolezza che tutto ciò che risiede inutilmente sui nostri devices più che inutile è dannoso; memoria sprecata, maggiore probabilità di bug e malfunzionamenti, maggior consumo energetico, computers sovradimensionati e più costosi. Sono due approcci “filosoficamente” opposti. Guardiamo come le persone usano i cellulari: c'è chi installa tutte le app che incontra e c'è chi invece si impegna per rimuovere tutto il superfluo.
La sfida che mi piace, l'avete capito, è quella opposta alla complessità, nella direzione del downsizing. Individuati i requisiti funzionali, realizzarli sulla più semplice piattaforma possibile.
In questi giorni sono alle prese con diverse P.o.C. (proof of concept) su due differenti microsistemi a singola scheda. Mi chiedo ad esempio se sia possibile, con la stessa spesa oggi necessaria per dotare una classe di un solo computer (talora maldestramente usato dal solo docente), dare in uso a ciascun alunno un dispositivo che svolga, con pari efficienza, le stesse funzioni per le quali quel computer viene utilizzato! E che sia anche dotato di funzionalità per le attività di gruppo. Io credo che lavorandoci su, selezionando bene il codice open source più adatto, sviluppando anche del software ad hoc, l'obiettivo non sia utopistico.