Grails, situação atual
Sou arquiteto Java na empresa aonde trabalho, nossa estrutura aqui de trabalho é basicamente maven, spring 3, hibernate e jstl.
Tenho um projeto inciando que será basicamente telas CRUD e alguns relatorios em PDF e excel (provalvemente irei utilizar jasper) além de se comunicar com outros serviços por RMI e JMS.
Tenho varios projetos em casa utilizando Rails (e adoro desenvolver nele mais do que em Java) mas ruby esta fora de questão aqui pois toda a equipe é Java.
Estou analisando o uso do Grails e achei o gsp interessante, a facilidade de criar novas tags é fantastica e é claro, o groovy é demais <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> . Mas pesquisei e vi que há poucas pessoas o utilizam (poucos blogs, oucos forums, poucos plugins, poucos watchers no github) e isso me deixou um pouco preocupado.
Entao, gostaria de saber como anda o projeto hoje (features, bugs, performace) e se realmente há vantagens de utiliza-lo ao inves de uma estrutura spring-mvc em java
[quote=&quot;maxguzenski&quot;]Olá pessoal,
Grails estava bem devagar até um ano atrás, quando criei o Grails Brasil, no entanto tenho observado que sua popularidade tem crescido DEMAIS neste ano que passou.
Para comprovar isto, basta buscar por links sobre o assunto em <!-- m --><a class="postlink" href="http://www.dzone.com">http://www.dzone.com</a><!-- m -->. Porém, a popularidade é muito maior fora do que dentro do Brasil.
Com relação à performance, não tive problema algum com ela até agora. Sempre devemos nos lembrar que aqui estamos trabalhando no final das contas com uma aplicação JEE, que possui os mesmos benefícios oferecidos pela plataforma.
Uso muito Grails para interagir com código legado inclusive: <!-- m --><a class="postlink" href="http://www.itexto.net/devkico/?p=330">http://www.itexto.net/devkico/?p=330</a><!-- m -->
Agora Max, você menciona algo interessante:
Visto que você gosta de trabalhar com Rails/Ruby, lembre-se de que o JRuby já está bem maduro, sendo inclusive capaz de executar o Rails sem problemas dentro do JVM. Talvez valha à pena experimentar. O único problema que vejo diz respeito à sintaxe do Ruby, que é bastante diferente da que os desenvolvedores Java estão acostumados a usar (neste caso, Groovy se apresenta como melhor alternativa).
Por mim eu usario Rails , mas como disse a empresa ja tem um know how em Java, equipes em java , etc. Seria ruim para ela ter agora codigo em rails que ela teria que capacitar/captar profissionais para essa tecnologia.
Além do mais é extremamente importante que as aplicações tenha suporte a RMI, JMS, JMX, Jasper, Itext.
No groovy eu posso simplesmente fazer &quot;new MinhaClasseEmJava()&quot; ... e no jruby? (nunca testei integração com o java)
E o que eu acho interessante no grails é que por tras é Spring, acredito que se o grails apresentar algum bug eu possa editar o .xml do spring e desenvolver em java dentro da app grails, ou nao?
[quote=&quot;maxguzenski&quot;]
A mesma coisa <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
[quite]E o que eu acho interessante no grails é que por tras é Spring, acredito que se o grails apresentar algum bug eu possa editar o .xml do spring e desenvolver em java dentro da app grails, ou nao?[/quote]
Porém, convém lembrar algo que se aplica a todos estes frameworks desenvolvidos em linguagens diferentes do Java para a JVM: no final das contas, é tudo JAVA. Sendo assim, se você tem código legado, ou deseja usar alguma biblioteca/componente/framework com o qual já está habituado, você terá sempre acesso transparente ao mesmo.
Bem, então nao entendi sua posição.. Voce esta sugerindo usar Rails ao invés de Grails? Voce acha que o grails nao esta maduro o suficiente ou talves nao vá vingar?
[quote=&quot;maxguzenski&quot;]Bem, então nao entendi sua posição.. Voce esta sugerindo usar Rails ao invés de Grails? Voce acha que o grails nao esta maduro o suficiente ou talves nao vá vingar?[/quote]
Não, absolutamente! Muito pelo contrário.
Só fiz esta sugestão pelo fato de você ter mencionado preferir programar em Ruby do que em Java.
[quote=&quot;kicolobo&quot;][quote=&quot;maxguzenski&quot;]Bem, então nao entendi sua posição.. Voce esta sugerindo usar Rails ao invés de Grails? Voce acha que o grails nao esta maduro o suficiente ou talves nao vá vingar?[/quote]
Só fiz esta sugestão pelo fato de você ter mencionado preferir programar em Ruby do que em Java.[/quote]
Você já usou Rails? Qual a sua justificativa de usar Grails ao invés de Rails?
sei que q pergunta foi pro kico, mas acho que posso responder.
Como o grails tem o spring e hibernate por trás, voce pode usar o ótimo e bem testado IoC (Inverse of Control) do spring, pode usar annotations, programar em sitaxe Java, integrar com codigo java (muito mais facil do que com jruby), fazer selects com hql (hibernate).
Como o groovy é uma linguagem que nasceu para se integrar com java de forma mais transparente possível tu pode usar jasperreports, itext, jsp e etc de forma bem facil.
Então, a justificativa é essa: Reaproveitar codigo legado (do Java) e reaproveitar a experiencia da equipe.
[quote=&quot;fpdella&quot;][quote=&quot;kicolobo&quot;][quote=&quot;maxguzenski&quot;]Bem, então nao entendi sua posição.. Voce esta sugerindo usar Rails ao invés de Grails? Voce acha que o grails nao esta maduro o suficiente ou talves nao vá vingar?[/quote]
Você já usou Rails? Qual a sua justificativa de usar Grails ao invés de Rails?[/quote]
No final das contas, a opção por Rails ou Grails hoje em dia basicamente é: se você gosta de Java (linguagem), Grails possui adaptabilidade mais fácil. Se preferir Ruby, vá de Rails (isto levando em consideração ambas sendo executadas em uma JVM).
Ambos apresentam basicamente os mesmos ganhos hoje em dia, a partir do momento em que o projeto JRuby começou a ficar viável.
O que pesava muito contra o Rails no início foi o fato de (AVISO: ponto polêmico a seguir) não escalar muito bem. Pra projetos pequenos, Rails era viável. Porém, a partir do momento em que os requisitos de performance iam aumentando, o mesmo não se observava. O número de crashes de servidor era muito alto. Pelo menos a minha experiência inicial com Rails foi muito negativa por causa deste ponto.
Outro ponto que pesava contra no início dizia respeito ao reaproveitamento do código legado. Com Grails, desde o início eu podia reaproveitar TODO o meu código legado de forma transparente. No caso do Rails, a coisa se complicava. Porém, com o JRuby, este problema não existe mais.
A partir do momento em que o Rails pode ser executado dentro de uma JVM, estes problemas práticamente desaparecem, diminuindo assim muito o gap neste quesito entre Grails e Rails.
Outro ponto que me fez preferir o Grails diz respeito à postura adotada: eqnuanto no Rails eu parto do BD em direção às classes, no Grails eu parto das classes em direção ao BD (isto se aplica à maioria das vezes, e eu sei que no Rails você pode gerar tabelas a partir do domínio. Porém a maior parte das pessoas que conheci gera as classes de domínio a partir do BD ao trabalhar com Rails).
Na minha opinião, o BD deveria ser visto como o resultado de uma computação, e não como a origem da mesma. Porém, esta é uma opinião quase pessoal.
Sendo assim, no final das contas minha opinião com relação à escolha entre Rails ou Grails é a seguinte: se for para ser executado dentro de uma máquina virtual Java, não há tanta diferença assim. Agora, se for para comparar a execução do Rails em um servidor não Java como mongrel por exemplo, devido a estabilidade superior da plataforma Java, além da possibilidade de reaproveitamento transparente de código legado, fico com Grails sem pensar duas vezes.
PS: só pra lembrar: o maior conjunto de código terceirizado construído para uma linguagem/plataforma na história da informática é a desenvolvida para Java. Ignorar este ponto é um erro fatal na minha opinião.
Ainda estou analisando usar graisl e/ou rails aqui, estou conversando com os gerentes sobre usar logo o rails em alguns projetos.
O grails ainda é uma opcao, mas ontem li esse topico sobre os bugs do grails: <!-- m --><a class="postlink" href="http://www.grailsblog.com/archive/show?id=17">http://www.grailsblog.com/archive/show?id=17</a><!-- m -->
O pessoal lá comenta que tem muito bug, inclusive alguns falaram em parar de usar grails...
Veja, é a opiniao deles eu nao estou dizendo nada sobre o grails, mas gostaria de saber a sua opiniao sobre o topico.
[quote=&quot;maxguzenski&quot;]Kico,
Veja, é a opiniao deles eu nao estou dizendo nada sobre o grails, mas gostaria de saber a sua opiniao sobre o topico.[/quote]
Eu me lembro que lutei contra alguns bugs na versão 1.0 do Grails. No entanto, com o 1.1 não tive mais problemas (melhorou MUITO desde então).
No entanto, se lembre de uma coisa: você também enfrentará bugs com Rails, principalmente fora do ambiente Java.