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!
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 ... –
Suena como los mismos problemas que afectan a WordPress ... – GloryFish
No necesita Smarty si está usando CodeIgniter, ¿o sí? Ya separa la vista del controlador. E incluye un mecanismo de almacenamiento en caché. –