No seguinte de uma discussão que tivemos num jantar recente, o Aristarco pergunta em FísicosLX: Linguagens:
Para que serve uma linguagem de programação? Para pôr em prática algoritmos previamente estabelecidos, da forma mais eficiente possível, ou para ajudar a pensar nos problemas a resolver?
Paul Graham respondeu melhor que ninguém no seu famoso ensaio Hackers and Painters:
A programming language is for thinking of programs, not for expressing programs you've already thought of. It should be a pencil, not a pen.
Muitos não-programadores imaginam a programação como uma tarefa trivial, que consiste na mera transposição de algoritmos para código. Na realidade, a programação de aplicações não-triviais é um processo iterativo, em que a percepção do problema se vai desenvolvendo e soluções antigas são continuamente refinadas ou descartadas em favor de novas abordagens.
O mito do programador-filósofo, que concebe abstractamente os seus programas para só no final os traduzir para código, é semelhante à visão que muitos leigos têm da forma como a matemática é produzida: como se os criadores de teoremas chegassem aos mesmos usando um processo mental semelhante ao da prova, quando a realidade é que a prova do teorema é o resultado de um longo processo iterativo em que os andaimes vão sendo eliminados até praticamente não restar nenhum vestígio de que o teorema não nasceu já perfeitamente formado.
Recent Comments