Pergunta

Eu estava olhando em volta para ver se existe um equivalente a Django / RoR em java.

eu encontrei:

Alguém já tentou esses quadros, ou você sabe qualquer outro? Eles são mais rápidos do que django / RoR?

Foi útil?

Solução

Eu descobri Grails cerca de um ano atrás, e não olhou para trás. Ele tem um monte de idéias de Ruby on Rails (original foi nomeado Groovy on Rails), e tem uma rica ecossistemas de plugins / extensões. Grails, e subjacente a linguagem Grails (superconjunto de Java) torná-lo uma alegria para o programa - você pode realmente focar no essencial. Sua funcionalidade GORM (a camada em cima da hibernação) também é muito poderoso, e, além do sistema de plugins, é uma das duas razões enormes para verificá-la (você pode usá-lo em seus aplicativos java também).

Com a versão 1.2 prestes a sair, eu sinto que é e maduro o suficiente para ser algo que qualquer desenvolvedor deve ter em seu toolbelt rica em recursos.

Tanto quanto o desempenho, é definitivamente menor do que a pura Java, mas você tem tudo a partir da Primavera / Hibernate / J2EE disponível para você para otimizar, e você sempre pode cair em java puro para algumas peças críticas de código. Houve algumas experiências recentes com permitindo executar parte do código Groovy utilizando a resolução de método estático, que, juntamente com o apoio invokedynamic, deve fornecer enormes aumentos de performance.

Outros queridos para check-out em Java são Spring Roo, e AribaWeb.

Atualização com base nas qualificações adicionais

A escalabilidade, produtividade, Documentação e decentes Recursos consumo

  • Escalabilidade - você começa a pilha comprovada Java / Primavera / Hibernate, embora eu não posso dizer Grails oferece muito em si.
  • Produtividade - esta é a principal razão para usar Grails. Você tem uma sobrecarga de desempenho, mas Grails é o que você usa quando o tempo de desenvolvimento / produtividade é mais importante.
  • Documentação - os docs Grails são grandes, e há pelo menos três bons livros escritos sobre Grails sozinho. A comunidade está prosperando e muito útil.
  • Recursos Consumo - que é a única desvantagem. Grails (parcialmente por causa da pilha java subjacente) é intensiva em recursos. Se eu estava a construir algo como o Google, Grails não seria a escolha. No entanto, em qualquer aplicativo web de qualquer sofisticação, você faria bem para uma solução de cache, por isso mesmo se aplica aqui.

Outras dicas

Stripes parece ser bastante leve e abraça convenção sobre configuração.

Tendo suportes utilizados, wicket, trilhos e tapeçaria, eu recomendo que você olhar para Tapestry 5 .

Ele suporta

  • na classe recipiente de recarga (assim você não tem para reiniciar o webapp cada vez que você faz uma mudança)
  • tempo de desenvolvimento rápido e maior produtividade - ele usa um modelo baseado em componentes, com declarativa fiação
  • configuração mínima, que é principalmente no código de qualquer maneira, convenção sobre config - etc ..
  • Não há classes de base para estender
  • Uma linguagem de expressão para uso em arquivos de modelo
  • bom suporte ajax
  • excelente suporte a depuração, tanto do lado do cliente e servidor
  • Integração bom acesso a dados
  • uma comunidade ativa
  • escrita a partir do zero com em mente. por exemplo. pooling página (para minimizar o uso de recursos), a compactação de página, espaço em branco eliminação, todo o código dinâmico é compilado para nativa.
  • bom feijão e suporte forma - fazer tarefas comuns simples. Um banco de dados apoiado drid classificáveis ??podem ser codificados com apenas uma linha de código do modelo, e uma mínima backend servidor esqueleto.

A única desvantagem é a documentação, que, é bom, mas um pouco concisa, embora os grupos de usuários / listas de discussão são muito ativos e a maioria das perguntas são bem & ansiosamente respondeu.

(Além disso, certifique-se de só olhar para T5 - e não T4,3,2,1 ..... como estes são muito diferentes para a versão atual)

Mais sobre o porquê aqui .

Considere tentar Elevador Framework . It`s realmente grande.

Quando você está contemplando uma pilha de aplicativos (linguagem, estrutura, etc ...) você também precisa considerar o que você está tentando resolver para e que tipo de habilidades de programação que você tem à sua disposição. Descobri que os programadores Java mais experientes têm sido muito produtiva com a pilha de Groovy e Grails quando comparado aos programadores mais jovens.

Você menciona o seguinte como áreas de preocupação:

  • Escalabilidade: em termos do que exatamente? (Page views / segundo, # transações / segundo, etc ...) Em geral, Groovy & Grails será ampliado quando se trata de páginas de renderização, no entanto, como com qualquer pilha de aplicativos usando ORM (no caso do Grails você tem GORM) lá alguma sobrecarga a considerar.
  • Produtividade: uma das principais vantagens aqui - prototipagem rápida, o desenvolvimento rápido é uma brisa com Groovy e Grails, embora ele ajuda a ter pessoas na equipe de funcionários que têm desenvolvido em Java ou Ruby para entender o que o framework Grails está realmente fazendo " sob a capa". Há toneladas de plug-ins para o interface do usuário que ajuda com a criação de web 2.0 como páginas muito rapidamente.
  • Documentação: há um número crescente de livros de referência de qualidade a ser escritos para Groovy e Grails. Ambos estão amadurecendo muito bem ao longo dos últimos 2 anos. As coisas estão certamente não muito bem documentado no que diz respeito a muito do funcionamento interno do framework Grails quando erros / problemas são encontrados (grande parte da saída do quadro é obscura ou inexistente na melhor das hipóteses, quando um erro é confrontado). Se você está disposto a arregaçar as mangas e ser criativo na percorrendo o funcionamento interno, então você não vai se decepcionar com esta pilha. Mais uma vez, os programadores experientes vão encontrar isso como uma segunda natureza, enquanto pessoas mais jovens podem jogar acima suas mãos na frustração às vezes.
  • Resource Consumo:. Há sobrecarga, porém com a maior parte do hardware encontrados hoje (local ou em uma nuvem) eu não me preocuparia muito com o consumo de recursos físicos para uma determinada instância do aplicativo

Espero que isso ajude.

Eu não sei sobre o jogo Framework, mas para responder à segunda questão, estamos fazendo alguns projetos com o Google do webtoolkit . Poderia ser a pena conferir.
Boa sorte!

Como sobre JRoR

não tentei isso sozinho, mas faculdades de meu gosta de usar listras

Há um livro e tudo.

reivindicações mola Roo ser uma solução.

Eu fiz um projeto com Grails e eu achei muito rápido para algumas tarefas, mas faz muitos "mágica" por trás das cenas que torna difícil quando a depuração.

Também dei comigo a ler mais e mais a documentação porque eu não senti-lo natural. Um exemplo simples é o controlador onde os de ação são definidos como campos (é natural para mim pensar em uma ação como um método ...). Eu posso dizer algo sobre GORM onde você precisa saber algumas palavras especiais que quando colocados em campos estáticos faz alguma mágica como fazer um transiente campo ... Nenhum anotações, não autocompletition ... apenas o manual.

Como para jogar! Eu achei incrivelmente simples e rápido para desenvolver, fácil de aprender e lembrar. A comunidade parece menor do que Graal de mas é mais ativo e mais rápido a responder. A única desvantagem é que não depende de api do servlet para que alguns filtros 3o partido ou outras coisas é difícil de integrar, mas não impossível. É importante notar que você pode implantar um aplicativo de jogar em qualquer servidor web tradicional packagin-lo como uma guerra.

Na minha opinião Grails é grande, mas você precisa ter um monte de experiência com ele para ser produtivo, caso contrário você vai perder muito tempo com os manuais. Portanto, se esse não for o seu caso eu deve recomendar Play! Especialmente se você não estiver familiarizado com Groovy

Eu não sei sobre Play Framework, mas Spring MVC ou Struts juntos vai Hibernate irá oferecer uma funcionalidade semelhante.

Existem muitas outras opções disponíveis. Basicamente, você precisa de um framework MVC (Spring MVC, Struts, Wicket) e uma ferramenta ORM (Hibernate, iBatis). Claro que você precisa para integrar os componentes necessários a si mesmo, mas isso já foi feito muitas vezes e você será capaz de encontrar muita informação.

Eu não tenho certeza se Spring MVC e Hibernate fornece a mesma facilidade de uso que Ruby on Rails fornece (na verdade, eu tenho certeza que é muito mais complicado ...). Jogar Framework é muito mais parecido com Ruby on Rails Eu acho que, no entanto eu não fiz-nos-me e só assisti a screencast e ler alguma documentação sobre ele, por isso, se você quer ter uma experiência semelhante ao desenvolvimento usando RoR, eu acho que você pode melhor tentar algo como jogo em vez de Spring MVC com Hibernate. A vantagem deste último é que ele é muito poderoso e é capaz de se adaptar a um datamodel existente, por exemplo, (pelo que eu sei sobre RoR, que não é muito trivial em RoR). Outro quadro que você poderia considerar é Groovy on Grails. Enquanto ele não usa Java (ele usa Groovy), é muito RoR-like. Ele usa Spring e Hibernate sob o capô (se eu estou correto) e a vantagem de Groovy é que você não tem a tipagem estática rigorosa de Java. Ruby on Rails e Django benefício fortemente da natureza dinâmica da língua em que é implementado, uma característica acidentes Java por causa de sua tipagem estática.

Edit: ah, você mencionou Grails já na sua pergunta ...

Se Grails é uma opção (que não é realmente um java mas um quadro Groovy), em seguida, com sede em Scala Elevador quadro seria uma opção, também.

Outra opção é RIFE , que tenta ter a configuração mínima de RoR, enquanto continuam sendo em Java. Em sua lista, só jogar Framework tem essa característica, os outros são na JVM, mas não são Java (se isso é importante para você em tudo).

E sobre VRaptor ? -. Ele usa Primavera como DI Container e um motor Controller / Visão semelhante ao Rails Ação-Pack

AribaWeb também suporta Groovy. Confira nossos outros recursos em http://aribaweb.org/ e descobrir a nossa abordagem para tornando o desenvolvimento web produtivo.

Nós usamos quadro Stripes extensivamente e ele funciona muito bem. É muito leve e ele direciona-lo para um design limpo de suas aplicações. É basicamente apenas esconde as partes chatas de desenvolvimento de você, para que você possa se concentrar na diversão (Um exemplo é o propriedades indexadas ).

Eu tenho usado http://www.ninjaframework.org/ para micro-serviços e que é muito perto da maioria dos paradigmas MVC, se você usou trilhos, asp.net MVC, ou nancyfx, você é bom para ir. É muito perto para que a filosofia e realmente incrível e fácil de teste. Apenas para baixo-lado não há muita documentação, mas segue padrão MVC bem de perto. Ele usa nada proprietária no quadro por isso é uma solução baseada em java puro. Portanto, este compensa a falta de documentação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top