2011-03-16 20 views
6

Para desarrollar una aplicación web que pueda escalar fácilmente, proporcionar estabilidad de producción, sea fácil de implementar y permita ciclos de desarrollo rápidos, ¿qué puntos recomendaría? Miro antes de elegir uno u otro marco: ¿usando Java y Tomcat, o Django y Apache/Mod_WSGI?Elegir entre Django-Apache y Java-Tomcat para una aplicación web

Algunas ventajas y desventajas que pude ver de inmediato,

  • aplicaciones Tomcat son fáciles de implementar - soltar un archivo WAR y ya está. aplicaciones Django parecen necesitar más discusiones
  • ORM de Django parece mucho mejor que Hibernate (No estoy seguro si la creación de .egg archivos y colocándolos en que funcionaría así?) - genera modelos directamente en comparación con los archivos de configuración manual de Hibernate
  • Python como un lenguaje es más rápido de desarrollar y mucho más conciso que Java. (Por supuesto, esta es una discusión de nivel relativamente superior).

He visto las diapositivas de Disqus sobre escalar Django y no tengo dudas de que se puede hacer. Pero, ¿sería más difícil escalar una aplicación Django que escalar una Java/Tomcat?

Estoy familiarizado tanto con Java como con Python y los frameworks mencionados anteriormente, y todo se reduce a obtener retroalimentación sobre aquellos que han trabajado con alguno (o ambos) en escala.

Gracias!

+0

¿Por qué votar abajo? – viksit

+0

Su punto acerca de los archivos conf de manual de Hibernate no está completo.También puede implementar asignaciones ORM utilizando anotaciones. – mindas

+0

Pero las anotaciones aún deben escribirse manualmente, ¿verdad? Si tengo una tabla con 4 cols, Django inspeccionará la base de datos y generará un diseño de clase esqueleto bastante bueno. Con Hibernate, esto debe hacerlo el usuario. ¿Corrígeme si estoy equivocado? – viksit

Respuesta

2

Elijo Python con Django, porque es mejor en la implementación. No necesitas construir guerra. Usted solo copia archivos en el servidor y eso es todo.
Django es fácilmente escalable y estable a la producción. ver this.

Si prefieres Java, mira Grails. Pero tiene 2 menos: crear guerra y mucho uso de memoria (200 mb sin usuarios).

5

Éstos son mis experiencias:

  • Django-Apache cabe en 16MBs de memoria, mientras que Java Tomcat requiere mucho más que eso.
  • La codificación en Python es mucho más rápida, eso es cierto. En Java, por otro lado, tiene comprobaciones, perfiladores y depuradores en tiempo de compilación que lo ayudan a aumentar la estabilidad de su aplicación.
  • Si planea hacer cálculos pesados ​​o necesita estructuras de datos complejas, las tecnologías de compilación de Java le proporcionarán la velocidad que necesita.
  • Es más fácil mantener un proyecto grande en un entorno estrictamente orientado a objetos con herramientas avanzadas de refactorización, como Java.
  • Por otra parte, la codificación en Python es mucho más rápida.
3

Vale la pena señalar que el código de Python can be extended with C/C++ code. De modo que las aplicaciones de Django pueden, de hecho, ser más rápidas que sus equivalentes de Java si se tiene cuidado de usar código nativo donde se requieren estructuras de datos complejas o de velocidad.

Obviamente, mi voto es para Django.

+0

Aunque debería valer la pena señalar que esto puede hacer que el soporte multiplataforma sea más difícil, ya que es más difícil instalar extensiones c que módulos puros de python ... Lo último que revisé fue un factor decisivo para el motor de la aplicación google – Alex

+2

Java puede realizar C/C++ llama también. http://docs.oracle.com/javase/6/docs/technotes/guides/jni/ – Cedmundo

+0

Si se realizan cálculos pesados ​​con Numpy/Scipy, entonces creo que la portabilidad es mucho mayor que Java. Los paquetes IMO Python son más fáciles de instalar que los de Java y Numpy es muy rápido. –

Cuestiones relacionadas