Pregunta

Estaba mirando alrededor para ver si hay un equivalente a django / RoR en Java.

Encontré:

¿Alguien ha intentado alguna vez esos marcos o conoce algún otro? ¿Son más rápidos que django / RoR?

¿Fue útil?

Solución

Descubrí Grails hace aproximadamente un año, y no he mirado atrás. Toma muchas ideas de Ruby on Rails (original, se llamaba Groovy on Rails) y tiene un rico ecosistema de complementos / extensiones. Grails y el lenguaje subyacente de Grails (superconjunto de Java) hacen que sea un placer programar; realmente puedes concentrarte en lo esencial. Su funcionalidad GORM (una capa en la parte superior de hibernación) también es muy poderosa, y además del sistema de complementos, es una de las dos razones principales para comprobarlo (también puede usarlo en sus aplicaciones java).

Con la versión 1.2 a punto de salir, creo que es rica en características y lo suficientemente madura como para ser algo que cualquier desarrollador debería tener en su cinturón de herramientas.

En cuanto al rendimiento, definitivamente es menor que el de Java puro, pero tiene todo, desde spring / hibernate / J2EE disponible para optimizar, y siempre puede caer en Java puro para algunas piezas críticas de código. Ha habido algunos experimentos recientes que permitieron ejecutar parte del código Groovy utilizando una resolución de método estático, que, junto con el soporte dinámico invocado, debería proporcionar enormes aumentos de rendimiento.

Otros para revisar en Java son Spring Roo y AribaWeb.

Actualización basada en calificaciones adicionales

  

Escalabilidad, productividad,   Documentación y recursos decentes.   consumo

  • Escalabilidad: obtienes la probada pila Java / Spring / Hibernate, aunque no puedo decir que Grails proporcione mucho.
  • Productividad: esta es la razón principal para usar Grails. Sí tiene una sobrecarga de rendimiento, pero Grails es lo que usa cuando el tiempo de desarrollo / productividad es más importante.
  • Documentación: los documentos de Grails son geniales, y hay al menos tres buenos libros escritos solo en Grails. La comunidad es próspera y muy útil.
  • Consumo de recursos: esa es la única compensación. Grails (en parte debido a la pila de Java subyacente) requiere muchos recursos. Si estuviera construyendo algo como Google, Grails no sería la opción. Sin embargo, en cualquier aplicación web de cualquier sofisticación, sería bueno para una solución de almacenamiento en caché, por lo que aquí se aplica lo mismo.

Otros consejos

Stripes parece ser bastante ligero y abarca la Convención sobre la Configuración.

Habiendo utilizado puntales, wicket, rieles y amp; Tapiz, te recomiendo que mires en Tapestry 5 .

Es compatible

  • en la recarga de la clase de contenedor (para que no tenga que reiniciar su aplicación web cada vez que realice un cambio)
  • tiempo de desarrollo rápido & amp; mayor productividad: utiliza un modelo basado en componentes, con cableado declarativo
  • configuración mínima, que en su mayoría está en código de todos modos, convención sobre config - etc.
  • No hay clases base para extender
  • Un lenguaje de expresión para usar en archivos de plantilla
  • buen soporte ajax
  • excelente soporte de depuración, tanto del lado del cliente como del servidor
  • buena integración de acceso a datos
  • una comunidad activa
  • escrito desde cero con rendimiento en mente. p.ej. agrupación de páginas (para minimizar el uso de recursos), compresión de páginas, eliminación de espacios en blanco, todo el código dinámico se compila en nativo.
  • buen soporte de beans y formularios: simplifica las tareas comunes. Un drid respaldado por una base de datos ordenable se puede codificar con solo una línea de código de plantilla y un backend de servidor esqueleto mínimo.

el único inconveniente es la documentación, que es buena, pero un poco breve, aunque los grupos de usuarios / listas de correo son muy activos y la mayoría de las preguntas se responden bien & amp; con entusiasmo

(Además, asegúrese de mirar solo T5, y no T4,3,2,1 ..... ya que estos son muy diferentes a la versión actual)

Más sobre por qué aquí .

Considere probar Lift Framework . Es realmente genial.

Cada vez que esté contemplando una pila de aplicaciones (lenguaje, marco, etc.) también debe considerar qué está tratando de resolver y qué tipo de habilidades de programación tiene a su disposición. He descubierto que los programadores Java más experimentados han sido muy productivos con la pila Groovy y Grails en comparación con los programadores más jóvenes.

Usted menciona lo siguiente como áreas de preocupación:

  • Escalabilidad: ¿en términos de qué exactamente? (páginas vistas / segundo, # transacciones / segundo, etc.) En general, Groovy & amp; Grails se escalará cuando se trata de renderizar páginas, sin embargo, como con cualquier pila de aplicaciones que use ORM (en el caso de Grails, tiene GORM) hay algunos gastos generales a considerar.
  • Productividad: una de las principales ventajas aquí: creación rápida de prototipos, desarrollo rápido es muy fácil con Groovy & amp; Grails, aunque es útil contar con personas en el personal que se han desarrollado en Java o Ruby para comprender qué está haciendo realmente el marco de Grails '' bajo el capó ''. Hay toneladas de complementos para la interfaz de usuario que ayudan a crear páginas web 2.0 muy rápidamente.
  • Documentación: cada vez se escriben más libros de referencia de calidad para Groovy & amp; Griales Ambos están madurando muy bien en los últimos 2 años. Ciertamente, las cosas no están muy bien documentadas con respecto a gran parte del funcionamiento interno del marco de Grails cuando se encuentran errores / problemas (gran parte de la salida del marco es oscura o inexistente en el mejor de los casos cuando se enfrenta un error). Si estás dispuesto a arremangarte y ser ingenioso para caminar a través del funcionamiento interno, entonces no te decepcionará con esta pila. Una vez más, los programadores experimentados encontrarán esto como una segunda naturaleza, mientras que más personas jóvenes pueden arrojar sus manos frustradas a veces.
  • Consumo de recursos: hay gastos generales, sin embargo, con la mayoría del hardware encontrado hoy (local o en una nube) no me preocuparía demasiado por el consumo de recursos físicos para una instancia de aplicación determinada.

Espero que esto ayude.

No sé sobre Play Framework, pero para responder la segunda pregunta, estamos haciendo algunos proyectos con Webtoolkit de Google. Podría valer la pena echarle un vistazo.
¡Buena suerte!

¿Qué tal JRoR

No lo he probado yo mismo, pero las universidades mías disfrutan usando stripes

Hay un libro y todo.

Spring Roo afirma ser una solución.

He realizado un proyecto con griales y lo he encontrado muy rápido para algunas tareas, pero hace muchas "magia". detrás de escena que dificulta la depuración.

También me encontré leyendo una y otra vez la documentación porque no la sentía natural. Un ejemplo simple es el controlador donde las acciones se definen como campos (es natural para mí pensar en una acción como un método ...). Puedo decir algo sobre GORM donde necesitas saber algunas palabras especiales que cuando se colocan en campos estáticos hacen algo de magia como hacer que un campo sea transitorio ... Sin anotaciones, sin autocompletar ... solo el manual.

En cuanto a jugar! Me pareció increíblemente simple y rápido de desarrollar, fácil de aprender y recordar. La comunidad parece más pequeña que la del Grial, pero es más activa y más rápida de responder. La única desventaja es que no depende de la API del servlet, por lo que algunos filtros de terceros u otras cosas son difíciles de integrar pero no imposibles. Es importante tener en cuenta que puede implementar una aplicación Play en cualquier servidor web tradicional que la empaquete como una guerra.

En mi opinión, Grails es excelente, pero debes tener mucha experiencia para ser productivo, de lo contrario perderás mucho tiempo con los manuales. Entonces, si ese no es tu caso, ¡recomendaría Play! Especialmente si no estás familiarizado con Groovy

No sé acerca de Play Framework, pero Spring MVC o Struts juntos Hibernate ofrecerá una funcionalidad similar.

Hay muchas otras opciones disponibles. Básicamente necesita un marco MVC (Spring MVC, Struts, Wicket) y una herramienta ORM (Hibernate, iBatis). Por supuesto, necesitaría integrar los componentes necesarios usted mismo, pero esto ya se ha hecho muchas veces y podrá encontrar mucha información.

No estoy seguro de si Spring MVC e Hibernate proporcionan la misma facilidad de uso que proporciona Ruby on Rails (en realidad, estoy seguro de que es mucho más complicado ...). Play Framework es mucho más parecido a Ruby on Rails, creo, sin embargo, no lo usé yo mismo y solo vi el screencast y leí algo de documentación, así que si quieres tener una experiencia similar al desarrollo usando RoR, creo que puedes mejor intente algo como Jugar en lugar de Spring MVC con Hibernate. La ventaja de este último es que es muy potente y puede adaptarse a un modelo de datos existente, por ejemplo (por lo que sé en RoR, eso no es muy trivial en RoR). Otro marco que podría considerar es Groovy on Grails. Si bien no usa Java (usa Groovy), es muy similar a RoR. Utiliza Spring e Hibernate debajo del capó (si estoy en lo correcto) y la ventaja de Groovy es que no tienes el estricto tipeo estático de Java. Ruby on Rails y Django se benefician en gran medida de la naturaleza dinámica del lenguaje en el que se implementa, una característica que Java pierde debido a su escritura estática.

Editar: ah, ya mencionaste a Grails en tu pregunta ...

si grails es una opción (que en realidad no es un java sino un marco maravilloso) entonces el Lift framework también sería una opción.

Otra opción es RIFE , que intenta tener la configuración mínima de RoR sin dejar de estar en Java. En su lista, solo Play Framework tiene esa característica, los otros están en la JVM, pero no son Java (si eso es importante para usted).

¿Qué pasa con VRaptor ? - utiliza Spring como contenedor DI y un motor de controlador / vista similar a Rails Action-Pack.

AribaWeb también es compatible con Groovy. Consulte nuestras otras funciones en http://aribaweb.org/ y descubra nuestro enfoque para hacer que el desarrollo web sea productivo.

Usamos el marco Stripes ampliamente y funciona muy bien. Es realmente liviano y lo dirige hacia un diseño limpio de sus aplicaciones. Básicamente solo te oculta las partes aburridas del desarrollo, para que puedas concentrarte en las cosas divertidas (un ejemplo de ello es el propiedades indexadas ).

He estado usando http://www.ninjaframework.org/ para microservicios y está muy cerca de la mayoría de los paradigmas de mvc, si usó rails, asp.net mvc o nancyfx, está listo para comenzar. Está muy cerca de esa filosofía y es realmente increíble y fácil de probar. Solo por el lado negativo no hay mucha documentación, pero sigue el patrón mvc bastante de cerca. No utiliza nada patentado en el marco, por lo que es una solución pura basada en Java. Entonces esto compensa la falta de documentación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top