Premessa
Questo post nasce da una riflessione scaturita da una serie di osservazioni recenti, tutte relative all’interazione utente-dispositivo, dove ‘dispositivo’ può essere di tutto — da un telefono, a un software, a un computer, a un sistema operativo. Leggevo l’altro giorno dei difetti del nuovo BlackBerry Storm evidenziati da David Pogue; poi mi è capitato di aiutare mia moglie (che si ostina a usare PC) a risolvere una situazione frustrante su Vista (un sito in Firefox richiedeva l’installazione di un plug-in di Java, e proponeva un download diretto; Vista ha iniziato a protestare visualizzando una finestra di dialogo “Questa versione di Java potrebbe essere anteriore a quella già installata nel sistema” — cercando di chiudere la finestra se ne apriva un’altra e così via, e la povera Carmen si ritrovava con 24 finestre di errore identiche e sovrapposte. Abbiamo dovuto chiudere forzatamente quasi tutto usando l’equivalente Windows di Monitoraggio Attività); poi, nei miei tentativi di installare NEXTSTEP 3.3 prima su una macchina virtuale in Virtual PC 7, poi su un PC vero, non ho potuto fare a meno di notare la complessità dell’intera procedura di installazione. Ieri notte, infine, leggevo questo post dell’amico Lucio. Volevo commentare direttamente, perché con queste premesse mi ritrovavo particolarmente ispirato. Ma visto che quando un argomento è gustoso io faccio fatica a essere sintetico, ho pensato di estendere la riflessione in questa sede.
Nel post su Ping! Lucio propone due alternative ‘ipotesi di lavoro’ per l’evoluzione di Mac OS X:
Mac OS X dovrebbe evolversi verso un enorme sistema che ingloba quanto più può in termini di funzioni, per accontentare il maggior numero di utenti da subito dopo l’installazione, oppure un software snello ed essenziale che ognuno è libero di arricchire e personalizzare come può utilizzando ciò che offre la piazza software?
Ecco, io vorrei che il futuro sistema operativo, qualunque esso sia (ma chiaramente preferirei si trattasse di Mac OS X), sia una somma di queste due alternative. Vorrei che fosse fondamentalmente trasparente e modulare.
La trasparenza
I sistemi operativi attuali a mio avviso soffrono tutti, in varia misura, di un problema radicale: sono troppo presenti, troppo in faccia all’utente, troppo egocentrici. Un sistema operativo evoluto deve essere trasparente. Deve togliersi di mezzo quanto più possibile e lasciare che l’utente si concentri su quel che sta facendo o che deve fare. Questo vale per il sistema operativo e naturalmente per i software da utilizzare. Mi ha particolarmente colpito una recente osservazione di Rands: Quando sto usando Word, continuo a vedere Word, e non quel che dovrei vedere, ossia ciò che sto scrivendo. Che è verissimo, direi addirittura che vale per l’intera piattaforma Microsoft Windows. Questo non accade se il software (e l’intero sistema operativo) è progettato per essere trasparente. Sono sempre stato un sostenitore delle soluzioni incentrate sui documenti, non sulle applicazioni (vedi come funziona il Newton, o come avrebbe dovuto essere l’architettura OpenDoc, o come funzionava il Lisa). Nel mio sistema operativo ideale, che dovrebbe preoccuparsi dell’utente e non del proprio ombelico, l’utente non dovrebbe porsi il problema di quale software utilizzare per eseguire il tal compito, ma concentrarsi sul compito: sarà il sistema operativo a fornire gli strumenti.
Trasparente non vuol dire invisibile. Trasparente non vuol dire occultare informazioni utili all’utente. È chiaro che per ragioni di sicurezza, se occorre installare software che richiedono permessi di amministratore, il sistema operativo dovrà darne notifica e lasciare la decisione all’utente. Esprimendosi però sempre in un linguaggio accessibile. E, soprattutto, evitando di proporre all’utente delle alternative potenzialmente disorientanti e foriere di disastri. Quel messaggio che Windows Vista ha visualizzato al centro dello schermo del portatile di mia moglie è oscuro, non aiuta a risolvere la situazione, e non permette all’utente di decidere nulla, malgrado proponga le opzioni di ‘Accettare’, ‘Ignorare’, ‘Annullare’. Che cosa significa che “Questa versione di Java potrebbe essere anteriore a quella installata nel sistema”? L’obiezione che sorge spontanea davanti a un tale messaggio è Se non lo sa il sistema operativo, dovrei forse saperlo io? E, aggiungo, se il sito propone di installare Java, non è che per caso manca qualche componente? Che poi sto dando per scontato che l’utente sappia anzitutto che cosa sia Java. Un sistema operativo intelligente e trasparente non mette il malcapitato utilizzatore in un tale ginepraio, ma installa le componenti necessarie a visualizzare i contenuti, facendo le verifiche necessarie della bontà e sicurezza del plug-in in background e al limite notificando all’utente l’operazione in corso. Se il sistema incontra un elemento che richiede il permesso dell’utente, che lo richieda, formulando la richiesta in un linguaggio il più possibile chiaro e corretto.
Tutta l’attività del sistema deve essere tracciata e tracciabile, dando all’utente la possibilità di tornare indietro se necessario. Anche qui, occorre rifondare il linguaggio dei sistemi operativi. Andate in Console e osservate il contenuto di system.log e ditemi che cosa e quanto capite di quel che sta scritto. Nel sistema operativo che vorrei, ci dovrebbe essere un elemento cliccabile chiamato Attività sul piano di lavoro. Aprendolo, ci sarebbero scritte cose del genere:
- 28 nov 2008 — 07:43 — Avvio del computer.
- 28 nov 2008 — 07:43 — Caricamento del sistema operativo.
[…]
- 28 nov 2008 — 11:10 — Documento di testo “Lettera ad Apple” spostato nella cartella “Posta da inviare”.
- 28 nov 2008 — 11:14 — Documento immagine “Welcome to Macintosh.png” scaricato dal sito “Wallpapers.com” e archiviato nella cartella “Download”.
Se un’azione è annullabile, a lato comparirà un pulsante che permetterà di tornare indietro indefinitamente, una sorta di Time Machine esteso a tutto il sistema. Nell’esempio sopra, le prime due entrate non sono ovviamente modificabili, le seconde sì. Si potrebbe valutare l’opzione di visualizzare un resoconto in modalità esperta, che se attivata visualizzi entrate come:
- 28 nov 2008 — 13:03 — L’applicazione “Photoshop CS7” ha causato un conflitto con una componente della scheda grafica. [Maggiori informazioni] [Segnalare il problema]
Premendo “Maggiori informazioni” il sistema fornirà un elenco dettagliato del problema, comprensibile dagli addetti ai lavori, così che se l’utente è un programmatore o non è uno sprovveduto, possa avere un’idea più precisa di quel che è capitato.
In ogni caso, il nocciolo è comunicare in maniera il più possibile chiara e priva di ambiguità, indipendentemente dal livello di conoscenze dell’utente.
Sempre per parafrasare Rands, un sistema operativo dovrebbe essere intelligente in modo da potermi permettere di essere stupido. In questo senso, Apple mi dà certamente più speranze della concorrenza. Per esempio, un dettaglio che mi è sempre piaciuto dell’iPod prima e dell’iPhone adesso è il fatto che non sia necessario sapere dove sono archiviati i file, le applicazioni, i video e la musica su questi dispositivi. So che ci sono, li vedo, ne ho un accesso istantaneo. Vorrei un sistema operativo per computer che abbia questo tipo di trasparenza. Che non sia necessario sapere in quale sottolivello si trova la directory tale o la cartella talaltra. Il sistema avrà la sua area protetta per evitare che l’utente ci metta le zampe facendo sfracelli. Poi vi sarà un’area per l’utente in cui mettere tutto ciò che si vuole. Le gerarchie e i livelli esisteranno sempre, ma con un potente sistema di ricerca a tutto campo (immaginate uno Spotlight davvero ben fatto) l’utente avrà sempre meno l’esigenza di esplorare in verticale, per così dire.
Insomma, in un sistema operativo davvero trasparente, quando sto davanti al computer vedo il mio lavoro, non quello di altri.
La modularità
Oggi in tutti i sistemi operativi è assai facile installare nuove componenti, nuovo software di sistema e di terze parti, nuovi aggiornamenti, e così via. Spessissimo tutti questi software creano cartelle e file di impostazioni e preferenze in uno o più luoghi all’interno del sistema. L’utente è abbastanza ignaro di questi movimenti dietro le quinte, e la cosa andrebbe anche bene così, se non fosse che quando si vuole togliere del software, l’operazione non è così facile e trasparente. E si finisce con l’avere file sparsi in vari punti del disco rigido, spesso dai nomi astrusi e poco descrittivi, che l’utente dovrebbe eliminare a mano, sperando di eliminare i file corretti e sperando di eliminare tutto quanto era associato all’Applicazione XYZ.
In un sistema operativo veramente modulare, le cose funzionerebbero diversamente. Per prima cosa, all’atto dell’installazione del sistema stesso, l’utente dovrebbe trovarsi di fronte un menu ben congegnato, semplice da leggere e da comprendere, che presenti una serie di opzioni di cui l’utente possa facilmente capire le implicazioni. In questo Mac OS X ideale, l’utente inserisce il DVD (o il Blu-Ray!) di installazione, e Mac OS X gli dà il benvenuto. Poi vengono presentate le opzioni e i moduli che è possibile aggiungere. Si vuole il modulo “grafica e Web”? Mac OS X installerà applicazioni stile iLife. Si vuole il modulo “musica e video”? Ecco gli equivalenti futuri di iMovie e Garageband. Si vuole il modulo “business”? Ecco i futuri Keynote e Numbers. Fin qui niente di speciale. Il bello arriva quando l’utente, che ha voluto provare il modulo “Musica e Video” per fare quattro pasticci, si accorge che non gli interessa più, che occupa troppo spazio su disco, ecc., e lo vuole eliminare. Va a un ipotetico menu “Operazioni di Sistema” e sceglie l’eliminazione del modulo “Musica e Video”, eventualmente specificando se vuole rimuovere solo “Musica” o solo “Video”. Mac OS X chiede conferma e poi procede a eliminare l’intero modulo senza lasciare alcuna traccia. I file video e/o musicali creati dall’utente naturalmente rimangono salvati, a meno che non sia l’utente stesso a dare il permesso al Disinstallatore di eliminare anche quelli. In caso di pentimento, l’utente andrebbe nella “Console” (vedi sopra), troverebbe una voce come “28 Nov 2008 — 14:44 — Eliminata la cartella “Progetti video” (segue elenco dei file)”, farebbe clic su [Annulla] e, in puro stile Time Machine, i file riapparirebbero. L’operazione di ripulitura sarebbe comunque sempre… pulita.
In questo modo non ci si ritroverebbe con file orfani o cartelle contenenti la cache di un browser che abbiamo installato per prova sei mesi fa e che è rimasta lì, con i suoi 95 MB di file inutili (mi è accaduto facendo pulizia sull’iBook G3 clamshell — la cartella della cache era di Chimera, ossia l’attuale Camino quando era ancora alla versione 0.0.6 o giù di lì). Con un sistema modulare e versatile, l’utente sarebbe libero di installare quel che vuole sapendo che potrà sempre eliminare tutto senza lasciare residui e soprattutto senza compromettere la stabilità del sistema. In caso di problemi con un aggiornamento di sistema o di un certo software, l’utente potrebbe semplicemente dire a Mac OS X di annullare l’operazione e ripristinare la situazione com’era prima dell’aggiornamento problematico. Secondo me con un sistema del genere si lavorerebbe ancora meglio, sicuri di non correre il rischio di fare sciocchezze, di prendere decisioni poco informate (perché il sistema ci chiede di intraprendere azioni utilizzando un linguaggio oscuro e ambiguo), e soprattutto con la sicurezza che, qualsiasi cosa accada, si può tranquillamente tornare sui propri passi.
Quindi, per rispondere a Lucio, Mac OS X dovrebbe poter offrire all’utente entrambe le opzioni: rimanere snello ed essenziale, lasciando all’utente la libertà di usare soluzioni e software alternativi, lasciando persino all’utente la libertà di installare solo la parte UNIX senza interfaccia grafica, nel caso l’utente sia sufficientemente nerd per occuparsi del resto; e poter offrire più funzioni e soluzioni fatte in casa da Apple per quell’utenza che vuole avere una macchina completa e versatile fin da subito.
3 Comments