Replicacao: pode distribuir, cite o autor e adicione um link para este blog.Para introduzir, devemos reconhecer que o uso das linguagens compiladas para pseudo-codigo possibilita uma melhor reutilizacao do trabalho do desenvolvedor. Ao ser compilado, um determinado sistema pode ser utilizado por varios hardwares. Mas, no caso de sistemas disponibilizados na Web a intencao e diferente. Os sistemas web sao tratados com um alto nivel de diligencia em relacao a performance e a compatibilidade. A performance, assim como a compatibilidade, e inevitavelmente influenciada pelo modo de programacao e pelas tecnologias utilizadas (frameworks, bibliotecas, banco de dados, etc). Por isto, deve ser priorizada a utilizacao de ferramentas que induzam o desenvolvedor a realizar o seu trabalho da melhor forma. Neste sentido, o Grails (Framework Web Open Source para a plataforma Java) permite que o desenvolvedor foque na logica de negocios do sistema ao inves de se preocupar na acoplacao das tecnologias e nos padroes elementares.O Grails utiliza a linguagem Groovy que e uma linguagem dinamica que e executada sobre a JVM. Sobre as linguagens dinamicas existe um ponto positivo relacionado a codificacao: se utiliza menos simbolos e nao sao necessarios de demasiados tratamentos nas operacoes. A linguagem Groovy teve seu inicio em 2003 com James Strachan e Bob McWhirter, e em Marco de 2004 ele foi liberado seguindo a Java Specification Request (JSR 241). O Groovy foi criado para ser bastante parecida com Java, reduzindo a curva de aprendizagem dos desenvolvedores que ja utilizavam o Java.No Groovy ha uma serie de funcoes embutidas que auxiliam muito o desenvolvedor. Um bom exemplo disto e a funcao .each{} presente em todas as colecoes de objetos que e utilizada para executar uma closure com os dados da colecao.Grails FrameworkGrails e um Framework Web Open Source e Full-stack (ambiente configurado com os principais recursos necessarios para o desenvolvimento de um sistema Web que funcione de forma unificada). Ele e executado no Java Virtual Machine (JVM) e adota o modelo de desenvolvimento Model-view-controller (MVC). O MVC e um modelo de organizacao da arquitetura de sistemas Web que divide o desenvolvimento em tres camadas: model, view e controller e tem como principal objetivo a separacao da logica, da persistencia de dados e da visualizacao da aplicacao.O Grails e composto por um Servlet Container (servidor utilizado internamente para executar as aplicacoes desenvolvidas) e pelo Spring (framework que realiza o mapeamento dos dados e que e responsavel pela convencao dos projetos). Alem disso, o Grails utiliza o paradigma Convention Over Configuration (CoC). O CoC, em portugues, programacao por convencao, e um modo de desenvolvimento que tem por objetivo diminuir a necessidade de tomada de decisao por meio do desenvolvedor. Neste paradigma sao adotadas todas as configuracoes que sao comumente utilizadas nos sistemas e caso haja necessidade, o desenvolvedor pode realizar as alteracoes desejadas.Embora o Grails utiliza o Groovy como sua linguagem de programacao padrao, ele tambem permite a utilizacao e ate mesmo a intercalacao com a linguagem Java. Isso e possivel pelo fato de toda a codificacao ser compilada para Bytecode Java e por ser interpretada pela JVM. Na Figura abaixo