2009-12-01 22 views
17

Estaba buscando para ver si hay un equivalente a django/RoR en java.frameworks web Java

que encontré:

¿Alguien ha intentado alguna vez esos marcos, o sabe usted cualquier otro? ¿Son más rápidos que django/RoR?

+0

¿Qué elementos de un marco web son importantes para usted? Escalabilidad, productividad, documentación, etc. – Joel

+0

Escalabilidad, productividad, documentación y consumo decente de recursos (incluso si todo el mundo dice que no es tan importante para una aplicación web, en un entorno de nube será) – Roch

+0

punto de referencia de rieles, wicket, grails, play, list, jsp: http : //www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/ –

Respuesta

17

Descubrí Grails hace aproximadamente un año, y no he mirado hacia atrás. Se necesitan muchas ideas de Ruby on Rails (originalmente 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 hibernación) también es muy poderosa, y además del sistema de complementos, es una de las dos razones más importantes para verificarlo (también puedes usarlo en tus aplicaciones Java).

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

En cuanto a rendimiento, es definitivamente menor que el de Java puro, pero tiene todo lo que necesita para optimizar desde primavera/hibernación/J2EE, y siempre puede caer en java puro para algunas piezas críticas de código.Se han realizado algunos experimentos recientes para permitir ejecutar parte del código de Groovy utilizando la resolución de métodos estáticos, lo que, junto con el soporte dinámico invocado, debería proporcionar grandes aumentos de rendimiento.

Otros para consultar en Java son Spring Roo y AribaWeb.

actualización basada en las calificaciones adicionales

escalabilidad, Productividad, Documentación y Recursos decente consumo

  • Escalabilidad - se obtiene el resultado de pila Java/primavera/Hibernate, aunque no puedo decir que Grails proporcione mucho.
  • Productividad: esta es la razón principal para usar Grails. Usted 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 Java subyacente) consume muchos recursos. Si estuviera construyendo algo así 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 se aplica aquí.
+1

Bueno, sí, el grial parece genial. Pero creo que voy a probar "Jugar", se ve realmente atractivo ...lo único que me preocupa es el consumo de recursos y si es peor o mejor que php/python/ruby, no logré encontrar mucho sobre él en google. – Roch

+1

Suena bien - jugar se ve bien. También consulte los videos de AribaWeb: se ve muy dulce. Solo ten en cuenta que con Grails, también obtienes el poder de Groovy, que en sí mismo es una ventaja (aunque, por supuesto, el rendimiento es una compensación). –

+0

Bien, echaré un vistazo a AribaWeb. Play framework usa también Groovy para sus plantillas ;-) – Roch

1

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

0

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

Hay muchas otras opciones disponibles. Básicamente se 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.

1

¿Qué hay de JRoR

+2

¡JRuby on Rails no es un framework web de Java! Es Ruby on Rails ejecutándose en una JVM. –

+1

Se comete el mismo error en la pregunta en sí, así que presumiblemente el asker no solo significa java :) – Bozho

+0

sí, no sabía que estoy editando ahora. – Roch

0

No estoy seguro de si Spring MVC y Hibernate proporciona la misma facilidad de uso que ofrece 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, aunque no lo hicimos nosotros mismos y solo vimos el screencast y leímos documentación, así que si quieres tener una experiencia similar al desarrollo usando RoR, creo que mejor puede probar algo como Jugar en lugar de Spring MVC con Hibernate. La ventaja de este último es que es muy potente y es capaz de 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 parecido a RoR. Utiliza Spring e Hibernate bajo el capó (si estoy en lo cierto) y la ventaja de Groovy es que no tienes el estricto tipado 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 se pierde en Java debido a su tipado estático.

Editar

: ah, usted ha mencionado Griales ya en su pregunta ...

0

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

1

no lo he probado a mí mismo, pero los colegios de la mina disfrutar de su uso stripes

Hay un todo y book.

0

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

3

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

+0

Stripes parece muy interesante. +1 –

0

¿Qué hay de VRaptor? - usa Spring como DI Container y un motor Controller/View similar a Rails Action-Pack.

2

Habiendo utilizado struts, wicket, rails & Tapiz, te recomiendo que busques en Tapestry 5.

Es compatible con

  • en la recarga de clases de contenedores (lo que no tiene que reiniciar su aplicación web cada vez que realice un cambio)
  • rápido tiempo de desarrollo & aumento de la productividad - que utiliza un modelo basado en componentes, con cableado declarativa
  • configuración mínima, que es en su mayoría en el código de todos modos, la convención sobre config - etc ..
  • No hay clases base para extender
  • Un lenguaje de expresión para su uso en archivos de plantilla
  • buen soporte ajax
  • excelente soporte de depuración, tanto en el lado del cliente y el servidor
  • integración buen acceso a los datos
  • una comunidad activa
  • escrito desde cero con performance 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 frijoles 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, la cual, es bueno, pero un poco escueta, aunque los grupos de usuarios/listas de correo son muy activos y la mayoría de las preguntas se responden bien & con impaciencia.

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

Más sobre por qué here.

0

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

2

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. Descubrí 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 las siguientes áreas de interés:

  • Escalabilidad: en cuanto a qué es exactamente? (páginas vistas/segundo, # transacciones/segundo, etc ...) En general, Groovy & Grails se escalará cuando se trata de páginas de renderizado, sin embargo, como con cualquier pila de aplicaciones que use ORM (en el caso de Grails tiene GORM) existe es algo que hay que considerar.
  • productividad: una de las principales ventajas aquí - prototipado rápido, rápido desarrollo es una brisa con Groovy & Grails, aunque esto ayuda a tener gente en el personal que se han desarrollado en Java o Ruby para entender lo que el marco Grails está haciendo realmente " bajo el capó". Hay muchos complementos para la interfaz de usuario que ayudan a crear páginas similares a la web 2.0 muy rápidamente.
  • Documentación: cada vez hay más libros de referencia de calidad escritos para Groovy & Grails. 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 del resultado del marco es oscuro o inexistente en el mejor de los casos cuando se produce un error). Si estás dispuesto a arremangarte y ser ingenioso al caminar por el funcionamiento interno, entonces no estarás decepcionado con esta pila. Una vez más, los programadores experimentados encontrarán esto como una segunda naturaleza, mientras que las personas más jóvenes pueden arrojar sus manos en frustración a veces.
  • Consumo de recursos: hay gastos generales, sin embargo, con la mayor parte del hardware que se encuentra hoy (local o en una nube) no me preocuparía demasiado el consumo de recursos físicos para una instancia de aplicación determinada.

Espero que esto ayude.

0

Utilizamos Stripes framework extensivamente y funciona realmente genial. Es realmente liviano y lo dirige hacia un diseño limpio de sus aplicaciones. Básicamente, oculta las partes más aburridas del desarrollo, para que puedas concentrarte en las cosas divertidas (uno de estos ejemplos es el indexed properties).

1

He hecho un proyecto con Grails y lo he encontrado muy rápido para algunas tareas, pero hace mucha "magia" detrás de las escenas 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 método ...). Puedo decir algo acerca de GORM donde necesitas saber algunas palabras especiales que cuando se colocan en campos estáticos hace algo de magia como hacer un campo transitorio ... Sin anotaciones, sin autocompletar ... solo el manual.

¡Como para 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 de Grail, pero es más activa y más rápida de responder. La única desventaja es que no se basa en la API de 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 y convertirlo en una guerra.

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

0

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

Cuestiones relacionadas