Python vs PHP
Chema Cortés
py en ch3m4.org
Jue Feb 23 02:48:05 CET 2006
El Miércoles, 22 de Febrero de 2006 16:27, Luis Marucco escribió:
> Hola a todos, quiero aprovechar esta oportunidad para agradecer sus
> opiniones. Con respecto a tu pregunta sobre las 3 capas, que es algo
> independiente del lenguaje que prengunté, pero lo hice para saber si
> puedo armar en la capa de negocios, componentes con python para un mejor
> mantenimiento y actualizacion del soft, o si tengo que caer en otro
> lenguaje; me imagino que si, pero desconozco completamente python.
Sólo veo ventajas si lo haces con python.
Por un lado, la abstracción del acceso a datos (DB-API) del python permite que
puedas abstraer tu capa de acceso a datos del servidor de bases de datos que
elijas. Por otro lado, puedes emplear prácticamente cualquier librería
gráfica para generar el GUI, incluso puedes pensar en emplear las propias de
java (swing/awt) o de C# (winforms,gtk#) empleando las versiones de python
correspondientes para estas plataformas.
Para la conexión por medio de la capa de lógica de negocio necesitarás
mecanismos de transferencia de objetos de negocio (Bussiness Objects). Para
ésto python cuenta con numerosas utilidades de serialización (pickle, xml,
yaml,...) así como de conexión RPC (pyro, xmlrpc, soap, ...).
No siendo excesivamente puristas con la separación de tres capas, también
puedes optar por insertar parte de la lógica de negocio dentro de un servidor
Postgresql, con vistas y procedimientos almacenados programados en python.
Y si quieres aún más tralla, puedes emplear un servidor Zope como "servidor de
aplicaciones". Zope es más que un servidor web. Te ofrece un interface web
para la gestión y administración de los objetos de negocio, una base de datos
orienta a objetos (ZODB) para almacenarlos y un interface xmlrpc para
conectarlos. Estaríamos entrando en lo que es un diseño de 4 capas, pero se
trataría de un sistema robusto y bastante profesional. Como alternativa más
ligera para la capa de negocio, se podrían usar otros frameworks como
webware, pero no los he tratado tanto como para darte más detalles.
Creo que la respuesta no puede estar más clara: Python te puede valer para
todo.
Más información sobre la lista de distribución Python-es