Ruby on Rails: Entrevista com David Heinemeier Hansson – Parte III

Continuação da entrevista do David a O’Reilly Network.
Parte I, Parte II, Parte IV.


ED: Você em algum ponto pensou que Rails poderia ter sido melhor se tivesse sido escrito em Java ou Python?

DHH: Melhor é um termo muito inadequado e ambíguo para ser aplicado a uma comparação como esta. Se ficarmos em dúvida por um segundo, eu poderia imaginar que Rails em Java teria uma aceitação mais rápida e fácil por parte das corporações. Mas isso não é um critério de sucesso muito importante para mim. Eu criei Rails para me ajudar a fazer o meu trabalho de forma melhor, mais rápida, e não para ser uma ferramenta de adoção em larga escala. Que isso esteja acontecendo é ótimo, mas provavelmente não aconteceria se eu tivesse tentado fazer isso concientemente.

Sobre Python, eu não sei. Olhando de fora, Python e Ruby são muito similares. Mas por dentro, são as pequenas diferenças que fazem com que pareçam mundos muito diferentes. Python com certeza tem vários apelos interessantes, e se não fosse Ruby, eu poderia com certeza me ver nesse campo.

Eu acho que Rails tem as características que tem, exatamente por ter muito do estilo do Ruby. Ele joga pesado com o melhor de Ruby. Os blocos, a facilidade de criação de linguagens de domínio específico, e todo o resto.

ED: Você consideraria recomendar PHP ou Perl para contruir aplicações web agora?

DHH: Claro! Rails não é tudo para todos a qualquer hora. Eu uso PHP vez ou outra quando eu preciso apenas de um esboço de página com conteúdo dinâmico. Nós utilizamos PHP na 37signals em todas as páginas de propaganda que precisam apenas de alguns includes e coisas do tipo.

Apesar disso, Rails está a frente da maior parte dos aplicativos web. Se você estiver me perguntando se eu recomendaria PHP ou Perl ou qualquer outra coisa que seja para contruir aplicações como Basecampo, 43things.com, ODEO, Strongspace, e outros, a resposta certamente é não.

De qualquer forma, as circunstâncias a sua volta podem te levar a faze-lo. Eu acho que estas circunstâncias são na maior parte das vezes superestimadas. Por exemplo, que só porque você não tem nenhum programador Ruby no seu grupo, você não pode usar Rails. Ou porque você utilizou outro ambiente de desenvolvimento no passado, você não pode mudar. Besteira. Bons programadores são bons programadores. E Rails é muito parecido com oque você vem fazendo antes do que você pode imaginar – menos um monte de sofrimento, naturalmente.

Sobre Web Frameworks

ED: Uma das coisas que eu gosto no Rails é a diferenciação entre os ambientes de produção e desenvolvimento. Este tipo de funcionalidade não vem incluída por padrão em ferramentas web para linguagens de script. Você tentou concientemente colocar algumas “funcionalidades enterprise” no Rails?

One of the things I like about Rails is the differentiation between production and development environments. Those kind of features don’t normally come built in with scripting language web tools. Did you consciously set out to provide some “enterprise” features in Rails?

DHH: Eu tentei servir a mim mesmo. Rails é um projeto muito egoista neste ponto. Ele tem ganho muito do foco e apelo porque eu não tentei agradar a pessoas que não compartilham dos meus problemas. A diferenciação entre ambiente de produção e desenvolvimento era um problema muito real pra mim, então eu o solucionei da melhor maneira que eu sabia fazer.

É muito difício resolver os seus próprios problemas com propriedade. Tentar resolver o problema dos outros é muito perto de algo impossível – pelo menos fazê-lo com um nível de satisfação que me deixaria interessado na solução.

Este é o motivo pelo qual mantemos a noção de que “frameworks são extrações” tão presente na comunidade Rails. Frameworks não são designados antes do fato. Eles são extraídos quando você prova a si mesmo que uma idéia funciona. Sempre que nos colocamos a frente de nós mesmos e tentamos pular o processo de extração, voltamos desapontados.

Eu acredito que este seja o motivo para o qual Rails parece bom para tanta gente – porque ele é utilizado por pessoas reais, para trabalhos reais, antes que nós empacotemos para que outros possam reutilizar.

Parte I, Parte II, Parte IV.

Deixe uma resposta