Novo Projeto - O que usar?

31 respostas
M

Bom dia pessoal, sei que já responderam milhares de perguntas como essa, mas cá estou eu com a mesma dúvida…

Estou pra começar um projeto de grande porte, que tem uma pegada de rede social no mesmo, e estou com dúvida com qual tecnologia devo utilizar.

Veja o motivo de cada uma:

  • Java (Hibernate, Spring e etc) ou Java (Play! Framework)

    • Motivo:
      Maior mercado de profissionais, grande apoio, excelente documentação e etc (Acho que não preciso listar os motivos do Java, certo?) O problema talvez seja a lentidão…
  • Groovy/Grails

    • Motivo:
      Muito fácil de utilizar, e a partir do momento que vc conhece Java, tem uma curva muito pequena, o grande problema é que não tem um grande mercado profissional apesar de vir crescendo muito, muito produtiva, porém também considero-a um pouco lenta.
  • PHP

    • Motivo:
      EXTREMAMENTE fácil, grande mercado de profissionais, talvez o problema seja que as pessoas iniciam no php, e é difícil achar pessoas que se aprofundam da mesma maneira como acontece no Java, pois as empresas não utilizam muito.
  • Python

    • Motivo:
      Assim como groovy/grails é uma linguagem de script, muito simples de utilizar e bem produtiva

A pergunta vale também para bancos de dados:

Vale a pena utilizar um NoSQL? Exemplo Mongo ou db4o?

Ou vale a pena mais um MySQL ou Postgre?

Já achei diversos comparadores de linguagens, desempenho e etc, mas a dúvida permanece, gostaria de quem teve experiências de projetos grandes, com número grande de requisições a todo momento nas linguagens pudesse me dar seu relato, acredito que talvez valha mais do que números apenas =)

Obrigado!

31 Respostas

saoj

Usa MySQL com certeza.

Play! Framework 2.0 foca em scala e ficou mais complicado. Procura na net por Play1 x Play2.

Se quer produtividade e curva de aprendizado pequena vai de Mentawai. Garanto que o projeto vai ficar pronto e com qualidade na metade do tempo que levaria com qualquer um desses outros.

Um site feito com o Mentawai em 3 semanas => http://www.flipinion.com

Sobre performance:

Existe sites parrudos em cima do Mentawai em produção, como um sistema completo de reserva de passagens, estilo Orbitz e Expedia.

Um dos muitos feedbacks que recebemos:

http://forum.mentaframework.org/posts/list/15/157.page#9216

http://forum.mentaframework.org/posts/list/45/157.page#58732

Luizao

Eu levaria mais em conta questões como prazo e complexidade do projeto.

Se o projeto tem prazo apertado, utilizar tecnologias novas, ou que vc e sua equipe não dominam, vc pode ter problemas… melhor ir com o que vc já conhece.

M

saoj:
Usa MySQL com certeza.

Play! Framework 2.0 foca em scala e ficou mais complicado. Procura na net por Play1 x Play2.

Se quer produtividade e curva de aprendizado pequena vai de Mentawai. Garanto que o projeto vai ficar pronto e com qualidade na metade do tempo que levaria com qualquer um desses outros.

Um site feito com o Mentawai em 3 semanas => http://www.flipinion.com

Sobre performance:

Existe sites parrudos em cima do Mentawai em produção, como um sistema completo de reserva de passagens, estilo Orbitz e Expedia.

Um dos muitos feedbacks que recebemos:

http://forum.mentaframework.org/posts/list/15/157.page#9216

http://forum.mentaframework.org/posts/list/45/157.page#58732

Bem interessante, mas e a curva de aprendizado, a comunidade? Qual a idade do framework? Me interessei…

No momento prazo não é problema, e também por enquanto só sou eu de desenvolvedor que vou startar o projeto, e acredito que depois de ter experimentado tantas linguagens, bancos, a curva de aprendizado pra qualquer coisa não está grande mais, por isso quero coletar experiências das pessoas para ver o que recomendam e o que não recomendam…

O que mais me preocupo é desempenho do software e velocidade de desenvolvimento…

saoj

Curva de aprendizado baixíssima. Simplicidade é o lema do framework. Dá uma ollhada nos diversos feedbacks sobre isso aqui => http://forum.mentaframework.org/posts/list/157.page

O framework nasceu em 2005…

A comunidade é grande, com várias perguntas no nosso fórum… Tem a vantagem de possuir a documentação recentemente atualizada e toda em português… E suporte em português da equipe do framework…

lsmagalhaes

Se o projeto é pessoal, eu escolheria o que conheço melhor e/ou o que me dá mais prazer de programar. Em relação à bd eu uso postgres, mas não por achar o melhor, mas simplesmente porque comecei a partir dele na faculdade e tem me atendido até hoje.

Quanto a NoSQL sei que o Redis tem muitos bons usos como sistema de cache ou processamento de mensagens, no Rails tem o resque que faz bom uso, mas nunca usei… tenho estudado o MongoDB para um trabalho de faculdade e está me deixando bem satisfeito.

Já fiz um trabalho de Java usando db4o também… mas não o escolheria para um projeto sério, simplesmente acho que as vantagens dele não valem tanto assim, em comparação a um SQL.

Baseado só nas tecnologias que você citou, e sem saber o que seria o tal projeto, eu provavelmente iria de Python/Django e PostgreSQL… dá pra começar bem e, só depois, quando perceber demanda, vou ajustando o código de acordo com a necessidade.

Aproveitando o tópico, vou engatar outro assunto relacionado: faz realmente sentido pensar em performance pra um software que ainda nem começou a ser projetado? Quero dizer, não dá pra saber com clareza a carga que o sistema terá, então não seria um tipo de desperdício?

M

lsmagalhaes:
Se o projeto é pessoal, eu escolheria o que conheço melhor e/ou o que me dá mais prazer de programar. Em relação à bd eu uso postgres, mas não por achar o melhor, mas simplesmente porque comecei a partir dele na faculdade e tem me atendido até hoje.

Quanto a NoSQL sei que o Redis tem muitos bons usos como sistema de cache ou processamento de mensagens, no Rails tem o resque que faz bom uso, mas nunca usei… tenho estudado o MongoDB para um trabalho de faculdade e está me deixando bem satisfeito.

Já fiz um trabalho de Java usando db4o também… mas não o escolheria para um projeto sério, simplesmente acho que as vantagens dele não valem tanto assim, em comparação a um SQL.

Baseado só nas tecnologias que você citou, e sem saber o que seria o tal projeto, eu provavelmente iria de Python/Django e PostgreSQL… dá pra começar bem e, só depois, quando perceber demanda, vou ajustando o código de acordo com a necessidade.

Aproveitando o tópico, vou engatar outro assunto relacionado: faz realmente sentido pensar em performance pra um software que ainda nem começou a ser projetado? Quero dizer, não dá pra saber com clareza a carga que o sistema terá, então não seria um tipo de desperdício?

Então cara, eu me dou bem igualmente entre Java, Php e Groovy/Grails, sou pleno em todas, então minha dúvida a princípio seria entre essas, porém preferi estender para as que eu já tive uma experiência, pois chega num ponto que fica fácil aprender novas tecnologias.

Então, eu imagino que quando vamos fazer um projeto temos que analisar para que ele foi feito, e no caso esse projeto está relacionado com redes sociais, o que geralmente trás muito tráfego de dados, gravação de arquivos e acessos, então se for um sistema lento, ele já perde o sentido de existir, afinal, hoje as coisas têm que ser cada vez mais rápidas, não?

Veja bem, quando vamos fazer um projeto, temos que pensar nos requisitos dele, e há sistemas que se não tiver um bom desempenho não tem problema, mas outros dependendo do público-alvo é muito crítico um desempenho ruim.

Entende o motivo da minha preocupação?

Agora, quanto ao Python, vc já desenvolveu com ele? O Django é um framework também, certo? Eu conheço pouco de Python, fiz um curso uma vez porém nada avançado…

lsmagalhaes

Entendo sua colocação, não sei como é o seu projeto, mas por aqui (faço parte de uma empresa júnior), andamos praticando para não pensar em todos os requisitos do projeto de início, especialmente escalabilidade. É bastante complicado perceber o quanto devemos otimizar algo, às vezes vamos pagar caro para manter uma aplicação que nem exige tanto assim. O exercício que fazemos é o inverso: otimizamos quando é preciso otimizar, é este o pensamento ágil que procuramos.

Voltando pro seu caso, há uma boa porção de artigos na web não recomendando o que você sugere, que é otimizar por antecipação. Concordo contigo que a aplicação que você sugere exige boa performance, mas não vejo porque não fazer uma boa primeira versão usando um banco de dados e um bom cache… se precisar de mais, você otimiza. Se desejar, posso linkar alguns desses artigos pra você dar uma lida… só preciso encontrá-los de novo.

Mitidiero:

Agora, quanto ao Python, vc já desenvolveu com ele? O Django é um framework também, certo? Eu conheço pouco de Python, fiz um curso uma vez porém nada avançado…

Já desenvolvi algo em Django, sim, alguns sites com necessidade de trabalhar conteúdo dinâmico. Hoje estudo Python mais para desktop, mas para algo mais no estilo startup sem dúvida começaria com o Django ou mesmo o Rails. Não que eu esteja recomendando alguma dessas tecnologias pra você, são apenas as que me sinto mais à vontade de programar :wink:

M

lsmagalhaes:
Mitidiero:

Então, eu imagino que quando vamos fazer um projeto temos que analisar para que ele foi feito, e no caso esse projeto está relacionado com redes sociais, o que geralmente trás muito tráfego de dados, gravação de arquivos e acessos, então se for um sistema lento, ele já perde o sentido de existir, afinal, hoje as coisas têm que ser cada vez mais rápidas, não?

Veja bem, quando vamos fazer um projeto, temos que pensar nos requisitos dele, e há sistemas que se não tiver um bom desempenho não tem problema, mas outros dependendo do público-alvo é muito crítico um desempenho ruim.

Entende o motivo da minha preocupação?

Entendo sua colocação, não sei como é o seu projeto, mas por aqui (faço parte de uma empresa júnior), andamos praticando para não pensar em todos os requisitos do projeto de início, especialmente escalabilidade. É bastante complicado perceber o quanto devemos otimizar algo, às vezes vamos pagar caro para manter uma aplicação que nem exige tanto assim. O exercício que fazemos é o inverso: otimizamos quando é preciso otimizar, é este o pensamento ágil que procuramos.

Voltando pro seu caso, há uma boa porção de artigos na web não recomendando o que você sugere, que é otimizar por antecipação. Concordo contigo que a aplicação que você sugere exige boa performance, mas não vejo porque não fazer uma boa primeira versão usando um banco de dados e um bom cache… se precisar de mais, você otimiza. Se desejar, posso linkar alguns desses artigos pra você dar uma lida… só preciso encontrá-los de novo.

Mitidiero:

Agora, quanto ao Python, vc já desenvolveu com ele? O Django é um framework também, certo? Eu conheço pouco de Python, fiz um curso uma vez porém nada avançado…

Já desenvolvi algo em Django, sim, alguns sites com necessidade de trabalhar conteúdo dinâmico. Hoje estudo Python mais para desktop, mas para algo mais no estilo startup sem dúvida começaria com o Django ou mesmo o Rails. Não que eu esteja recomendando alguma dessas tecnologias pra você, são apenas as que me sinto mais à vontade de programar ;)

Então, veja bem, concordo plenamente com o pensamento ágil, inclusive onde trabalho usamos todos conceitos pregados por ele, porém nesse caso, que é um projeto pessoal, eu não estou querendo otimizar nada, simplesmente dar o melhor início para o projeto, que ao contrário do que muitos pensam, a escolha de uma tecnologia pode trazer parte do sucesso ou do fracasso do projeto, e eu penso que se eu for utilizar JSF por exemplo, que eu NUNCA consegui fazer ser tão ágil quanto php, ja prejudicaria o projeto, principalmente pq vc vê diversas redes sociais em JSF e nenhuma ficou legal por causa da lentidão.

jweibe

Mitidiero acho que otimizações devem ser feitas o quanto antes possível e sempre que houver uma necessidade mesmo que essa otimização seja precoce em seu projeto,
uma otimização em fase inicial do seu projeto pode te livrar de uma baita dor de cabeça amanhã.

Quanto a frase acima, diversos fatores pode influência no resultado final, isso volta aquela boa e velha história sobre a performance do JSF, detalhes como um boa modelagem de
banco de dados é um fator primordial a um projeto ele pode definir boa parte da performance do seu projeto.
Lembrando que nenhum framework é uma bala de prata que ira resolver todos os seu problemas.

J

Acho que é uma questão de gosto pessoal porque tem documentação a rodo na net pra todas linguagens, nenhuma delas é nova de fato.

Mas vale ressaltar que quando o assunto é redes sociais, nunca vi uma que começou usando Java e banco de dados relacional.

lsmagalhaes

Mitidiero:

Então, veja bem, concordo plenamente com o pensamento ágil, inclusive onde trabalho usamos todos conceitos pregados por ele, porém nesse caso, que é um projeto pessoal, eu não estou querendo otimizar nada, simplesmente dar o melhor início para o projeto, que ao contrário do que muitos pensam, a escolha de uma tecnologia pode trazer parte do sucesso ou do fracasso do projeto, e eu penso que se eu for utilizar JSF por exemplo, que eu NUNCA consegui fazer ser tão ágil quanto php, ja prejudicaria o projeto, principalmente pq vc vê diversas redes sociais em JSF e nenhuma ficou legal por causa da lentidão.

Concordo plenamente que a escolha da tecnologia antes é fundamental, e de fato escolher um BD que deve mais te atender no presente e no futuro é realmente uma questão estratégica, assim como linguagem, framework e outras tecnologias relacionadas.

O que não concordo bem é otimizar no ponto de vista de adicionar mais complexidade ao sistema desnecessariamente, sem saber exatamente a demanda. De toda forma, acho que me expressei mal antes, me desculpe =D

jweibe

lsmagalhaes:

O que não concordo bem é otimizar no ponto de vista de adicionar mais complexidade ao sistema desnecessariamente, sem saber exatamente a demanda. De toda forma, acho que me expressei mal antes, me desculpe =D

Cara o grande problema que eu vejo neste pensamento seu é o seguinte posso até estar errado mais se você abrir um post perguntando quantas pessoas já teve problema com projetos mais projetados, que no começo do projeto não pensarão que o sistema poderia crescer e assim otimizar de modo que se tivesse uma grande carga não teria grandes problemas, bom acho que muita gente vai relatar experiências. Bom isso e algo difícil de se mensurar uma vez que a carga do sistema pode não ser grande amanhã… mais daqui uma semana se o sistema cresce de forma inesperada? uma otimização pode ser bem mais custosa do que se tive sido pensado nisso la no começo do projeto.

Luizao

Cara, tem sistemas que tem uma carga grande feitos em java, php, ruby, python… Em se tratando de web, para escalar uma aplicação é o de sempre, cachear o máximo possível, balancear carga entre varios nós, jogar processamento pesado pra background, etc. Isso qualquer que seja a linguagem.

O que é mais chato de escalar (na minha opinião) é o banco. Os NoSQL, em teoria escalam com mais facilidade, mas vc tem que entender os tradeoffs (vc perde o ACID por exemplo)… eu ainda prefiro usar um banco relacional, que eu já conheço bem e sei como administrar. Mas isso depende muito, quem conhece melhor NoSQL pode opinar melhor sobre o que muda, como modelar, etc.

Então, se tua preocupação é velocidade de desenvolvimento, escolhe a que vc programa mais rápido. Os desafios que vc vai encontrar pra escalar são basicamente os mesmos, independente da linguagem.

M

Muita hora nessa calma.

Escalar com certeza é importante, mas acho que o ponto não é esse, eu andei vendo uns comparativos, e mostram que algumas linguagens são realmente mais rápidas o processamento do que outras, eu reparei que quando vc vai rodar o python na JVM é muuuito mais lento do que rodando fora, e uma coisa que acho importante discutir também, é mercado, afinal, não pode se começar um projeto que não tem mão-de-obra adequada, nem escolher tecnologias muito recentes que até hoje não vi um projeto realmente grande e famoso (algumas linguagens da JVM por exemplo)

E de banco Não relacional, qual vcs escolheriam? pq? Qual experiência tiveram? Vamos começar por aqui

Luizao

Que tipo de processamento tua aplicação vai realizar?

[off]
Se pensarmos apenas em performance, todo mundo deveria programar em assembly, ou no máximo em C :D.
[/off]

M

O principal é indexação, consulta de arquivos, gravação de dados…

Aliás, isso foi uma boa idéia… Será que compensa montar o lado do servidor em C, e só a camada de apresentação alguma linguagem web, chamando os comandos do servidor? =)

Agora, a questão não é SÓ performance, tem que olhar o melhor custo benefíco, mercado de pessoas, assim como disse anteriormente.

rmendes08

Cara, isso é bobagem. Existem muitos outros gargalos que você pode tratar antes de otimizar o processamento. Em uma aplicação Web, o principal gargalo é o acesso a dados. Escalar as requisições é relativamente simples, é só usar balanceamento de carga. Mas de nada adianta balancear a carga em vários nós se o acesso a dados é centralizado.

Existe ainda uma série de otimizações que podem ser feitas na interface que são muito mais significativas para o usuário:

Sendo assim, em termos de linguagem, duvido muito que exista diferença significativa entre Java, Ruby, Python, etc. A diferença pode existir entre os frameworks. Por exemplo, eu sou desconfiado do JSF por ele manter estado de componentes do lado do servidor … mas isso é uma característica do JSF, não da linguagem Java.

Luizao

Porque vc não dá uma olhada em uma engine de indexação, como o solr? É extramamente rápido e tem um monte de recursos.

S

Ao invés de um novo projeto… que tal ser meu sócio ?

É pra tentar ficar rico ? Bora tentar junto.

Já está online.

http://www.guj.com.br/java/281936-proposta-parceria—mercado-de-milhas

saoj

soldate:
Ao invés de um novo projeto… que tal ser meu sócio ?

É pra tentar ficar rico ? Bora tentar junto.

Já está online.

http://www.guj.com.br/java/281936-proposta-parceria—mercado-de-milhas

Se tivesse usado o Space4J ao invés do Prevayler eu virava seu sócio. :slight_smile:

http://www.space4j.org

S

saoj:
soldate:
Ao invés de um novo projeto… que tal ser meu sócio ?

É pra tentar ficar rico ? Bora tentar junto.

Já está online.

http://www.guj.com.br/java/281936-proposta-parceria—mercado-de-milhas

Se tivesse usado o Space4J ao invés do Prevayler eu virava seu sócio. :slight_smile:

http://www.space4j.org

ue, eu não sou muito preso em uma tecnologia… uso java pq é a que eu mais sei.

usei o prevayler pq fica transparente, dá “gosto” de usar OO, sabe. Não gosto de framework mapeamento objeto->relacional, acho tudo uma grande gambiarra. prometem muito e cumprem pouco. alem de que vc perde todas as vantagens de estar usando um determinado banco.

nao conheço o space4j mas, dando uma rápida olhada no site principal, me parece ser tão interessante quanto o prevayler. nao eh um outro framework oo-relacional…

se quiser, podemos usar ele no lugar, se for mais vantajoso mesmo.

achei que ficou legal com o prevayler, pois serializei tipo o "“post” (nao foi bem isso, mas é quase). assim, ficou totalmente transparente a persistencia.

o problema é quando acabar a memória. rsrsrs…

mas, o que quero mesmo não é usar determinada tecnologia. quero é ganhar dinheiro. :smiley:

e usar uma tecnologia que seja fácil de aprender e usar. de forma que o sistema custe pouco para fazer e manter.

preciso de ajuda pra fazer o site mais atrativo e funcional.

além de idéias de como divulgá-lo.

bora participar! me manda um email, dá uma olhada no site, depois no código… e depois decide se quer se

repito: o objetivo é ganhar dinheiro. :lol:

J

Luizao:

O que é mais chato de escalar (na minha opinião) é o banco. Os NoSQL, em teoria escalam com mais facilidade, mas vc tem que entender os tradeoffs (vc perde o ACID por exemplo)… eu ainda prefiro usar um banco relacional, que eu já conheço bem e sei como administrar. Mas isso depende muito, quem conhece melhor NoSQL pode opinar melhor sobre o que muda, como modelar, etc.

Além de ser mais fácil escalar, eu diria que o maior benefício é que não precisa modelar. :wink:

saoj

Também odeio Hibernate e similares. Uso MentaBean. Você deve ter visto esse tópico aqui: http://www.guj.com.br/java/252013-voce-nao-gosta-do-hibernate-eu-tb-nao-leia-para-entender-o-porque

Space4J é o prevalyer com uma API mais refinada e simples (sem clock e outras maluquices do prevalyler), suporte a indexação (até em memória tem que indexar) e cluster.

Prevalencia é para sistemas onde o número de registros é conhecido e finito… Se muita gente começar a usar como vc vai fazer com prevalencia?

Pra isso só contratando um designer gráfico ou terceirizando isso na índia/china.

O mais difícil de tudo hoje em dia é a divulgação. Uma merda bem divulgada vai longe. Uma coisa foda sem divulgação não chega a lugar nenhum.

M

Se o único problema fosse divulgação é fácil.

Agradeço o convite, o que você oferece para seu sócio? Vc já tem um plano de negócios, uma equipe projetada, futuros ganhos analisados ou é só um projeto e pronto?

Para se criar um bom projeto vc tem que ter parceiros bons que consigam te ajudar em coisas que não somos formados para fazer: Plano de negócios, plano de marketing, estruturação do modelo de negócios, criar um projeto/startup é muuuito mais complexo do que se imagina…

é MUITO raro uma idéia começar na internet, dar certo e pronto, precisa de uma estruturação antes, verificar se o negócio é escalável (Ou seja, cresce a vontade realmente), se quanto mais cresce, mais ganha (existem negócios que o crescimento trás prejuizo), ou seja, MUITA coisa tem que ser analisada.

saoj

Mitidiero:
Se o único problema fosse divulgação é fácil.

Esse é o principal problema com certeza. Não basta fazer um site excelente para uma idéia maravilhosa. Se não houver marketing ninguém vai ficar sabendo e ninguém vai usar.

O boca-a-boca simplesmente não existe mais na Internet. Essa época romântica ficou no passado, há muitos anos atrás.

S

Pessoal, não tenho muito a oferecer ainda, a não ser o que já tá pronto.

http://www.mercadodemilhas.com.br/

Até onde o site pode ir? Não sei. Mas creio que existe uma grande demanda nessa área de compra e venda de milhas aéreas.

Pessoas acumulam milhas no cartão de várias maneiras e querem vendê-las. Outras querem comprar passagem e encontram caras demais, preferindo comprar via milhas.

Creio que o principal é ter um site bem feito (fácil de usar, rápido e com cara confiável) e divulgação.

Se milhares de pessoas começarem a usar e o site se tornar O LOCAL onde se compra e vende milhas aéreas, ganhar dinheiro não será difícil.

Ou seja, preciso de um design bacana, de bons programadores Java, uma infra que dê conta do recado e grana para divulgação.

Estou convidando é para ajudar a fazer o tal site bem feito. Se você ver o código, se interessar a desenvolver funcionalidades, aí a gente vai conversando em como levar a idéia adiante e como será a participação de cada um.

Não precisa aceitar de pronto. Dá uma olhada no site, veja se tem futuro, se vc tem tempo livre para se dedicar, se vc acredita que existe demanda nessa área e vamos tentar.

Já estou pagando um servidor razoável pra começar. Quem quiser começar, ver o código (SVN), enfim… manda um email pra mim.

Se der errado… deu… fazer o quê!? Perderei tempo e uma graninha. E se der certo ? Acredito que podemos ficar ricos. A demanda existe.

Quem quiser analisar melhor a idéia, entre em contato

[email removido]

No mais, vamos conversar no tópico certo… :smiley:

http://www.guj.com.br/java/281936-proposta-parceria—mercado-de-milhas

M

saoj:
Mitidiero:
Se o único problema fosse divulgação é fácil.

Esse é o principal problema com certeza. Não basta fazer um site excelente para uma idéia maravilhosa. Se não houver marketing ninguém vai ficar sabendo e ninguém vai usar.

O boca-a-boca simplesmente não existe mais na Internet. Essa época romântica ficou no passado, há muitos anos atrás.

o que eu disse é que não basta divulgação, precisa de MUITO mais.

Grinvon

Estou fazendo um projeto web que será que de grande porte. Basicamente eu no desenvolvimento e um amigo que pega mais a parte de CSS. Também, na época, fiquei com essa dúvida de qual tecnologia usar. Então, basicamente, me veio 3 tecnologias:

Play (com Scala), Grails (groovy) e Django (python).

O problema era que, na época, eu não conhecia nenhuma das três linguagens, só tinha feito uns pequenos testes com Groovy e Scala e tinha gostado bastante da Groovy. Eu sabia que Python tem uma comunidade forte e bem ativa, e que Scala era de nincho e não é tão fácil assim de aprender. Resolvi encarrar o Grails.

Aprender Groovy para quem já tem anos de Java, como eu, não é nada do outro mundo, e pra falar a verdade, confesso que, depois que tive um contato maior com a linguagem, passei a NÃO querer mais programar em Java. Você acaba se viciando no modo mais prático, mais direto, menos verboso e com recursos dinâmicos. Então só de pensar em ter que usar tudo em Java, já me dá uma certa agonia, não pela dificuldade, que não há, mas em suma na sua falta de praticidade.

Enquanto ao Grails, é um framework bastante visto pela comunidade, tem o suporte da Spring, tem uma quantidade razoável de plugins e tem muitos recursos interessantes que é bem a lá RoR ou Django mesmo. O único porém que eu ficava mais era na questão do suporte ao Hibernate, já que eu não sou muito fã nem do hibernate nem do JPA, e fiquei meio preocupado com a questão do desempenho, cache, etc. Mas mesmo assim, acabei levando. Sou fã do myBatis e apesar de ter um plugin para o Grails que permite uma conectividade mais fácil com o myBatis, optei por continuar usando o GORM mesmo.

Agora se você quiser inovar mais ainda, pode testar um MogoDB com Grails, existem exemplos e plugins feitos para facilitar a conexão com esse outro sistema, mas ainda não dei uma olhada, pode ser uma boa.

Espero que essas informações tenham sido úteis, qualquer coisa, posta aí.

M

Grinvon:
Estou fazendo um projeto web que será que de grande porte. Basicamente eu no desenvolvimento e um amigo que pega mais a parte de CSS. Também, na época, fiquei com essa dúvida de qual tecnologia usar. Então, basicamente, me veio 3 tecnologias:

Play (com Scala), Grails (groovy) e Django (python).

O problema era que, na época, eu não conhecia nenhuma das três linguagens, só tinha feito uns pequenos testes com Groovy e Scala e tinha gostado bastante da Groovy. Eu sabia que Python tem uma comunidade forte e bem ativa, e que Scala era de nincho e não é tão fácil assim de aprender. Resolvi encarrar o Grails.

Aprender Groovy para quem já tem anos de Java, como eu, não é nada do outro mundo, e pra falar a verdade, confesso que, depois que tive um contato maior com a linguagem, passei a NÃO querer mais programar em Java. Você acaba se viciando no modo mais prático, mais direto, menos verboso e com recursos dinâmicos. Então só de pensar em ter que usar tudo em Java, já me dá uma certa agonia, não pela dificuldade, que não há, mas em suma na sua falta de praticidade.

Enquanto ao Grails, é um framework bastante visto pela comunidade, tem o suporte da Spring, tem uma quantidade razoável de plugins e tem muitos recursos interessantes que é bem a lá RoR ou Django mesmo. O único porém que eu ficava mais era na questão do suporte ao Hibernate, já que eu não sou muito fã nem do hibernate nem do JPA, e fiquei meio preocupado com a questão do desempenho, cache, etc. Mas mesmo assim, acabei levando. Sou fã do myBatis e apesar de ter um plugin para o Grails que permite uma conectividade mais fácil com o myBatis, optei por continuar usando o GORM mesmo.

Agora se você quiser inovar mais ainda, pode testar um MogoDB com Grails, existem exemplos e plugins feitos para facilitar a conexão com esse outro sistema, mas ainda não dei uma olhada, pode ser uma boa.

Espero que essas informações tenham sido úteis, qualquer coisa, posta aí.

Opa, então cara, na empresa que eu trabalho usamos Grails, e eu gosto bastante, inclusive aqui estamos fazendo experiências com o MongoDB, mas talvez o que me assusta um pouco no Grails é não ter visto nenhum case de sucesso de aplicação de grande porte, e o fato do sistema aqui ser um pouco lento. Qual foi o projeto que vc desenvolveu?

Grinvon

Mitidiero:

Opa, então cara, na empresa que eu trabalho usamos Grails, e eu gosto bastante, inclusive aqui estamos fazendo experiências com o MongoDB, mas talvez o que me assusta um pouco no Grails é não ter visto nenhum case de sucesso de aplicação de grande porte, e o fato do sistema aqui ser um pouco lento. Qual foi o projeto que vc desenvolveu?

Estou desenvolvendo um site há três meses junto com um amigo. O projeto ainda não terminou, mas está fazendo conectividade com redes sociais. Sim, não é a mesma velocidade do Java apesar de gerar byte code direto, assim como o Java. Mas a linguagem em si é muito interessante e bem mais prática, isso foi o que me empolgou bastante.

Como eu disse antes, estou usando o GORM normal, fiquei tentado a usar com MongoDB mas como eu não conhecia, achei que poderia perder mais tempo do que tudo, depois, se possível, você poderia comentar um pouco mais sobre essa experiência de ligar o mongo ao grails.

M

É bem simples, tudo que eu fiz foi instalar o plugin morphia, além de instalar o mongo, é claro, então ele cria pra mim dentro do grails-app a pasta mongo, ai todas domains colocadas lá passam a ser mantidas dentro do mongo, os comandos são os mesmos pra salvar, excluír e etc, é realmente MUITO simples.

Criado 7 de setembro de 2012
Ultima resposta 11 de set. de 2012
Respostas 31
Participantes 9