Investigación de escenarios de desarrollo en Python

Edward Huixquic huixquic en gmail.com
Jue Mayo 25 06:23:26 CEST 2006


Amigos:

El siguiente es un escenario de investigación y de soporte al uso de
Python.  Se ha considerado una situación mas o menos real.

La idea es conocer sus opiniones y comentarios para luego hacer, en base a
ellas, un resúmen de criterios para la toma de decisiones
 sobre el desarrollo de sistemas en Python:

1.- Imaginen una idea / concepto de un sistema, relativamente complejo, algo
asi como un ERP, CRM .... (ya sabemos que hay miles de sistemas de este
tipo, open source algunos, otros en python y otros mas...).

2.- Este sistema deberá ser 100%  basado en tecnología web, es decir se
deberá usar un navegador para usar el sistema.. nada mas.

3.- Digamos que Python nos gusta como lenguaje de programación, standalone,
al menos (es decir en el interprete de python mismo).

4.- Mencionemos que se ha desarrollado algo con Zope desde las versiones
2.3.x  hasta las 2.8.x y se ha encontrado una curva de aprendizaje para el
uso de Zope, muy  fuerte de recorrer, especialmente para las personas "de
nuevo ingreso al equipo".  Esto se repite vez tras vez..... Si bien Zope es
"poderoso", tambien tiene sus "miles de trucos y secretos" difíciles de
aprender y manejar.

5.- Se ha pensado en migrar a Zope-3 que supuestamente soluciona los graves
problemas de Zope-2, especialmente la falta de documentación adecuada y
decent.    Lo  concluyente hasta ahora es que Zope-3 sigue siendo un gran
problema primordialmente por la falta de documentación y la poca que hay es
mala y ya obsoleta en muchos casos.

6.- Se han analizado productos como Django,  Turbogears,   Zope-3,
mod-python,  muchas librerias para usarse con mod-python etc.... todas
tienen sus pros y contras.    La comunidad internacional de Zope es algo muy
valioso cabe decir.  No todos los demás productos tienen este punto de la
comunidad a favor (podemos decir que  "no queremos vivir solos en el mundo
de X", siendo X el producto elegido).

7.- Se pretende usar tecnología como Javascript para fines de validar formas
primordialmente y para detalles de funcionalidad como lo que se puede hacer
con AJAX hoy día.

8.- Se pretende el uso total de estándares y una total independencia del
navegador a usar, es decir debe funcionar exactamente igual    I.E.   y
Firefox, (por lo menos)  y tal vez en otros (Opera, Safari)...

9.- Obviamente el tiempo de desarrollo, pruebas e implementación debe ser
"rápido", con toda la relatividad que implique de ese término.

10.- Es importate pensar que si el equipo de programadores tiene experiencia
con Python (a nivel intérprete) y tal vez tienen ya una cantidad importante
de rutinas (paquetes, módulos, clases, funciones) desarrolladas y probadas
(repito, a nivel del interprete de python).  Estas se deben de poder
integrar al "framework" que se vaya a utilizar, sin mayores modificaciones,
cambios o ajustes.  Visualizamos  virtualmente un "import" nada mas.  Es
decir mientras menos cosas haya que hacer alrededor de cada
rutina/modulo/paquete para integrarlo al sistema final, mejor.
Podríamos llegar a considerar algo como:  Supongamos un sistema en Python,
ya listo y operando en el intérprete en modo texto (con un buen diseño,
rutinas reutilizables, etc.)   , ¿como pasar fácilmente  a un esquema de
funcionamiento en web?

11.- Siguiendo este esquema del punto 10, permitiría reutilizar código libre
(en Python claro) sin mayores complicaciones..  Igualmente, este mismo
concepto permitiria en algun momento futuro el crear una interfase de
usuario basada en algo diferente al navegador web; como GTK o similar...

12.- Por último, la plataforma escogida para éste  ejercicio es:   Linux,
Apache 2.x, PostgreSQL 8.1.x  y Python 2.4.2  (NO, no nos interesa usar
Windows,  Apple Mac u otro software mas que el indicado y, en su caso
adiciones que pudiesen ser forzosas como mxDateTime, etc.)

Ahora:

Suponiendo un buen diseño del supuesto sistema, incluyendo:  diagramas UML,
entidad-relación,  buena factorización de código, etc.

¿Cual sería el mejor esquema de desarrollo de un sistema así ?  (Usando
python como lenguage base claro está).
¿Que framework usarias  y por que (ventajas) ?
¿Que podrías decir EN CONTRA de usar "ese" framework (es decir desventajas)?
¿Cual sería tu enfoque para desarrollar un sistema de esta naturaleza?
¿Que herramientas de software adicionales usarias/recomendarias ?  ¿Por que?
Comentarios o sugerencias adicionales que quieran agregar.

A quienes quieran responder a esta investigación, les pedimos lo hagan a la
lista.  De esta manera todos los interesados en python se enterarán y podrán
contribuir con mas y mejores opiniones.  Depués de un lapso  haremos un
resumen de lo que aprendamos de esta investigacioń y lo publicaremos en la
misma lista de Python en Español.

Hay muchas personas que preguntan sobre cual o tal esquema de desarrollode
python usar por lo que consideramos que todos obtendremos provecho de lo que
se discuta con este proyecto de investigación.

Gracias a todos de antemano por sus opiniones, ayuda, experiencia y tiempo.
------------ próxima parte ------------
_______________________________________________
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