I computer sono inutili, possono dare solo risposte.

— Pablo Picasso

La riga di comando è più user friendly della GUI

Tagged:

http://www.stenoweb.it/files/blog/shell.jpg Molti utenti GNU/Linux preferiscono usare la propria distribuzione tramite riga di comando piuttosto che sfruttare l’interfaccia grafica. Di seguito vengono riportati alcuni tra i motivi principali di questa scelta.

Sarà vero ?

1 . La tastiera è più veloce del mouse

Qualcuno potrebbe “storcere il naso” su questo primo punto; per spiegare questa affermazione è necessario porsi una domanda: perché tutti i programmi con interfaccia grafica sono pieni di keyboards shortcuts? E perchè sono chiamati proprio shortcuts? Perchè fare la stessa operazione con il mouse richiede più tempo.

2. E’ più facile fornire aiuto sui forum

Ogni sistema Debian contiene il pacchetto synaptic e il suo uso è molto diffuso tra gli utenti. Eppure, se si chiede ad un utente synaptic come fare ad installare un determinato pacchetto, con molta probabilità risponderà con un comando apt-get. Un esempio a tal proposito sono i forum, dove, quando si parla di installazioni, si parla molto più spesso di apt-get piuttosto che di synaptic perchè in tal modo è più facile esprimere cò che si vuole dire piuttosto che spiegare tutte le operazioni da fare sull’interfaccia grafica.

Se ad esempio si dovessero spiegare tutte le operazioni da fare con l’interfaccia grafica si dovrebbe scrivere una sequenza di istruzioni come queste: “Vai quì, fai doppio-click, clicca questo pull-down, clicca l’arrow, clicca ‘yes’, clicca ‘edit’., ecc..“. Questo si applica a tutti i sistemi operativi; anche sotto Windows e Mac OS X. E’ più facile definire un’azione in comandi da riga di comando piuttosto che descrivere le azioni del mouse.

Un altro esempio molto pratico (non concernente l’informatica) è la consegna delle lettere per un postino. Il postino possiede solo due informazioni, via e numero civico, invece di avere istruzioni del tipo: “Vai giù sulla strada principale, gira a sinistra, vai all’ottavo edificio sulla sinistra, sali le scale“.

3. Le ingiurie da stress ripetitivo generate dal mouse

Se si prova a fare qualcosa con la tastiera per un attimo e poi qulcosa con il mouse per un attimo si percepiscono diverse sensazioni alle mani. Si può notare che quando si gioca a Diablo o a Starcraft, la mano destra ha crampi terribili dopo un paio di ore di gioco continuate. Ma è possibile giocare a Nethack tutto il giorno e non sentire alcun dolore. Ciò dipende dal fatto che se si fa il lavoro di due mani e dieci dita con un solo polso e tre dita si avrà uno stress a causa del movimento ripetitivo.

4. I comandi sono standard mentre le interfacce grafiche no

Come è possibile trovare una parola in un documento usando una interfaccia grafica? Cliccare su “edit - find and replace“? Cliccare su “view - find“? Cliccare su “find - search page“? E’ presente un’opzione su una finestra di dialogo in alto o al lato? La finestra di ricerca è separata dalla finestra per la sostituzione delle parole o sono combinate? La finestra di dialogo è in grado di capire una espressione regolare? Dipende da quale programma si sta usando, e molto spesso anche dalla versione dello stesso. Inoltre, in base alla piattaforma utilizzata, esistono una dozzina di tools con interfaccia grafica per realizzare la stessa operazione. Se si lavora con distribuzioni diverse come si fa a capire quali tools con interfaccia grafica si hanno a disposizione?

Come è possibile trovare una parola in un documento usando la linea di comando? Grep! E’ diponibile su qualsiasi sistema operativo Unix-like e anche su Mac e su Windows; inoltre funziona sempre allo stesso modo su qualsiasi piattaforma.

5. I comandi sono molto potenti

Non importa se una interfaccia grafica abbia un aspetto gradevole e sia ben progettata, esiste sempre qualche operazione di cui si potrebbe avere bisogno, per cui i progettisti dell’interfaccia grafica hanno dimenticato di inserire un menu item. Invece i comandi possono essere adattati (ad esempio tramite pipe) per eseguire l’operazione necessaria. Soprattutto quando si ha la necessità di ripetere la stessa operazione più volte. Ad esempio, se si vuole ridimensionare un insieme di immagini come thumbnail su un tool con interfaccia grafica si dovrà lavorare tutto il giorno, mentre con la riga di comando facendo uso di script è possibile automatizzare l’operazione e risparmiare una notevole quantità di tempo.

Un’altro esempio può essere la decompressione di un certo numero di file scaricati, rinominarli tutti seguendo uno schema specifico, e spostarli tutti in directory differenti. L’interfaccia grafica può essere considerata buona solo per casi d’uso limitati e azioni specifiche.

6. E’ possibile automatizzare i comandi

Se non si vuole memorizzare tutti i comandi (eccetto quelli di uso comune) è possibile far uso dei comandi una sola volta. Dopo di chè è possibile salvarli in uno script ed eseguirli alla pressione di un tasto o “darli in pasto” a cron per eseguirli automaticamente. Non c’è lavoro di computing sulla Terra che non possa essere ridotto ad un singolo script o ad un insieme di script, a patto che si faccia uso di un buon ambiente di scripting.

7. I comandi sono più facili da ricordare rispetto ai click

La nostra mente memorizza meglio le parole piuttosto che le sequenze spaziali di movimenti. Risulta molto difficile mostrare a qualcun’altro come realizzare una certa operazione con il mouse, senza avere di fronte il computer. Al contrario dopo aver imparato un comando è più semplice memorizzarlo dovendo ricordare una sola parola o una successione di parole (comandi) correlate in maniera logica.

8. Le interfacce grafiche cambiano spesso

Ciascuno vuole reinventare un insieme di widget, progettare lo scroll wheel, riprogettare la finestra di dialogo, mettere il proprio marchio sull’interfaccia grafica. Dietro il disegno dell’interfaccia grafica c’è molto spesso una flame war per decidere semplici cose come ad esempio la locazione di un menù o l’uso di una spin-box piuttosto che di una combo-box. Questo molto spesso porta a versioni dello stesso software con i comandi posizionati in posti diversi. Ciò può generare molta confusione per l’utente. Invece i comandi da riga di comando sono stati realizzati sempre allo stesso modo.

9. I comandi sono più error-safe

Qualcuno potrebbe obiettare a questo articolo affermando che digitando il comando “rm -rf ./*” o “del *.” nel posto sbagliato c’è il rischio di ripulire il proprio filesystem e perdere file importanti. L’obiezione sarebbe giustissima ma nella pratica solo raramente può accadere una cosa del genere. Con l’interfaccia grafica, invece, accade spesso di cliccare ‘yes’ o ‘allow’ in una finestra sbagliata, cliccare il pulsante sbagliato o chiudere la finestra quando si vuole solo rimpicciolirla, aprire il file sbagliato in una finestra di dialogo, selezionare l’azione sbagliata in un menù ed altro ancora (la lista sarebbe lunga). Il mouse necessita di intensa coordinazione oculo-manuale e concentrazione per selezionare un target molto piccolo, e in caso di errore l’azione scelta viene messa in pratica in maniera istantanea.

La linea di comando, invece, non entra in azione finchè non si preme “Invio”. In tal modo è possibile leggere prima di confermare per essere sicuri che il comando digitato rispecchi quello che si vuol fare. In questo modo la mente è realmente concentrata sull’operazione che si vuol realizzare piuttosto che su azioni da realizzare con precisione millimetrica.

10. E’ necessario scrivere con la tastiera per usare un computer in ogni modo

E’ possibile avere un computer senza mouse dato che tutti i sistemi operativi e la maggior parte dei programmi sono progettati per accettare comandi da tastiera. Ma se si vuol fare tutto con il mouse, scollegando la tastiera dal computer? Come si potrebbe usare il computer? Come si potrebbero usare editor, chat, email? Indipendentemente da quanto si ami la propria interfaccia grafica, si passerà la maggior parte del tempo davanti al computer usando la tastiera.

Tutti d’accordo?

Tastiera su schermo: inutile dire che è un modo scomodissimo di ovviare alla tastiera