Mais sobre aquele programador Java que você não quer

Houve muitos comentários interessantes aqui sobre meu último texto e alguns deles falavam em algo chamado “lógica de programação”. Um dos leitores comentou que muita gente se limita a aprender uma nova sintaxe, mas continua usando a mesma lógica para programar (*). Ou seja, continua a pensar do mesmo jeito.

Não há sentido em aprender uma nova linguagem assim.

Não existe “a” lógica de programação, apenas “uma” lógica de programação. Quando escrevi o texto anterior era nisso que eu estava pensando, mas precisei de outras pessoas para me abrir os olhos. O importante é que cada linguagem tem uma forma diferente de interpretar a máquina, uma nova filosofia. O que você vai querer aprender é isso, não a sintaxe simplesmente.

Não há grandes ganhos em aprender C# se você já sabe Java, porque o modelo de pensamento das duas é basicamente o mesmo (e conseguir um exemplo foi bem difícil, já que até mesmo neste caso ainda há o que se aproveitar). Mas a lógica para programar é bem diferente se você usar Haskell no lugar de C. Para quem está acostumado com linguagens em que efeitos colaterais são a regra e não a exceção, aprender Haskell dói. É a dor do cérebro ajustando-se a uma linha de pensamento diferente.

Nem precisamos ir tão longe assim para observarmos a dor. Acontece até mesmo quando se passa de C para C++ (por causa das noções de orientação a objetos) e de Python para Io (por causa da orientação a objetos sem classes). A causa disso tudo é a necessidade de absorver uma lógica diferente. Pensar que existe uma única lógica de programação só vai piorar as coisas. Novas linguagens demoram tanto para se disseminar também porque as pessoas acham que já dominam “lógica de programação” há muito tempo e que só precisam se adaptar a uma sintaxe nova. Elas não querem aceitar a dor.

A moral dessa história já foi escrita por Alan Perlis e citada pelo grande Peter Norvig há muito tempo: “Uma linguagem que não afeta seu modo de pensar sobre programação, não é digna de ser estudada.” A conclusão direta disso é que o que devemos procurar em uma linguagem é um novo modo de pensar, não uma sintaxe nova para o antigo.

* Estas não foram as palavras exatas dele, mas acho que é uma interpretação válida

3 Responses to “Mais sobre aquele programador Java que você não quer”


  1. 1 Vitor Fernando Pamplona 09/set/2007 às 03\0327

    Cada linguagem tem seu estilo. Aprender uma nova linguagem é aprender um novo estilo. Quem não se adapta a esta maneira de pensar está condicionado a errar cada vez que mudar de linguagem.

    []s Fera! :D

  2. 2 dilas 09/set/2007 às 20\0815

    Engraçado, eu tinha a mesma forma de pensar sobre linguagens de programação e a famosa “lógica” antes de ler esse post. Realmente me abriu os olhos para algo que sentia dificuldade e não sabia explicar exatamente o que era (“a dor”).

    Falo isso por conta das linguagens de scripting que estive aprendendo, como programador Java de muito tempo foi uma adaptação dolorida. (hehe)

    Muito legal o post, um abraço !

  3. 3 Davis 11/set/2007 às 19\0729

    Muito bem argumentado. O Ronaldo Ferraz comentou algo sobre isso na palestra que ele deu sobre Seaside no TreinaTom.


Comments are currently closed.




%d blogueiros gostam disto: