[quote=Lucas Teixeira]Bom, destrinchando um pouco: Groovy, uma linguagem dinâmica, que roda em cima da JVM, bla bla bla, esse todo mundo conhece: groovy.codehaus.org
Agora, utilizando o Groovy, criaram algumas camadas de abstração para estes frameworks, por exemplo:
:arrow: Spring, foi criada uma Spring DSL para facilitar o acesso/configuração/injeção por ele.
:arrow: Hibernate, foi criado o GORM, que cria todo o mapeamento, validação de constraints, dynamic finders, criterias, etc para acesso as informacoes http://www.grails.org/doc/1.0.x/guide/5.%20Object%20Relational%20Mapping%20(GORM).html
:arrow: spring mvc, log4j, sitemesh, e para todo o restante envolvido, existem essas DSLs, ou “camadas” facilitadoras do acesso.
Todas estas “abstrações” que foram criadas, formam o framework grails, segunindo a ideologia do rails é claro, de ser um full-stack, de CoC, DRY, etc etc.
Essa é a idéia E seguindo essa linha, a comunidade cria a cada dia mais e mais plugins, que são estas camadas de abstração em cima de algum framework de mercado, por exemplo, <jaba>o plugin do Caelum Stella para o Grails, que abstrai a forma de trabalho do framework adicionando mais constraints as domain classes</jaba>.
Mas não podemos esquecer que Groovy é Java, Grails é Java, tudo que fazemos com Java, podemos fazer com Groovy, ou reaproveitar. Por exemplo, para um projeto em Grails aqui, pegamos todas as libs e jars já desenvolvidas para o cliente no sistema legado e reutilizamos apenas por estarem no lib da app. Classes utilitárias, arquiovos .jave e todo o restante também, se encaixam no projeto como parte dele, sem uma “adaptação” ou retrabalho algum.
[/quote]
Muito legal esse o grails e ainda mais esse GORM.
abs