Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
05/10/1992

< Que tal um programinha hoje? >


Lá pelos idos dos anos setenta, travei meu primeiro contato com um usuário de microcomputador em carne e osso. Um amigo, talvez uma das pessoas mais brilhantes que já conheci em toda a minha vida, que percebeu, ainda na pré-história da computação pessoal, a importância que viria a ter no futuro e dedicou-se a ela.

Naturalmente a conversa descambou para o assunto. Eu já tinha ouvido falar dessas máquinas, que me despertavam um vago interesse. Era outubro e estávamos em Washington. E, por uma destas curiosas artes da memória, me lembro ainda da primeira vez que ouvi a palavra "byte", em uma tarde fria, entre árvores cobertas de folhas avermelhadas que caiam sobre a vereda por onde caminhávamos.

Foi uma conversa agradável. Ele, entusiasmado, descrevia as maravilhas que um dia aquelas máquinas seriam. Eu, cético, escutava. Do pouco que me ficou na lembrança, guardo ainda a estranheza pela importância que ele dava ao fato de haver ou não programas disponíveis para uma ou outra máquina. Ora, pensava eu, se a máquina me permitia programá-la, não via porque a existência de programas seria assim tão importante: se precisasse de algum que porventura não existisse, porque não desenvolvê-lo eu mesmo?

Assim continuei pensando até comprar um micro. Tanto que a primeira coisa que fiz foi aprender a programar. Em Basic, naturalmente. Depois, assembly. A máquina era um MSX e o curso rendeu-me amigos com os quais a vida não me tem dado o prazer de conviver com a frequência que desejaria, mas cuja amizade preservo com orgulho. Mas, convenhamos, programar em assembly em um MSX não me asseguraria um futuro dos mais brilhantes. E decidi migrar para a linha PC, seguindo adiante em meu afã de programador incipiente: continuei no assembly e acabei por me tornar um razoável programador em C.

Foi somente então, quase vinte anos depois, que percebi que programar é ciência e arte. E que exige dedicação exclusiva. Que nenhum usuário, por mais afinco que tenha, jamais desenvolverá algo que se compare ao mais simples programa de um profissional. Pode-se, sim, aqui e ali, quebrar um galho ou outro. Já fiz um residente de menos de 500 bytes que transforma a inútil F12 de um AT em um c-cedilha. E outro que permite escolher as cores do texto e do fundo na tela do DOS. Ou um conversor de arquivos Wordstar para Ventura que já poupou muito trabalho a alguns amigos. Isto tudo em C e assembly, e muito me orgulho deles. Mas, pensando bem, comparando as centenas de horas que me dediquei ao aprendizado de linguagens com o pífio resultado prático que obtive, francamente, não há tanto de que se orgulhar. E tive que me curvar à crua verdade dos fatos: programar é coisa de profissional.

Não que me arrependa. Programar é algo essencialmente lúdico. Poucas coisas se comparam ao prazer de dominar a máquina, fazê-la se curvar à sua vontade, obrigá-la a cumprir suas determinações. Conceber, desenvolver, compilar e executar um programa, caçar seus bugs e eliminá-los, vê-lo rodar, aperfeiçoá-lo, burilar suas arestas, domesticá-lo até que ele e a máquina, obedientemente, executem exatamente o que foi determinado por você, é vencer um maravilhoso desafio. Dá uma sensação de poder, de domínio do homem sobre a máquina, de prazer intelectual inigualável. E nada traz maior conhecimento sobre a máquina, suas manhas e manias.

Mas não passa disto. Resultados práticos, mesmo, muito poucos.

Isto tudo me vem a mente quando usuários de computador. geralmente os ligados às profissões técnicas, me indagam que linguagem lhes seria mais útil no campo profissional. Se eu quisesse me ater à fria letra dos manuais, diria que a mais adequada para um engenheiro seria Pascal. Mas será que vale a pena se dedicar ao seu aprendizado?

Se for para conhecer mais sua máquina, Marcos, travar intimidade com ela, dominá-la, desvendar seus mistérios, sem dúvida que sim. Mas se for para de fato desenvolver algo útil para a prática profissional, tenho minhas dúvidas.

Pois existem aplicativos que podem, com esforço infinitamente menor, fazer melhor e mais depressa tudo o que faria um programa desenvolvido por um usuário. Mesmo um com conhecimentos avançados de programação. E em uma fração do tempo gasto para desenvolvê-lo. Nem falo das planilhas, que todo o mundo conhece, e que já incorporam funções que permitem iterações e soluções de problemas complexos de engenharia envolvendo otimizações de funções de mais de uma variável. Nem dos bancos de dados ou programas como o ObjectVision, da Borland, que permitem ao usuário comum, não programador, desenvolver em poucas horas aplicativos que demandariam meses de programação em uma linguagem de baixo nível.

Falo de pequenas maravilhas como o MathCad, por exemplo. Que parece um editor de textos. Mas um que permite definir variáveis, suas dimensões e unidades. No qual pode-se editar equações com estas variáveis e, ao digitar o sinal de igual, fazer saltar na tela a solução dimensionalmente correta. Que permite trabalhar com matrizes e vetores. Executa iterações tão logo se definam os limites. E que, se você assim o desejar, insere no texto os gráficos de funções previamente definidas. Volte para o início do texto, mude o valor de uma variável e veja todos os resultados e gráficos se ajustarem imediatamente de acordo. Entre com um dado dimensionalmente inconsistente e veja aparecer imediatamente uma mensagem de erro. O MathCad é, na verdade, um misto de editor de textos, programa gráfico e planilha eletrônica altamente sofisticado. Ao mesmo tempo que edita a memória justificativa, você efetua os cálculos e desenha os gráficos. Terminou? Mande imprimir que seu projeto está pronto. Quanto tempo levaria um usuário, ou mesmo um programador profissional, para desenvolver um aplicativo que faça algo semelhante em uma linguagem de baixo nível?

Pois é isto. Se você deseja conhecer melhor sua máquina, vá em frente e aprenda a programar nela. Pascal me parece o mais indicado, mas eu mesmo tenho uma indisfarçável queda pelo C, que prefiro. Porém, se o que você deseja é facilitar sua vida profissional, reduzir trabalho braçal e aumentar sua produtividade, invista melhor seu tempo e esforço aprendendo a usar aplicativos já desenvolvidos por profissionais. Esteja certo que lhe serão muito mais úteis.

Mas infinitamente menos divertidos...

B. Piropo