Eu já tinho lido a filosofia Unix algumas vezes, mas hoje cruzei de novo o texto e parei para analisar um pouco.

É impressionante como minha personalidade combina com as idéias do Unix, mas eu não sei mais dizer que eu gosto do Unix por causa disso – uma atração natural pelos mesmos valores – ou se depois de 10 anos mexendo com isso eu acabei incorporando as idéias.

O texto é longo e tem várias idéias, mas abaixo são as que eu mais concordo:

Filosofia de vida:

O silêncio é ouro.

Também conhecido como “Quem fala demais dá bom-dia a cavalo”. Fale menos, escute mais, nunca diga uma palavra a mais do que o necessário.

Preste atenção na lei do 90% da solução.

A famosa regra de Pareto

clareza é melhor que inteligência.

Especialmente quando você está lidando com gente limitada. A esposa é especialista em complicar as coisas. Ela sempre acha que deve explicar as coisas detalhadamente e com todas as informações e variáveis envolvidas. Isso simplesmente não funciona quando você quer resolver um problema.

Acho que isso também está bem interligado com “silêncio é ouro”.

Filosofia técnica:

Faça cada programa fazer uma coisa bem feita.

Nada de programas gigantescos e cheios de funções. Eu adoro o shell do Unix, porquê você sabe que se quiser cortar utiliza o cut, se quiser contar utiliza o wc e se quiser filtrar utiliza o grep. Simples, limpo, eficiente.

Escolha “portabilidade” ao invés de eficiência.

E dai que se eu fizer em C vai rodar 2x mais rápido? Eu posso esperar a execução, mas não tenho como saber em quais ambientes meu programa vai precisar ser executado. Aqui mesmo no serviço precisei fazer um programa que até onde eu sei roda em Linux x86, Solaris x86 e Solaris SPARC. Perl nele!

Utilize scripts para incrementar a funcionalidade e portabilidade.

Se cada programa só faz uma coisa (bem feita) eu posso utilizar um script para grudar diversas funcionalidades e fazer algo maior. Não preciso começar do zero. E viva o Bash!

Permita ao usuário definir o ambiente.

Eu uso Gnome e Bash. Mas já usei XFCE com ksh. E conheço gente que prefere Enligthment com zsh. E cada um é mais produtivo de uma forma. Porquê restringir o usuário baseado no gosto do fabricante?

Utilize letras minúsculas e faça textos curtos.

Tenho vontade de bater em algumas pessoas. Acredite se quiser, mas já vi até e-mail e entrada no arquivo de configuração de DNS com letras maiúsculas. Ó, vida…

Escreva programas que manipulem streams de texto, pois esta é uma interface universal

Felizmente aqui eu sempre dou sorte. Pior dos casos é um dump ldap ou um xml pra dar parse, mas tenho dó do povo que precisa manipular binários…

Mais informações sobre a filosofia Unix aqui.