¿Qué son “Groovy” y “Grails” y qué tipo de aplicaciones se crean con ellos?


100

Hoy en día escucho mucho sobre "Groovy on Grails" y quiero saber más al respecto:

  • ¿Qué es Groovy?
  • ¿Qué es Grails?
  • ¿Qué tipo de aplicaciones se crean con Groovy on Grails?

3
Además, es solo Grails. No Groovy on Grails (eso no tiene sentido ..). Tienes suerte de que Marc Palmer no haya visto esta pregunta :)
leebutts

23
Grails = Groovy on Rails
Pascal Thivent

1
En realidad, hubo bastante controversia en torno al apodo de "Groovy on Rails", razón por la cual Grails ya no se llama Groovy on Rails. Son solo Griales.
Matthias

3
Sí, hace 5 años, en 2006, los chicos de Ruby on Rails se quejaron y el marco que se llamaba 'Groovy on Rails' pasó a llamarse solo Grails. Nunca ha sido llamado Groovy on Grails excepto por reclutadores confundidos y sus víctimas.
Burt Beckwith

Respuestas:


188
  1. ¿Qué es Groovy on Grails?

    Ya no existe con este nombre. Ahora simplemente se llama Grails .

  2. ¿Qué es Groovy?

    Originalmente, un lenguaje dinámico para JVM. Sin embargo, desde Groovy 2.0, se admiten tanto la escritura estática como la dinámica.

  3. ¿Qué es Grails?

    Grails (anteriormente conocido como "Groovy on Grails") es un marco de programación basado en Groovy e inspirado en Ruby on Rails (hay diferencias, pero también muchas similitudes). Al igual que RoR, Grails promueve la "codificación por convención", las mejores prácticas de desarrollo y está destinado a ser altamente productivo.

  4. ¿Qué tipo de aplicaciones se crean con " Groovy on Grails"?

    Grails se utiliza para crear aplicaciones web que se ejecutan en la JVM.

  5. ¿Cuáles son las ventajas de Groovy on Grails?

    Alta productividad, centrándose en los negocios en lugar de en la plomería. (Tenga en cuenta que no recomendaría usar Grails con un modelo de datos existente. La razón detrás de esto es que Grails fomenta un enfoque de arriba hacia abajo en el que el modelo ER de bases de datos surge como resultado de las clases de dominio. Si está utilizando una base de datos heredada , no puede tomar este enfoque. Debe mapear la base de datos a las clases de dominio, y probablemente la convención de nomenclatura no coincidirá, lo que hace necesario el uso de hbm.xml Hibernate archivos de configuración o anotaciones. En mi opinión, este no es un cambio trivial en el flujo de trabajo, puede volverse realmente engorroso y terminará perdiendo la mayoría de las ventajas de Grails).

  6. ¿Por qué querría uno usar Groovy on Grails cuando tenemos lenguajes de programación estándar como C / C ++, Java / J2EE y .NET / C #?

    Por el punto 5.


1
¿Puede explicar más por qué no recomendaría usar griales con un modelo de datos existente?
Todd Hunter

1
¿Puede explicar más a qué se refiere High productivity, focusing on business instead of plumbing.? lo que es plumbing?
Thang Pham

@HarryPham - Código repetitivo y lidiar con "cómo se hacen las cosas" en lugar de "qué cosas hacemos" de implementación
cdeszaq

@Pascal Thivent: podría terminar reescribiendo el programa de otra persona desde cero, y si no fuera por su punto de no recomendar el uso de Grails con un modelo de datos existente, Grails sería el claro ganador para que el marco lo use. Todavía no he visto la arquitectura de la base de datos del programa, pero imagino que es bastante simple dada la sencilla funcionalidad del programa. ¿Cambiaría su recomendación en absoluto si la arquitectura de base de datos existente fuera simple? ¿Podría evitarse el engorroso flujo de trabajo migrando los datos de la base de datos heredada a una nueva base de datos y, de ser así, sería difícil de hacer? Gracias.
Daniel

Desde Grails 3, existen diferentes perfiles que puede utilizar para personalizar el marco de Grails para sus necesidades específicas. Ya no es solo un marco web, se puede utilizar con éxito para desarrollar microservicios REST ligeros, sin la huella de un motor de plantillas, o incluso una capa ORM. grails.github.io/grails-doc/latest/guide/single.html#profiles
Luis Muñiz

24

Groovy es un lenguaje de programación orientado a objetos para la plataforma Java. Es un lenguaje dinámico con características similares a las de Python, Ruby, Perl y Smalltalk. Se puede utilizar como lenguaje de secuencias de comandos para la plataforma Java. Groovy tiene una sintaxis similar a la de Java y funciona a la perfección con el código de bytes de Java.

Otras características incluyen:

  • Curva de aprendizaje fácil
  • Soporte para idiomas específicos de dominio
  • Sintaxis compacta
  • Soporte para escritura dinámica
  • Potentes primitivas de procesamiento
  • Facilidad de desarrollo de aplicaciones web
  • Soporte para pruebas unitarias.

Grails es un marco de aplicación web de código abierto que utiliza el lenguaje de programación Groovy. Se pretende que sea un marco de alta productividad siguiendo el paradigma de "codificación por convención", proporcionando un entorno de desarrollo independiente y ocultando gran parte de los detalles de configuración al desarrollador.

Como Rails, Grails parece ser lo que yo llamo "Strongly Grained". Si haces las cosas a la manera de Grails, el desarrollo es fácil (y generalmente bastante rápido). El marco tiende a tener una forma preferida de hacer la mayoría de las cosas. Por otro lado, si necesita ir contra la corriente, tendrá un momento comparablemente difícil.

Y no digas Groovy on Grails (no existe), por razones, consulta este blog.


12

Grails es directamente análogo a Ruby on Rails , pero se ejecuta con Groovy. ¿Qué es Groovy ? Es un lenguaje de secuencias de comandos que se ejecuta en Java Virtual Machine (JVM).

Por lo tanto, puede hacer uso de las bibliotecas de Java que ya tiene o que están disponibles (ya que están compiladas en bytecode y, por lo tanto, se ejecutan en una JVM), además de la potencia de la JVM (para la recolección de basura, la velocidad a través de la compilación JIT, etc.) y la concisión de Groovy. Se supone que la curva de aprendizaje para que un programador de Java aprenda Groovy sea bastante pequeña (aprovechando así la gran cantidad de programadores de Java disponibles).

Es una forma muy diferente de crear aplicaciones web a los mecanismos estándar de Java de programación de servlets, JSP, Java Server Faces, etc. Grails (como Ruby on Rails) promete un entorno de desarrollo más dinámico e iterativo que los mecanismos de desarrollo estándar (si eso es cierto en práctica , no puedo aconsejar)


Cerebro, tus declaraciones contradice, dices que es un lenguaje de programación, pero en el siguiente párrafo dices que está compilado en código de bytes. Soy un programador de .NET, y los lenguajes de scripting como javascript, etc. no se compilan, solo se interpretan. ¿Podría explicar lo que quiere decir con esas declaraciones contradictorias
Aprendiz

Groovy se puede utilizar en ambos sentidos. El programa Groovy se puede ejecutar como un script simple línea por línea, como javascript. También se puede compilar usando un compilador maravilloso para la clase de código de bytes que se puede ejecutar usando JVM.
pRmdk

0

Grails: marco MVC para desarrollar una aplicación web y una plataforma lista para codificar con DRY (No se repita) construido en la parte superior de Spring + Hibernate. La plataforma Grails se encarga de la infraestructura y las dependencias para ejecutar una aplicación web, de modo que los desarrolladores puedan concentrarse en construir las funcionalidades del producto. Grails: un gran marco para que las organizaciones de inicio lancen el producto desde el modo de desarrollo al modo de producción.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.