Pregunta

Me pregunto si existe una facilidad de desarrollo de aplicaciones web similar a la de Django combinada con una buena implementación, depuración y otras herramientas.

Django es un marco muy productivo para crear sitios con mucho contenido;lo mejor que he probado y un soplo de aire fresco comparado con algunas de las monstruosidades de Java que existen.Sin embargo, está escrito en Python, lo que significa que hay poco soporte real en cuanto a implementación/empaquetado, depuración, perfiladores y otras herramientas que facilitan mucho la creación y el mantenimiento de aplicaciones.

Ruby tiene problemas similares y aunque me gusta Ruby mucho Más de lo que me gusta Python, tengo la impresión de que Rails está más o menos en el mismo barco que Django cuando se trata de administrar/soportar la aplicación.

¿Alguien aquí ha probado Django y Grails (u otros marcos web) para proyectos no triviales?¿Cómo se compararon?

¿Fue útil?

Solución

Preguntaste por alguien que usara tanto Grails como Django.He trabajado en ambos para grandes proyectos.Aquí están mis pensamientos:

IDE:Django funciona muy bien en Eclipse, Grails funciona muy bien en IntelliJ Idea.

Depuración:Prácticamente lo mismo (suponiendo que use IntelliJ para Grails y Eclipse para Python).Paso de depuración, inspección de variables, etc...Nunca necesitarás una declaración impresa para ninguno de los dos.A veces los mensajes de error de Django pueden ser inútiles, pero los mensajes de error de Grails suelen ser bastante largos y difíciles de analizar.

Es hora de ejecutar una prueba unitaria:Django:2 segundos.Griales:20 segundos (ambas pruebas se ejecutan en una fracción de segundo, es la parte sobre cargar el marco para ejecutarlas la que toma el resto...como puede ver, Grails tarda frustrantemente en cargarse).

Despliegue:Django:copie y pegue un archivo en una configuración de Apache y, para volver a implementarlo, simplemente cambie el código y vuelva a cargar Apache.Griales:cree un archivo .war, impleméntelo en Tomcat, enjuáguelo y repita para volver a implementarlo.

Lenguajes de programación:Groovy es TOTALMENTE increíble.Me encanta, más que Python.Pero ciertamente no tengo ninguna queja.

Complementos:Griales:muchos complementos rotos (y pueden usar todas las bibliotecas de Java).Django:Algunos complementos estables, pero suficientes para hacer la mayor parte de lo que necesitas.

Base de datos:Django:migraciones de esquemas utilizando relaciones Sur y generalmente intuitivas.Griales:no hay migraciones de esquema y, de forma predeterminada, elimina la base de datos al inicio...WTF

Uso:Django:startups (especialmente en el espacio Gov 2.0), tiendas de desarrollo web independientes.Griales:empresa

¡Espero que ayude!

Otros consejos

Sin embargo, está escrito en Python, lo que significa que hay poco apoyo real en la forma de implementación/embalaje, depuración, perfiladores y otras herramientas que facilitan la construcción y el mantenimiento de aplicaciones.

Python tiene:

  1. a gran depurador interactivo, que hace muy buen uso de Python REPL.
  2. Instalación fácil anv entorno virtual para gestión de dependencias, empaquetado e implementación.
  3. características de perfilado comparable a otros idiomas

Entonces, en mi humilde opinión, no deberías preocuparte por estas cosas, usa Python y Django y vive feliz :-)

Por suerte para ti, la versión más nueva de Django se ejecuta en Jython, por lo que no es necesario que dejes atrás todo tu ecosistema Java.

Hablando de marcos, evalué este año:

  1. Pilones (Pitón)
  2. Webpy (Pitón)
  3. Symfony (PHP)
  4. pastelPHP (PHP)

Ninguno de estos frameworks se acerca al poder de Django o Ruby on Rails.Según la opinión de mi colega, podría recomendarte. kohana estructura.La desventaja es que está escrito en PHP y, hasta donde yo sé, PHP no tiene excelentes herramientas para depurar, crear perfiles y empaquetar aplicaciones.

Editar: Aquí hay una muy buena artículo sobre empaquetado e implementación de aplicaciones Python (específicamente aplicaciones Django).Es un tema candente ahora en la comunidad Django.

La declaración que Grails elimina la base de datos al iniciar. está completamente equivocado.Su comportamiento al inicio es completamente configurable y fácil de configurar.Generalmente uso create-drop cuando ejecuto una aplicación en modo de desarrollo.Utilizo la actualización cuando ejecuto en prueba y producción.

También me encanta el procesamiento de arranque que me permite preconfigurar usuarios de prueba, datos, etc. por entorno en Grails.

Me encantaría ver a alguien que realmente haya construido e implementado algunos proyectos comerciales comentar sobre los pros y los contras.Sea una lectura realmente interesante.

Griales.

Grails se parece a Rails (Ruby), pero usa Groovy, que es más simple que Java.Utiliza tecnología Java y puedes usar cualquier biblioteca Java sin ningún problema.

También elijo Grails en lugar de la simplicidad y hay muchas bibliotecas de Java (como jasper report, jawr, etc.) y me alegro de que ahora se unan a SpringSource, lo que hace que su base sea sólida.

Tengo dos amigos que originalmente comenzaron a escribir una aplicación usando Ruby on Rails, pero se encontraron con una serie de problemas y limitaciones.Después de unas 8 semanas de trabajar en ello, decidieron investigar otras alternativas.

Se decidieron por el Marco catalizador, y Perl.Eso fue hace aproximadamente 4 meses y han hablado repetidamente sobre cuánto mejor va la aplicación y cuánta más flexibilidad tienen.

Con Perl tienes todo CPAN a tu disposición, junto con la gran cantidad de herramientas incluidas.Yo sugeriría al menos echarle un vistazo.

La cuestión de la "buena implementación" (para Python) no tiene la importancia profunda que tiene para Java.

La implementación de Python para Django es básicamente "mover los archivos".Puede ejecutar directamente desde el directorio troncal de Subversion si lo desea.

Puedes, sin sudar mucho, usar Python distutils y cree usted mismo un kit de distribución que coloque sus aplicaciones Django en los paquetes del sitio de Python.No soy un gran admirador de esto, pero es muy fácil de hacer.

Como mis cosas se ejecutan en Linux, tengo scripts simples "install.py" que mueven cosas de los directorios de Subversion a /opt/this y /opt/that directorios.Utilizo una configuración de ruta explícita en mi configuración de Apache para nombrar los directorios donde viven las aplicaciones.

La aplicación de parches se puede realizar editando los archivos en su lugar.(Una mala política). Prefiero editar en la ubicación SVN y volver a ejecutar mi pequeña instalación para asegurarme de tener todos los archivos bajo control.

pastelphp.org

Cakephp es realmente bueno, muy cercano a Ruby on Rails (1.2).Está en php, funciona muy bien en hosts compartidos y es fácil de implementar.

El único inconveniente es que falta algo de documentación, pero rápidamente la obtienes y rápidamente comienzas a hacer cosas interesantes.

Recomiendo totalmente cakephp.

Personalmente, hice algunos proyectos bastante grandes con Django, pero solo puedo compararlos con dichas "montrosidades" (Spring, EJB) y cosas de muy bajo nivel como Twisted.

Los marcos web que utilizan lenguajes interpretados se encuentran en su mayoría en su infancia y todos ellos (es decir, mantenidos activamente) mejoran cada día.

Por "buena implementación", ¿lo está comparando con los archivos EAR de Java, que le permiten implementar aplicaciones web cargando un solo archivo en un servidor J2EE?(Y, en menor medida, archivos WAR;Los archivos EAR pueden tener archivos WAR para proyectos dependientes)

No creo que Django o Rails hayan llegado a ese punto todavía, pero podría estar equivocado...Zuber señaló un artículo con más detalles sobre el lado de Python.

Capistrano Puede ayudar del lado de Ruby.

Desafortunadamente, no he trabajado mucho ni con Python ni con Ruby, por lo que no puedo ayudar con los perfiladores o depuradores.

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