Comparar J2EE vs (Turbogears, Django, Pylons)

Jose Luis Dominguez NONLILLY DOMINGUEZ_JOSE_LUIS_NONLILLY en LILLY.COM
Mar Jun 5 16:05:50 CEST 2007


Muchas gracias por las respuestas.

Esta ultima es todo un repaso a la tecnología existente ;)

Hoy mismo me pondré a ver lo de PyRo, y me parece que de momento me voy a 
decantar por venderle a mi jefe como solución rápida Turbogears ;).

Y muchísimas gracias por las respuestas tan completas

Un saludo

 


python-es-bounces en aditel.org wrote on 05/06/2007 15:50:17:

> Creo que el titulo de tu mensaje es apropiado J2EE vs (un monton de
> cosas pythonicas).
> 
> Si quieres comparar J2EE con python, te propongo hacerlo por partes, y
> luego ver un framework para verlo en su conjunto.
> 
> J2EE
> ===
>  * JSP es el sistema de plantillas
>  * Servlet para implementar un controlador HTTP
>  * POJOs, Session EJB, ... para hacer la logica de negocio
>  * EJBs de entidad (1.0 .. 3.0), Hibernate para la logica de
> persistencia. Hibernate no es J2EE (si lo es EJB 3.0 que es una
> inspiracion) pero se usa mucho.
>  * EJB y JMS para mensajeria
>  * JARs, WARs, EARs para el despliegue
> 
> Python
> ====
> Sistemas de plantillas
> ----------------------------
> Tienes un monton de referencias:
>  - Los PSP que vienen con mod_python
>  - Kid, Ghensi, SimpleTAL, ZTL, ... como sistemas de plantillas XML
> que generan contenido
>  - Chetah
>  - Clearsilver (escrito en C)
>  - Breve
>  - .... (una enorme lista)
> 
> Controlador
> ---------------
>  - Cherrypy como cosa hecha
>  - WSGI, mod_python, ... como base para hacerte el tuyo
>  - El que te proporcione el framework en cuestion. Por ejemplo django
> 
> Logica de negocio
> -----------------------
> Lo mismo que POJO es una clase de Java de las de toda la vida, aqui se
> usan los modulos de python de toda la vida ;-)
> Si quieres tener la funcionalidad de llamadas remotas de los EJB de
> manera pythonica, te puedes mirar PyRO
> 
> Entidad
> ----------
>  - DBI siempre esta como opción, pero es comparable a jdbc (Java), no a 
J2EE
>  - SQLObject. ORM facil de usar, pero que te puede resultar limitado.
> Patron Active Record
>  - SQLAlchemy. Completo y mas util si tienes bases de datos legacy.
>  - Hay un monton de ORM's escritos en python. Django tiene el suyo
> propio, el autor de cherrypy esta haciendo otro.
> 
> Mensajeria
> --------------
>  - Volvemos a PyRO, aunque las colas de mensajes no son persistentes
> :-(. No conozco forma pythonica con dicha funcionalidad.
> 
> Despliegue
> --------------
> Si el Java (cafe) viene en JARs (jarras), una python (serpiente)
> vienen en egg (huevos).
> El sistema de python es mucho más mejor:
> - Tiene control de dependendecias y capacidad de descargar los
> paquetes de un repositorio. Como el Java Web Start, pero que lo puedes
> usar para todo.
> - Puedes encontrar un tipo de ficheros instalados como hace Turbogears
> para encontrar los widgets que tienes instalados.
> 
> Frameworks J2EE
> ==========
> Nadie trabaja directamente con la especificacion J2EE directamente
> porque es un poco infumable. La mayoria de la gente trabaja con
> frameworks que facilitan la labor de trabajar con J2EE. Sobre todo si
> el proyecto es grande.
> Aqui eso de elijo J2EE y no me como la cabeza se termina.
> 
> Struts
> -------
> Framework MVC que se hizo famosillo. No se si sigue de moda o no. Te
> permitia usar Velocity en vez de JSP, y ayudaba a la hora de hacer el
> controlador. No se metia demasiado con cosas de entidad.
> 
> JSF
> ----
> Tecnologia para cosas de presentacion en Java. Se da un aire a Struts
> (o eso me parece) pero mas moderno. Creo que esta incluido en la
> especificacion J2EE, pero no me hagas mucho caso. Mis tiempos de
> Javero pasaron hace tiempo.
> 
> Spring
> --------
> Framework grande y complejo donde los haya. La idea principal es que
> J2EE apesta y que es mejor usar POJO's mediante la inyeccion de
> dependencia. Le meten un repasito a todo (incluso tiene una jerarquia
> de excepciones de SQL para que no tengas que hacer un codigo espantoso
> a base de comprobar el status code de la SQLException).
> Recomendable hecharle un vistazo si vas a hacer algo medianamente gordo.
> 
> Otros
> -------
> Tienes un monton. Creo que todas las empresas de informatica de españa
> tienen el suyo desarrollado antes sobre Struts y ahora sobre Spring.
> Por ejemplo NEO de Entel.
> 
> Frameworks de Python
> ==============
> Esta lista tampoco va a ser exhaustiva. Solo mostrar algunos ejemplos
> de frameworks y su utilidad.
> 
> Turbogears
> ---------------
> Simple y sencillo. Es el pegamento para unir cosas que ya habia en la
> comunidad de python:
> - CherryPy de controlador
> - Todo el sistema de plantillas compatible con Buffet (una interfaz
> comun para un monton de sistemas).
> - SQLAlchemy y SQLObject como ORMs
> - Sistema de autenticacion propio.
> - Herramientas para ayudar en la internacionalizacion.
> - Sistema de widgets propio o ToscaWidgets (gracias Alberto ;-))
> - Ayudas para el despliegue
> - ....
> 
> Django
> ---------
> No conozco mucho del tema.
> Solo se que se lo han currado todo ellos. Su ORM, sistema de plantillas, 
...
> 
> Pylons
> ---------
> Un pegamento para unir un monton de piezas WSGI.
> http://www.wsgi.org/wsgi por si quieres mas piezas para tu proyecto
> 
> Plone
> -------
> Es un framework muy orientado a la gestion de contenidos, realizado
> sobre ZOPE que es algo que sirve para mas cosas.
> En la pagina de Plone tienes un video hecho por un tio de la NASA que
> explica por qué eligio Plone antes que Turbogears, Django, Ruby on
> rails y J2EE.
> http://plone.org/about/movies
> El video no creo que te ayude a elegir uno u otro framework, pero si a
> no elegir Java ;-)
> 
> 
> 
> Y despues de toda esta chapada que te he metido, veo que me faltan un
> monton de cosas por analizar:
> - Sistemas de logs
> - Sistemas de autenticacion/autorizacion
> - Securizacion
> - Rendimiento
> - Soporte
> - ...
> 
> Tras analizar un monton de estas cosas por encima decidi probar
> Turbogears mas a fondo y cambiar si me raya en un futuro. Es posible
> que cambie hacia WebPy para mis cosas, aunque no descarto el uso de
> Plone en determinados casos (¿puede haber dos soluciones mas
> antagonicas?). Django por ahora no me llama.
> 
> Si vas a usar WXPython como cliente (aparte del web) puedes usar SOAP,
> varios frameworks de python te ayudan con la tarea. Aunque yo mas
> tiraria por algo como PyRO que posiblemente tenga menos latencia. Solo
> que para esta ultima opcion ningun framework te va a guiar.
> 
> Un saludo y espero no haberte liado mucho.
> 
> Javi
> 
> 
> El 4/06/07, Jose Luis Dominguez NONLILLY
> <DOMINGUEZ_JOSE_LUIS_NONLILLY en lilly.com> escribió:
> > Hola a todos.
> > Ya sé que esto va un poco en cuestión de gustos, pero mi problema es 
el
> > siguiente.
> >
> > En un proyecto nuevo quieren realizar la típica gestión de almacén y 
un
> > par de cosas más.
> >
> > Como no, mi jefe quiere vender J2EE, que hoy en día es lo que más está 
de
> > moda.
> >
> > Como yo prefiero Python, he empezado a buscar y leer, y he encontrado 
como
> > buenas opciones Django, Turbogears y Pylons.
> >
> > La duda que tengo es si estoy frameworks son comparables a JEE. Por lo 
que
> > he leído ambos usan el patrón MCV, lo que no me quedó muy claro es si
> > puedo realizar aplicaciones de escritorio como vista. Es decir, usar 
algo
> > parecido a los servlets de JEE, y desde mi aplicación, por ejemplo con
> > WXPython, conectarme a servidor de aplicaciones (No sé si esto último 
que
> > he dicho es una tontería ya que no sé si TG o Django se basan en el 
modelo
> > de tres capas)
> >
> > Y finalmente, sin animo de crear polémica, cual prefieren ustedes de 
los
> > tres mencionados?
> >
> > Un saludo
> > Jose
> > _______________________________________________
> > Python-es mailing list
> > Python-es en aditel.org
> > http://listas.aditel.org/listinfo/python-es
> >
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es




Más información sobre la lista de distribución Python-es