2009-03-27 18 views
8

Voy a construir una solución llave en mano para un mercado vertical, y me gustaría ofrecer ambas opciones: software como servicio, y darles la oportunidad de alojar la aplicación en su propia. En otras palabras, pretendo tener opciones de implementación similares a las de Joel's FogBugz.Django o CodeIgniter para la aplicación web llave en mano

Soy un programador de Python, y podría volar sobre el proyecto con Django. Aunque hay varias razones por las que prefiero PHP:

1) La instalación de Django y la configuración asumen que tienes acceso a un shell (mi destino no es el tipo de programador). Aunque podría ofrecer un servicio de instalación, pero no en sus servidores.

2) Django se ejecuta solo en algunos hosts específicos que deben tener especial cuidado para habilitarlo. Instalando mod_python/mod_wsgi, y muy probablemente la minoría de mis potenciales clientes tendría acceso de root, o incluso un panel de control.

3) Usar PHP significaría que podría ejecutarlo en su servidor existente. No tendría necesidad de moverlos a un servidor habilitado para Django, y no hay tiempo de inactividad para sus correos electrónicos, mientras el DNS se actualiza.

Por otro lado, tengo muy poca experiencia con PHP. Smarty como lenguaje de plantillas se ve bien, y funciona de manera similar a las plantillas de Django. Sin embargo, no ofrece una herencia de plantilla, excepto en una forma muy hackish en la que no deseo utilizarla, ya que podría romper la aplicación si el diseñador lo estropea. ¿Qué piensas? ¡Gracias por adelantado!

+0

Claro, PHP será más fácil de instalar que una aplicación de Python, pero se está abriendo una gran cantidad de gusanos con respecto a las configuraciones del servidor web (Apache, IIS, otros?), Versiones de PHP (PHP4 y PHP5 obsoleto, con errores) que el usuario realmente obtiene el servidor que sirve su PHP. Entonces usted tiene la base de datos ... –

+0

Suena como los mismos problemas que afectan a WordPress ... – GloryFish

+0

No necesita Smarty si está usando CodeIgniter, ¿o sí? Ya separa la vista del controlador. E incluye un mecanismo de almacenamiento en caché. –

Respuesta

4

La implementación es claramente un problema para todas las aplicaciones web que no están basadas en PHP, pero creo que las cosas mejoran con los ISP DreamHost/Engineyard que proporcionan Ruby/Python, etc. de fábrica. También parece que va a haber una gran cantidad de discusiones en PyCon esta semana sobre las formas de solucionar los problemas de implementación. El crecimiento en popularidad de Django, Turbogears y Pylons está impulsando la demanda de mejores soluciones de implementación.

Dicho esto, si su mercado objetivo son las personas que hospedan en el muy bajo $ 12 al año tipo de ISP entonces no creo que tenga otra opción que no sea PHP.

Finalmente, una cosa que no estoy de acuerdo con usted es ejecutar PHP y Django en el mismo servidor. Estoy ejecutando algunas aplicaciones de PHP en mi servidor con Apache y docenas de sitios de Django con mod_wsgi en modo daemon. Ejecutarlo de esa manera significa que el intérprete de Python no usa el RAM en los trabajadores Apache y viceversa, el intérprete PHP no está contaminando mis demonios mod_wsgi :)

+0

Sí, podría ejecutarlos también uno al lado del otro, en webfaction, por ejemplo, pero ese no es el tipo de proveedor de hosting que tendría mi cliente. – Lorenzo

+1

+1 con una nota: es desafortunado que desee ofrecer no solo SaaS, sino también limitar su producto final con las "autoinstalaciones" que posiblemente se vean obstaculizadas. Como mencionó Van Gale, si su mercado objetivo es del tipo * no quiere * una aplicación SaaS, pero también le cuesta tanto instalarla localmente (asumiendo Django), puede verse obligado a pasar el tiempo en PHP. Pero al final, ¿tendrá una base de clientes lo suficientemente grande como para pagar el tiempo adicional que invirtió? ¿Cuál será el rendimiento de la inversión en ese aspecto, teniendo en cuenta que dijo lo fácil que sería para usted hacer que suceda en Django? –

3

Si quieres que tu aplicación sea mainstream, entonces tu casi forzado para ir con PHP. Pasar de Django a PHP es mucho más fácil que ir de PHP a Django. Conoces los estándares, solo necesitas aprender la sintaxis y las funciones de PHP.

Definitivamente usaría un framework de PHP. Symfony y akelos son muy similares a Rails (cerca de Django). Por otro lado, Code Igniter, que hace lo que debería, organiza tu código.

2

Según sus propias conclusiones, me gustaría ir con CodeIgniter. Parece que habría mucho trabajo ayudando a sus clientes a instalar su aplicación web, y supongo que no quiere eso.

Cree una aplicación web fácil de instalar para que pueda concentrar sus esfuerzos en mejorarla y venderla, en lugar de trabajar como administrador de sistemas o escribir extensos tutoriales de instalación.

(Dicho esto, FogBugz no fue fácil de instalar en nuestro servidor Linux, aunque está escrito en PHP. Nos tomó a mí y a mi colega (ambos programadores) más de un día completo de trabajo para instalarlo.Así que creo que siempre habrá problemas con la instalación de aplicaciones web alojadas en el servidor.)

Cuestiones relacionadas