domingo, setembro 09, 2007

AWK - finalmente



Da série: livros comprados e nunca lidos

Acabei de "me formar" em AWK (pronucia-se Ouq).

Mais uma ferramenta fascinante, a qual nunca dediquei o tempo merecido para aprender e utilizar.

Comprei o livro, provavelmente em 1995, na Livraria Cultura da Av. Paulista/Conjunto Nacional (naquele tempo ainda não haviam as facilidades de aquisição pela amazon.com) e, um momento esperado em viagens a São Paulo, era ir "browsear" os exemplares diretamente nas livrarias (saudável hábito adquirido junto ao amigo Fred).

Sabia-se que o AWK era uma linguagem de programação interessante e muito usada no unices que estávamos começando a experimentar - o Solaris e o Venix, vindos junto com o Sistema I/A da Foxboro. Mas o que não se sabia muito bem é que de fato era uma ferramenta fantástica e onde poderia ser útil de imediato (santa burrice, Batman!).

Na mesma época estávamos começando a brincar com o "new kid on the block" - GNU/Linux - pois o Solaris não podia ser instalado no 486 de casa e o Venix, não era simples de ser obtido e colocado para uso em dual-boot.

De lá para cá nunca aprendi utilizar o AWK como ferramenta e nem me interessei por ela, apesar de ter prosseguido utilizando o GNU/Linux, plataforma adotada completamente como primeira, após várias tentativas e ensaios de fazê-lo nestes últimos 12 anos.

Mas o livro foi comprado e ficou na prateleira todo este tempo e sempre uma "sensação de ter que ler" me acompanhou no mesmo período.

Depois de estudar o vim, o sed (no qual fui iniciado pelo Aurélio, junto com as expressões regulares), bash e me "versar na arte" de VBA (:-PP), percebi que todas estas ferramentas, apesar de boas, são um tanto ineficientes quando se quer algo rápido, descomplicado e próximo (não muito) da melhor linguagem de programação existente: "C".

Havia uma necessidade de modelar relatórios sem ter que ficar bordando janelinhas em ferramentas visuais, sem ficar brincando com compilar-debugar-recompilar do "C", ter a facilidade de distribuição entre ambientes do sed e do bash mas sem as "chaves de hieróglifos do primeiro" e a infra-estrutura de funcionamento (Msys e Cygwin) do segundo e, indiscutivelmente, a necessidade de se poder trabalhar com as maravilhosas "Expressões Regulares". Resumo: era latente a necessidade de uma boa ferramenta para criar protótipos.

Li o primeiro capítulo do livro e de cara percebi que o AWK serve para atender as necessidades acima. Aprendi a usá-la rapidademente devido as experiências anteriores e a necessidade atual e também estou certo de que é o começo de uma longa parceria.

Enfim, estudar c, sed, bash, regular-expressions e entender as formas de consultas e relatórios em um banco de dados relacional, i.e. Postgres , são formas altamente compensadoras de se usar um ambiente como o do unix - e até mesmo da outra vosta que usam por aí - pois estes conhecimentos não se perdem no tempo e sempre são renovados em produtos "modernos" que, fatalmente, tem em sí alguma forma de nos conectarmos a estes "maravilhosos dinossauros da tecnologia".

É inegável o papel do GNU/FSF neste cenário, pois a consistência entre os ambientes é provida por ele.