super_banner_728x90

quinta-feira, 13 de maio de 2010

RP @AkitaOnRails: O Programador Humilde, por Edsger W. Dijkstra

Vejam a seguir o interessantíssimo post do Fábio Akita, em seu blog. Lá, ele colocou um [Off-Topic], mas acredito que aqui nesse blog o post é totalmente On-Topic!

Trata-se de seus comentários sobre um texto do famoso E.W.Dijkstra (1930-2002), professor com o nome difícil mas que a maioria dos computeiros conhece por seu famoso algoritmo de menor caminho.

Confiram.

-------------------

Depois de escrever meu artigo na Info, Fábrica de Software é uma Besteira, recebi um retweet com um link muito legal de um texto que eu não conhecia. The Humble Programmer.

Claro, o autor é super conhecido, o grande Edsger W. Dijkstra. Ele é mais conhecido pelo paper seminal A Case against the GO TO Statement. De qualquer forma o The Humble Programmer foi um discurso que ele deu ao receber o prêmio Alan Turing de 1972.

O texto é fantástico e deve ser lido na íntegra, mas resolvi retirar alguns trechos para comentar. O mais interessante é ler com o contexto do fim dos anos 60 em mente e como muito do que ele espera para o futuro é uma coisa que nós, 50 anos depois, ainda continuamos esperando. Não publiquei este texto na Info mesmo por dois motivos: primeiro porque é mais voltado a programadores, segundo porque este é um dos meus textos “tamanho Akita” :-)

Duas opiniões sobre programação vem desses dias. Eu os menciono agora, devo retornar a eles depois. Uma opinião era que um programador competente deveria ter mente voltada a quebra-cabeças e gostar muito de truques espertos; a outra opinião é que programação era nada mais do que otimizar a eficiência do processo computacional, em uma direção ou outra.

Infelizmente, a imagem do programador mudou, mas para dois extremos: temos os super-programadores, autores renomados, mas a profissão me si se tornou uma commodity, um bem de consumo farto e barato, justamente pelo que comentei no artigo sobre fábricas de software. O barateamento artificial de profissão está levando a um sucateamento e uma demora maior para pesquisas e evoluções na área, especialmente se contarmos que a competição para baixar o preço não vem a partir de aumentar a qualidade técnicas dos processos e tecnologias, mas principalmente de usar a globalização para levar a tarefa para áreas onde os recursos humanos são mais baratos, como Índia e China. Não quer dizer que todos da profissão sejam operários, os que cresceram sozinhos e evoluíram tem posições e tarefas respeitáveis, mas isso se deve mais ao esforço individual.

Essa última opinião era o resultado da circunstância frequente que, de fato, o equipamento disponível era dolorosamente lento, e nessa época se encontrava a expectativa ingênua que, assim que máquinas mais poderosas estivessem disponíveis, programação não seria mais um problema, e então o esforço de ir até os limites da máquina não seriam mais necessários e programação era basicamente isso, não era? Mas nas décadas seguintes uma coisa completamente diferente aconteceu: máquinas mais poderosas ficaram disponíveis. Mas em vez de nos encontrarmos num estado de perfeita harmonia com todos os problemas de programação resolvidos, nos encontramos até o pescoço na crise do software! Como pode?

Pelo menos hoje ninguém assume que só porque as máquinas serão melhores a programação será mais simples. Mas notem uma coisa que sempre repito: as pessoas acham que os problemas de software são coisas recentes, mas o termo “crise do software” foi cunhado ainda na década de 70 … e até hoje não foi resolvida.

continue lendo...