domingo, 27 de março de 2011

"Porque não contratamos programadores .Net"

David Barrett, CEO da Expensify, escreveu no seu blogue um post que criou uma tempestade nas comunidades de programação. O post tem o título "Porque não contratamos programadores .Net", que provocou naturalmente fortes reacções negativas nos programadores que usam aquela plataforma e muitos sorrisos em todos os outros.

O post é sobre a procura de bons programadores para contratar e ele faz algumas afirmações curiosas.

Começando pelo tipo de pessoa que a empresa dele procura:
"... ter experiência é barato. Só é preciso ter tempo. Competência é mais difícil, mas apenas implica trabalho árduo. Já atitude... ou se tem ou não se tem."
 E como é que ele avalia se uma pessoa tem a atitude que é necessária?
"O tipo certo de pessoa tem uma paixão tão grande por programação que não consegue parar de o fazer. Tipicamente começou antes da escola secundária e nunca mais olhou para trás. Escreve tudo, desde assembly a jQuery, em PCs ou telefones móveis, desde computação gráfica a redes sociais. Experimentou tudo. Tudo, excepto .Net"
Pessoalmente, acho isto um bocado exagerado. Mas um bocadinho desta paixão que ele descreve não fazia mal a muita gente que anda por aí na área das TI.

Mas voltemos ao post. Porquê tudo menos .Net?
"Programar em .Net é como cozinhar numa cozinha do McDonalds. (...) A cozinha do McDonalds faz exactamente o que está no menu do McDonalds (...) Mas não é possível sair do menu, e qualquer tentativa de vergar a máquina à tua vontade vai simplesmente avariá-la de tal modo que terá que voltar à fábrica para ser reparada. (...) Ora nós procuramos um tipo de pessoa muito direrente. A pessoa que cresceu a apanhar e cozinhar esquilos no espeto numa fogueira de campismo. Não queremos um cozinheiro de comida rápida. (...) Precisamos de gente que consegue cozinhar qualquer coisa, desde o princípio. Ora, a Microsoft, intencionalmente, criou o .Net para ser diferente de tudo o resto, mantendo o programador à distância dos detalhes e na total dependência das ferramentas de programação que pensam tudo por ele. (...) Cada dia passado nesta cozinha é um dia que não foi passado numa cozinha real, a cozinhar comida real, a escrever código real. Pior: cada dia que se passa numa cozinha Microsoft leva dois dias a desaprender, o que significa que, quando se entrou razoavelmente no caminho .Net quase já não há caminho de regresso. Ficou-se tão embrenhado em ferramentas e técnicas que não têm qualquer relevância fora do .Net, que é-se de facto menos valioso para uma startup do que se estivesse a dormir uma longa sesta."
Não posso deixar de concordar, pelo menos parcialmente, com a visão dele sobre a plataforma .Net. Infelizmente, ao contrário do que ele deixa entender, o .Net não é a única plataforma concebida para "agarrar" o programador e o tornar dependente.

Tipicamente,  as plataformas proprietárias tentam criar esta dependência. Faz parte do jogo comercial, para que as receitas continuem a vir durante muitos anos. Por outro lado, se se tiver sorte, talvez se escolha um fabricante com um mínimo de ética que nos ajude de facto, sem nos sugar o valor que criámos.

Quanto se escolhe uma plataforma proprietária é preciso ter muito cuidado. Há que distinguir os simbiontes dos parasitas.

E o melhor mesmo, usando as palavras do David Barrett, é mantermos sempre a nossa capacidade de apanhar esquilos no bosque e assá-los no espeto à fogueira.