ruby on rails - que - Groovy/Grails:: Ruby/Rails:: 2011 Estado del marco
que es framework grails (6)
Bueno, para Grails, sigo pensando que incluso alcanzándolo, tiene 2 cosas principales que los rieles no tendrán de una manera fácil:
- ampliar
- toneladas de bibliotecas maduras de Java a su alcance (geotools personalmente entre otros)
Sí, existen varios hilos similares, pero ahora estamos en 2011, y muchas cosas han cambiado.
Grails 1.3.6 ha mejorado enormemente en comparación con v1.3 cuando inicialmente intenté aprender el marco (y me rendí ante tiempos de compilación lentos y otros eventos que inducían gruñidos).
Después de haber pasado un par de meses con el último lanzamiento, estoy impresionado, la protracción de una aplicación es una brisa absoluta (¡GORM es genial!). En el modo de desarrollo, ya no es necesario reiniciar, salvo cambios en las clases de dominio. Groovy.lang es fantástico (sin tener en cuenta que esto se compara con mi vida laboral diaria en PHP).
Ahora, por el otro lado, está Ruby / Rails, con el que tengo poca experiencia más allá de leer detenidamente los documentos de Ruby y explorar Active Record (para compararlo con GORM). Viniendo de PHP / Jquery, la sintaxis groovy es torta, ruby ​​no tanto, aunque accesible.
Ruby / Rails está de moda, mientras que Groovy / Grails parece estar ganando velocidad por derecho propio.
Me gustaría escuchar lo que ambos campamentos tienen que decir (bienvenida a lang que induce a la llama) sobre los pros / contras de ambos langs / frameworks en 2011. Al elegir un marco es importante saber en qué te estás metiendo, así que tenlo en él, los novatos se beneficiarán, y los expertos podrán expresar; -)
La primera vez que comencé un proyecto con Rails, realmente me sorprendió:
¿Cómo puedo separar "repositorio" de "Servicio"? Dios mío: tengo que poner lógica empresarial en los controladores ... No puedo imaginarme un gran proyecto con Ruby on Rails: ¿Hay alguien en 37signals que recuerde lo básico de separar Business y Domain / Repository? La estructura de carpetas / clases de Rails no se ocupa de esto.
Segundo calcetín: "Registro activo". Intenta diseñar una capa compleja compleja orientada a objetos y mapea con los modelos Rails (Active Record) ... realmente: no.
6 meses después, con nuestro proyecto en ejecución: R & R consume 80% de CPU (y memoria ...) usando apache + passanger en un servidor quad core ... y la base de datos Postgresql está en vacaciones (3-4% de CPU). .. Oh mi dios (recién)
Mis antiguas aplicaciones ASP / VB6 eran capaces de servir páginas a 300 usuarios concurrentes en un contexto de backoffice real con bases de datos complejas y negocios complejos instalados en una máquina independiente (un año 2001 1 CPU core server).
Por supuesto, las convenciones y la sintaxis de Ruby son preciosas ... y nadie necesita un compilador (bueno ... las pruebas unitarias se usan para este tipo de tareas el 90% del tiempo ... solo para resolver el tipado desaparecedo cada vez que cambio algún código) ... "Por favor, programando a Dios, cuídate de los errores de mis dedos")
Primera imposición con Grails:
- Una pila "Cool" inspirada en Rails con potencia profesional basada en Spring framework (IoC, Hibernate, ...)
¡¡¡Y si!!!
- Hay una separación limpia de Dominio / Servicio. ¡¡¡BONITO!!!
- Puede, eventualmente, olvidarse de Java.
Rails es bastante maduro, tiene un ecosistema ENORME para ir con él. No estoy familiarizado con Grails ni con su soporte en línea, pero la bandera roja que veo en tu publicación es que has admitido que Grails está jugando a alcanzar a Rails.
Ruby es un placer absoluto para trabajar (y esto viene de un viejo truco de C ++ ... por qué, en el día solía programar con solo un teclado hexadecimal, un aleteo joven ... ahora ¡SALGA DE MI CÉSPED!).
Hay cosas sobre el rubí que hacen que sea difícil seguirlas a veces (método_más te estoy mirando) pero estoy seguro de que se puede decir sobre cualquier idioma.
¿Yo? Yo iría con ruby ​​y rieles.
Rails y Grails son excelentes marcos con sus versiones actuales. Realmente no puedes equivocarte con ninguno de los dos. Aquí hay algunas cosas que me parecen interesantes:
Carriles
- Rails (Ruby) no escala tan bien como Grails (Groovy). Necesitarás más caballos de fuerza para ejecutar tu aplicación. Esto no es un gran problema con las opciones de PaaS como EngineYard (y con suerte una opción de AWS BeanStalk Rails en el futuro), pero podría costar un poco más ejecutar una aplicación de Rails contra una de Grails (obviamente JRuby también es un opción a pesar).
- Rails es un poco mejor con las alternativas NoSQL actualmente, pero Grails se está poniendo al día rápidamente
- Rails tiene muchos más complementos, pero esto puede ocasionar problemas si utiliza algunos que no se mantienen (muchos de ellos tampoco funcionan actualmente con Rails 3).
- Rails es más maduro y tiene más funciones en este momento porque ha estado por más tiempo
- El soporte REST de Rails es increíble
- Hay muchos más sitios web "grandes" de Rails que Grails
- Ruby es mucho más popular que Groovy - TIOBE
- Sin dependencia de Oracle, ¡ja! (Grails obviamente necesita la JVM)
Grails
- Grails se integra con la JVM mejor que JRuby
- Grails GORM es mejor que ActiveRecord (IMHO), aunque Rails 3 abrió la puerta un poco para otras opciones de persistencia, pero todos los libros, tutoriales, etc. todos usan ActiveRecord
- Los taglibs de Grails View son mejores que <=% ...%> a la vista
- Los complementos de Grails están bien documentados e indican claramente si son compatibles con SpringSource o no.
- SpringSource está invirtiendo mucho en Grails
- Habrá muchos más trabajos corporativos para Grails que Rails en el futuro, pero más nuevas empresas usan Rails (¿dónde quieres trabajar?)
Mi perspectiva
- Utilicé Rails hace un par de años, ahora estoy trabajando en un proyecto de Grails
- Me gustan ambos mejor que Django (Python) o Zend Framework (PHP)
- Planeo aprender Lift (Scala) next
Mi recomendación
- Si nunca ha realizado el desarrollo de Java y está trabajando en un proyecto paralelo para un sitio web pequeño o mediano, vaya con Rails
- Si está trabajando en una gran compañía que usa Java, pruebe lanzar Grails a su administración como el "siguiente marco de Java" en el que deberían invertir.
- Si estás trabajando en "el próximo twitter o foursquare", ¡entonces eres lo suficientemente inteligente como para responder a esta pregunta tú mismo! :)
Ruby on Rails es excepcional, como el Pink Floyd del desarrollador web.
Groovy en Grails es una copia decente, algo así como el show australiano de Pink Floyd ...
Por cierto, tenemos a ambos en el trabajo, y he visto a muchos desarrolladores de Grails finalmente aprender Rails y aferrarse a él.
También he visto a los desarrolladores de Rails aprender Grails, pero NINGUNO de ellos lo han preferido.
Casi la mitad de las veces, nuestros desarrolladores de Java aprenden Grails y simplemente se mantienen alejados de Ruby.
En mi humilde opinión - Si realmente conoces a ambos bastante bien, casi siempre preferirás Ruby y Rails.
También debes considerar tu IDE. Cuando comencé con rieles, fue bastante doloroso. Rubymine era super lento y se estrelló, todos los que conozco usaban el compañero de texto. Grails tiene STS (basado en eclipse) y le ofrece todas las funciones que necesita.