¿Cuáles son los factores que se deben tener en cuenta al elegir un marco de aplicación web para un inicio lean?

Esta es una pregunta cercana y querida para mi corazón, después de haber desarrollado aplicaciones web en J2EE, Django y Rails. Mi respuesta tiene que ver con cuatro factores:

  1. ¿Es gratis? Si no, ¿cuáles son los costos de licencia asociados con él, incluidos los recursos del sistema, el sistema operativo, el servidor web (y / o el contenedor de servlet), a las bibliotecas (como los beans de red)
  2. ¿Tiene una comunidad activa? ¿Encontraré bibliotecas (autorizadas o no) que proporcionen lo que necesito y, de no ser así, ¿qué tan fácil es crearme?
  3. Flexibilidad: ¿puedo transferir mi solución a cualquier lugar fácilmente?
  4. ¿Encontraré otros desarrolladores que conozcan este marco si quiero agregar más desarrolladores a mi equipo?
  5. Escalabilidad: ¿este proyecto requerirá una escala inmensa?

Hay ventajas y desventajas de cada uno de los idiomas anteriores con respecto a lo que he enumerado:

  • Toda la yegua fácilmente portátil
  • Todos ellos tienen un montón de bibliotecas (aunque Rails parece tener las bibliotecas desarrolladas más activamente, y Django después de eso, seguido de J2EE)
  • J2EE es altamente escalable, donde Rails, y Django especialmente, se quedan cortos en esos puntos sin algunas modificaciones y combinación de tecnologías.
  • J2EE requiere un contenedor de servlets y un servidor web (con mayor frecuencia), lo que hace que la configuración sea un poco más difícil, y si desea frijoles netos, deberá pagar una tarifa de licencia para algo como JBoss o WebSphere
  • Rails y Django ven muchos desarrolladores, pero Rails es probablemente más popular (definitivamente más genial) hoy

Mi preferencia personal es Rails en estos días, ya que es increíblemente elegante, bien desarrollado, fácil de transportar y puede escalar utilizando la combinación correcta de tecnologías.