Linux: fish, la shell amichevole
Ultimamente la shell sta subendo sempre più critiche, essendo accusata di essere un “retaggio del passato”, poco amichevole con l’utente e ormai inadatta.
Qualunque sia la vostra idea in merito, è innegabile che Linux non possa ancora farne a meno; è altrettanto innegabile, però, che si possono fare molti passi per venire incontro agli utenti meno esperti.
fish (the Friendly Interactive SHell) va proprio in questa direzione.
Perchè “amichevole” ?

fish prende atto che dagli anni ‘70 qualcosa è cambiato. I suoi sviluppatori sanno benissimo che nel 99% dei casi gli utenti utilizzano la shell da un terminale X, o al massimo da una tty abbastanza moderna, che supporta i colori. I colori sono la prima differenza che si nota: fish li usa di default, rendendo più facile la distinzione del prompt dall’input.
Non solo: i colori vengono usati anche per il syntax highlighting! La shell riconosce cioè il comando, i parametri e le opzioni, usando stili diversi.La tab completion è molto più potente che nella bash (la shell più diffusa): oltre a presentare un output più gradevole quando il completamento dovesse avere più possibilità, il completamento è stato progettato per essere estensibile: ciò vuol dire che si potrà, in modo molto semplice, definire le regole con cui completare un comando (se i parametri sono nomi di file, le opzioni che accetta, ecc.).
L’history dei comandi è stata molto migliorata: oltre a poter cercare avanti e indietro, possiamo voler cercare solamente le occorrenze di un certo comando, o che iniziano con una certa stringa.
La shell si integra con il desktop! Grazie al comando open possiamo aprire un file con la sua applicazione predefinita, senza dover ricorrere al file manager del nostro desktop.
Ce n’è davvero per tutti i gusti, e usarla è un vero piacere…
Perche’ “potente”?
Perche’ gli sviluppatori di fish hanno capito che c’era da lavorare non solo sull’interfaccia, ma anche (e soprattutto) sulla struttura del linguaggio (eh già, per chi non lo sapesse: la shell è un linguaggio a tutti gli effetti).
La Bourne shell, pur portandosi ancora bene i suoi 30 anni, ha molti difetti, che chiunque abbia visto uno script conosce. Qualche esempio?
Le regole sintattiche sono poco intuitive(ad esempio l’assegnamento) e spesso incoerenti (basti pensare ai blocchi di codice, diversi a seconda che si tratti di if, di for o di funzione).
Il codice è spesso “oscuro”, in quanto le variabili possono essere comandi, rendendo arduo il debugging e la validazione.
A questi e molti altri problemi, fish risponde scegliendo la via della semplicità e della pulizia.
Tutto è un comando: questo approccio semplifica estremamente le regole sintattiche.
La sintassi è più coerente, c’è un migliore supporto agli array, espedienti come quello sopraccitato sull’invalidabilità del codice sono impediti, in modo da produrre codice migliore.
A chi è adatta?
A tutti: da chi vuole semplicemente avere il prompt colorato a chi vuole avere un miglior linguaggio di scripting. È comunque importante sottolineare che, per un uso regolare di fish al posto di bash, c’e’ ancora del lavoro da fare, dato che tutte le distribuzioni fanno riferimento a bash.

Feed degli articoli



