O PARADOXO PYTHON
OriginalAugusto de 2004
Em uma palestra recente, eu disse algo que irritou muitas pessoas: que você poderia conseguir programadores mais inteligentes para trabalhar em um projeto Python do que em um projeto Java.
Eu não quis dizer com isso que programadores Java são burros. Eu quis dizer que programadores Python são inteligentes. É muito trabalho aprender uma nova linguagem de programação. E as pessoas não aprendem Python porque isso vai conseguir um emprego para elas; elas aprendem porque realmente gostam de programar e não estão satisfeitas com as linguagens que já conhecem.
O que os torna exatamente o tipo de programadores que as empresas deveriam querer contratar. Daí o que, por falta de um nome melhor, eu chamo de paradoxo Python: se uma empresa escolhe escrever seu software em uma linguagem relativamente esotérica, ela será capaz de contratar programadores melhores, porque atrairá apenas aqueles que se importaram o suficiente para aprendê-la. E para os programadores, o paradoxo é ainda mais pronunciado: a linguagem para aprender, se você quiser conseguir um bom emprego, é uma linguagem que as pessoas não aprendem apenas para conseguir um emprego.
Apenas algumas empresas foram inteligentes o suficiente para perceber isso até agora. Mas há um tipo de seleção acontecendo aqui também: elas são exatamente as empresas que os programadores mais gostariam de trabalhar. O Google, por exemplo. Quando eles anunciam vagas de programação Java, eles também querem experiência em Python.
Um amigo meu que conhece quase todas as linguagens amplamente usadas usa Python para a maioria de seus projetos. Ele diz que o principal motivo é que ele gosta da aparência do código-fonte. Isso pode parecer um motivo frívolo para escolher uma linguagem em vez de outra. Mas não é tão frívolo quanto parece: quando você programa, você passa mais tempo lendo código do que escrevendo. Você empurra blocos de código-fonte como um escultor faz com blocos de argila. Então, uma linguagem que torna o código-fonte feio é irritante para um programador exigente, assim como a argila cheia de caroços seria para um escultor.
Ao mencionar código-fonte feio, as pessoas, é claro, pensarão em Perl. Mas a feiura superficial do Perl não é do tipo que eu quero dizer. A feiura real não é uma sintaxe de aparência áspera, mas ter que construir programas com base nos conceitos errados. Perl pode parecer um personagem de desenho animado xingando, mas existem casos em que ele supera o Python conceitualmente.
Até agora, de qualquer forma. Ambas as linguagens estão, é claro, em movimento alvos. Mas elas compartilham, junto com Ruby (e Icon, e Joy, e J, e Lisp, e Smalltalk) o fato de que elas são criadas por, e usadas por, pessoas que realmente se importam com programação. E essas tendem a ser as que fazem isso bem.