Creando una startup desde cero. Parte 2 - Lenguaje de programación, Frameworks y CMS
Aquí estamos, con nuestra innovadora idea y nuestro recién registrado dominio. Estamos preparados para afrontar las primeras especificaciones técnicas. La primera pregunta es : ¿Qué lenguaje de programación debo utilizar? PHP, Java, Ruby, Perl...
Escoge tu lenguaje de programación
Hay tres preguntas a las que debes responder de forma sincera( by @JoeStump ):
- Puedes encontrar desarrolladores?
- Está ampliamente soportado?
- Te hace feliz?
Olvídate de cuestiones de rendimiento (PHP no es escalable, ni Ruby, ni PERL...) porque los lenguajes de programación no son escalables. No importa que hagas tu código un 300% más rápido ya que no es ahí donde se encuentran los cuellos de botella. En lugar de perder el tiempo descubriendo cual es el mejor lenguaje de programación existente mejor dedica tu valioso tiempo a pensar en cual de ellos va a hacerte la vida más fácil. Yo escojo PHP, y no estoy diciendo que sea mejor o más rápido, sencillamente es el lenguaje en el que he estado programando desde que empecé a trabajar. Además, podéis encontrar multitud de recursos en la red para llegar a dominar PHP.
No reinventes la rueda
Llegados a este punto recomiendo un poco de investigación. Puedo implementar mi idea en alguna tecnología ya desarrollada? Puedo utilizar un CMS para mi proyecto? Deberías considerar la opción de aprovechar la potencia de un CMS existente y modificarlo según tus necesidades antes que entrar a desarrollar todo el código desde cero. Un CMS (Content Management System) es una aplicación utilizada para crear, editar, organizar, buscar y publicar diversos tipos de contenidos digitales. Algunos de los menores CMS de código libre son :
- Silverstripe (PHP, MySQL)
- Joomla!(PHP, MySQL)
- Drupal (PHP, MySQL)
- Plone (Python, MySQL)
- Alfresco (Java, MySQL)
- Wordpress(PHP, MySQL)
- OpenCMS (Java, MySQL)
- Mambo (PHP, MySQL)
- Typo3 (PHP, MySQL)
- e107 (PHP, MySQL)
- Liferay (Java)
- DotNetNuke (.NET)
- MODx (PHP, MySQL)
- XOOPS (PHP, MySQL)
Permiten personalizaciones mediante plugins y con pocas modificaciones puedes tener tu sitio web funcionando en un abrir y cerrar de ojos.
Mi aplicación es demasiado complicada! Los CMS no me sirven
Dependiendo de las necesidades de tu aplicación es posible que un CMS no sea la mejor solución. Ha llegado la hora de escoger un entorno de programación ( framework). Un framework es una abstracción en la cual un código común provee una funcionalidad genérica que puede ser sobreescrita de forma selectiva o especializada mediante código de usuario para proveer de una funcionalidad específica (bonita definición por cierto). Para que nos entendamos es una base de código sobre la que montar la aplicación, dicha base nos provee de funcionalidades genéricas para lidiar con los típico problema que un sitio web debe afrontar. Algunas características importantes a tener en cuenta son:
- MVC (Modelo-Vista-Controlador)
- Uso de Plantillas
- Caché
- Seguridad
- Capa de abstracción de base de datos
- Acceso al sistema de ficheros
- Validación de frmularios
- CMS interno
- Sistema de autorización de usuarios
Frameworks PHP Conocidos ( via One2 )
Otros Frameworks:
Como puedes comprobar siempre intento utilizar alguna tecnología ya existente (son más robustas, con menos errores, tienes una comunidad a la que acudir en busca de ayuda y reducen significativamente el tiempo de desarrollo)
Aquí puedes encontrar una lista completa de Framworks
Fuentes : 15 Open Source Content Management Systems, Choosing a Framework



Comentarios sobre Creando una startup desde cero. Parte 2 - Lenguaje de programación, Frameworks y CMS
Un Framework php5 mvc y template con ejemplo de proyecto.
Sludos
Enhorabuena por este post. Me ha hecho pensar... Me ha gustado la parte en la que afirmas que, el lenguaje de programación, no es el cuello de botella.
Gracias por el post.