Poucas são as coisas que eu alterei na minha lista de aplicações preferidas desde que comecei a usar Debian com GNOME. Algumas novas aplicações que entraram no meu cardápio diário o fizeram em razão de upgrades de hardware no meu computador: eu usava um 486 em 1999, e não conseguia rodar a maioria das aplicações que eu queria rodar.
O resto foi basicamente seguir as estradas de aplicações que se tornavam as melhores dentre seus pares no mundo Debian/GNOME - Rhythmbox, Epiphany, Evolution, Tomboy, GNOME Terminal, Empahy, etc. Algumas também me tocam sempre o coração, e raramente senti vontade de mudar: bash, Emacs entre elas.
Acontece que ultimamente eu tenho experimentado coisas mais modernas, que não tenham que se preocupar com dar suporte a unices que não me interessam e que morreram há mais de 10 anos. Uma das coisas que achei nesse sentido foi o fish. Ele é tão bom quanto o bash, muito menor, separa bem melhor funcionalidades em outros programas e foi feito para os tempos atuais.
Dentre outras coisas, o fish sabe se comunicar com a clipboard do X, sabe lidar bem com GNU screen, sabe usar a base de dados MIME do FreeDesktop (com o comando open). Ele dá informações mais completas e descritivas em coisas como tab completion, e tem uma sintaxe ao mesmo tempo similar o suficiente à do bash para que você não se perca em bobagens, mas mais simples e elegante.
O fish também não emula bugs antigos de shells limitadas como a Bourne Shell. Por exemplo, em bash você tem que se preocupar com se o conteúdo da variável tem espaço ou não. Isso é uma limitação emulada, que vem da Bourne Shell. Um exemplo:
No bash:
kov@abacate:/tmp$ file="a b.txt"
kov@abacate:/tmp$ echo $file
a b.txt
kov@abacate:/tmp$ ls $file
ls: cannot access a: No such file or directory
ls: cannot access b.txt: No such file or directory
No fish:
kov@abacate /tmp> set file "a b.txt"
kov@abacate /tmp> echo $file
a b.txt
kov@abacate /tmp> ls $file
a b.txt
Ver coisas como o fish me faz lembrar que nós estamos no ano 2008. Está na hora de deixar algumas coisas para trás, e evoluir. Nós ainda estamos preocupados em quebrar linha em 80 colunas, criar arquivos ChangeLog, e outras coisas que eram necessárias antigamente e que hoje só fazemos por pura tradição. Hoje nós temos editores poderosos (alguns até ‘antigos’, como o Emacs, que eu ainda amo de paixão e não me vejo deixando tão cedo hehe) e ferramentas de controle de versão muito poderosos. Então vamos em frente.