Eita, esse tipo de argumentação nunca tinha ouvido falar.
Quanto ao amigo do Rails que não abre mão, seria bacana estudar os princípios em que se baseia o framework. Uma coisa que me incomoda muito muito no rails é a lógica de negócios ficar engruvinhada nos controllers, sem possibilidade de utilizar uma arquitetura mais rebuscada, como injetar classes de negócio.
No grails você tem o conceito de Services, onde sua lógica de negócios fica de fato separada de uma maneira coesa. Como o grails utiliza o IoC do Spring, a coisinha fica assim :
classBookController{
MySuperService mySuperService
}
Mas a camada de persistência é ponto de grande discussão.Rails utiliza o framework ActiveRecord e com isso pode esquecer modalagem seguindo principios DDD. Vai necessitar fazer algo TopDown, que no meu ponto de vista não é nem um pouco interessante.
Outra vantagem do Grails, está em utilizar o Hibernate por debaixo dos bastidores, usando assim todos os mecanismos de queries:
- Dynamic Methods
- Query by example
- Criteria builders
- e ainda pode usar HQL nas suas queries.
Exemplinho de como é bacana não jogar no lixo o conhecimento adquirido ao longo do tempo :
def c = Account.createCriteria()
def results = c {
like("holderFirstName", "Fred%")
and{
between("balance", 500, 1000)
eq("branch", "London")
}
maxResults(10)
order("holderLastName", "desc")
}.list()
ou Book.find(
"from Book as b where b.titlelike 'Lord of%'")
Lembrando que Grails ficará aderente à especificação JPA, que em sua versão 2, irá trazer os conceitos de Criteria. Sendo assim, grails ficará embaixo de uma especificação mais forte, o liberando para utilizar diferentes providers, como OpenJPA e TopLink por exemplo.
Por fim, vc ainda tem suporte por meio de plugins existentes a recursos que o Rails ainda não lhe provê e numa aplicação de grande escala pode fazer toda a diferença, como JMS , EJB , Compass - Framework de busca ORM , que utiliza o lucene por debaixo dos bastidores.
Bom, acho que pra nós que já percorremos um bocado e conhecemos bastante do mundo java, seus frameworks, libs e tudo mais; faz muito mais sentido utilizar um framework como Grails.
Há ainda o compartivo de performance, do grails já vir default com servidor configurado - jetty e por aí vai.
Espero ter conseguido fazer uma explanação dos porquês… ![:slight_smile: :slight_smile:](//www.guj.com.br/images/emoji/twitter/slight_smile.png?v=5)