Python+Django vs PlayFramework2

Olá, pessoal !

Não sei se aqui é o melhor para levantar esse ponto, mas como desenvolvedores gostaria de ouvir suas considerações.

Não é meu objetivo levantar aquelas longas discussões sobre qual é o melhor. Entendo que toda linguagem possui seus prós e contras que cada um pode levantar de acordo com seus gostos. Mas, com a bagagem que vocês possuem poderiam levantar os pontos positivos e negativos de se usar um ou outro ? E o que vocês usariam para um projeto particular?

O caso é o seguinte:

Estou com um projeto particular no gatilho e desejo desenvolver o mais rápido possível. Eu trabalho com java há um bom tempo e gosto tanto da linguagem quanto da enorme comunidade que existe para suporte. Inquestionável. Uma forma que vejo para aumentar a produtividade e velocidade de desenvolvimento é a existência de frameworks que facilitam a nossa vida assim como existe o Rails para o Ruby e Django para o Python, assim cheguei no PlayFramework2(o que achei fantástico). Para esse meu projeto estou considerando o Python com Django ou Java(Posso usar o Scala, mas por questão de conhecimento penso usar Java mesmo) com o PlayFramework versão 2.

A seguir algumas considerações que levantei sobre os dois:

Python + Django
Prós:

  • tem muito conteúdo na internet
  • Python é uma linguagem divertida de se trabalhar
  • existem muitos Hosts que suportam com um preço bem acessível ou até de graça(Google AppEngine)

Contras:

  • Incompatibilidade de ferramentas com versões de Python, por exemplo: Para meus testes usei Python 2.7 e precisava uma forma de criptografar e assim usei o PyCripto, porém não funciona com a versão 2.7, mas com a versão 2.5 do Python, fui obrigado a fazer downgrade do Python (Esse ponto me incomoda).

Java + PlayFramework2 (aqui o ponto é mais sobre o Framework do que a linguagem em si)
Prós do PlayFramework2:

  • Pelo que entendi junta o melhor de Rails e Django, facilita muito o desenvolvimento

Contras:

  • Pouco Conteúdo na internet (por conta de ser relativamente novo)
  • Dificuldade para encontrar Hosts que suportam e quando se encontra não é barato. O que estou considerando é o OpenShift (RedHat), porém para a subida da aplicação usa-se o diy(do it yourself), que ainda está em fase de testes e não é aconselhado usar em produção.

Resumindo: Gosto do Python+Django, mas essa história de incompatibilidade de versões atuais de Python me preocupa, pois assim não posso usufruir de atualizações da linguagem, o que não acontece com projetos em Java. O Play!2 é muito legal e realmente facilita o desenvolvimento, porém é complicado de encontrar um Host que o suporte e que seja acessível para uma startup.

Tentei resumir o máximo o texto.

Desde já agradeço suas opiniões.

Valeu.

Eu acho que falar um pouco sobre o que é a sua aplicação ajuda também.

Talvez se for algo que precise ser mais escalável, seja melhor usar a stack do Typesafe, que envolve Play! Framework 2 + Akka 2

acho que se o seu objetivo é desenvolver o mais rápido possível o melhor seria fazer com o que você conhece melhor. Só porque falam que uma tecnologia mais recente é mais produtiva não significa que você será mais produtiva com essa tecnologia do que com as que você já conhece. Pelo contrário, no começo você será menos produtivo, até atingir um nível de conhecimento razoável. Só um exemplo bem simples, imagina que no meio do programa você precise utilizar coleções. No java você já conhece elas, já utilizou antes, etc. Numa linguagem nova pode ser que você terá que parar pra procurar na documentação como são implementadas essas coleções na linguagem e provavelmente terá que fazer testes antes de utilizar. Já no java você vai fazer rápido porque não precisará parar pra pesquisar nada…

Parem de modismo, façam no que tem experiência e deixem pra brincar apenas nas horas vagas.

O tempo que vc gastou pensando nas opções vc ja teria feito a parte de cadastro !!!

Sasaki, rogeriopaguilar e pbnf,

Muito obrigado pelas considerações. As outras ferramentas podem ser realmente mais produtivas, para quem tem experiência, com certeza eu perderia um tempo para ver como funciona em outra tecnologia o que eu faria muito mais rápido em java, talvez para um outro projeto com mais calma posso ver algo novo, mas para esse creio que seja melhor usar o que já conheço.

Valeuzão !

Abraços