Aprenda algo novo

Programar é algo fácil de se aprender. Aprendi a programar aos oito ou nove anos, em BASIC para TK-90X. Programar bem, ser produtivo, é algo que leva um bocado de tempo. Conforme você avança programando em uma linguagem, vai descobrindo os segredos e armadilhas daquela linguagem. Encontra desenvolvedores que usam a mesma linguagem, formam uma linguagem e compartilham código. Constrói uma biblioteca pessoal de código e decora a solução de algumas dúzias de problemas simples (sei até hoje como alternar o QBASIC para os modos gráficos de tela, e como desenhar linhas e retângulos, embora já não me lembre como desenhar arcos e círculos.)
Programar é algo difícil de se aprender a segunda vez. Quando tentei aprender C no internato, as coisas foram bem mais difíceis. Não é porque a linguagem era mais difícil, lembre-se que muita coisa no TK a gente resolvia com Assembly. É porque aprender a segunda linguagem de programação é algo muito mais burocrático e menos apaixonante. É divertido aprender a construir algoritmos, pensar como a máquina e resolver problemas. É entendiante decorar os comandos de uma nova linguagem para fazer o que você já fazia antes, aprender a usar um compilador diferente, uma plataforma diferente e se lembrar de colocar o maldito ponto-e-vírgula no final de cada linha (ah, eu amo Python[bb]!)
É por isso que a inércia é tão grande entre as pessoas que desenvolvem em apenas uma linguagem, ou para apenas uma plataforma. E isso nos ajuda a entender porque a Microsoft vai ensinar os estudantes de São Paulo a programar.
Mas há boas notícas, senhoras e senhores. A primeira é que há conceitos novos e maneiras novas de pensar para se aprender, o que pode tornar a tarefa de aprender outra linguagem de programação apaixonante outra vez. Aconteceu quando eu descobri a Orientação a Objeto, e consegui finalmente aprender C++. Aconteceu quando eu descobri como era fácil (para os padrões da época) trabalhar com bancos de dados em Clipper. Aconteceu quando eu descobri Programação Orientada a Eventos no VB e no Delphi. Aconteceu quando eu descobri a web. Ah, a web… Linguagens de marcação, de script, server-side, client-side. Quanta coisa divertida para se aprender! E está acontecendo de novo agora com Python. Encontrei a Programação Pragmática, ou Programação “Direto-ao-Assunto”.
A segunda boa notícia é que a segunda linguagem é difícil, mas daí em diante fica tudo mais fácil. Como qualquer programador mediano com o tempo de carreira que eu tenho, sou fluente em pelo menos 10 linguagens/ambientes de programação, e consigo escrever código em umas 20. Então, se você é programador de um ambiente só, fica aqui o incentivo: aprenda alguma coisa nova. Tudo fica mais fácil a partir daí.

Trails?

Acabo de assistir o vídeo sobre Trails, um framework, na onda Rails, em Java. Alguma coisa fedeu aqui para mim. Me pareceu só um clone mal feito do Rails. Usa Hibernate para persistência, dando um bocado a mais de trabalho ao programador do que o Rails.
Mas o principal problema é o Java. O vídeo, assim como o do Rails, tem 10 minutos. Nos dez minutos do vídeo sobre Rails o sujeito instala e configura o Rails, cria a base de dados e a aplicação funcional. Nos dez minutos do Trails o camarada, que já tinha o webserver, o Eclipse e o Hibernate configurados, coloca a aplicação para funcionar.
Assista os dois vídeos e perceba a diferença. Usar Hibernate é um saco, principalmente comparando ao esquema de persistência transparente usado no Rails, o activerecord. Programo em Java+JSP há alguns anos, e não achei nada divertido o tutorial do Trails. Quando assisti o tutorial do Rails só tinha ouvido falar de Ruby, nunca tinha escrito uma linha de código nessa linguagem. Apesar disso, achei aquilo tudo muito divertido.
Estou cada vez mais convencido de que o problema é a linguagem. Leia por exemplo o primeiro parágrafo desta resposta do Bruce Eckel.
E por falar em framework web e boa linguagem de programação, ontem comecei a mexer com CherryPy, dica do Jonas, e estou realmente impressionado. Reproduzi o livro de receitas do tutorial do Rails em 40 minutos (sim, eu sei, o vídeo tem apenas 10 minutos, mas eu estava aprendendo) e escrevi um Wiki funcional, embora ainda muito simples (usa pickle, não SQL), em menos de uma hora. Divertidíssimo.