Como con todas las preguntas de este tipo, la respuesta es "depende". Los factores a considerar incluyen qué tan cómodo se siente con el lenguaje / marco y qué características requiere el proyecto. Dicho esto, he creado sitios utilizando una serie de marcos, cada uno con sus propias fortalezas y debilidades:
Griales
Si necesito crear un sitio rápidamente para cualquier profesional , Grails probablemente sea mi primera opción. GORM es, de lejos, el ORM más simple e intuitivo que he probado, el paradigma MVC está muy bien ejecutado, hay 0 configuraciones para comenzar a codificar (no te preocupes por URL, parches de DB, nada), iteración muy rápida (solo actualiza la página), la integración perfecta de Java (algo bueno en el mundo de los negocios) y algunos complementos maravillosos (por ejemplo, la función de búsqueda es algo maravilloso ). El mayor inconveniente es que el alojamiento puede ser difícil de encontrar (y costoso).
Ruby on Rails
Mi experiencia con RoR es muy similar a la de Grails: MVC bien ejecutado. En el lado positivo, tiene una comunidad más grande, por lo que los recursos en línea (documentación, preguntas frecuentes, ejemplos de código, etc.) son muy abundantes, hay TONELADAS de complementos, Ruby es un poco más flexible / expresivo / "funky", y es mucho más fácil de encontrar alojamiento (especialmente para proyectos personales); en el lado negativo, la gestión / configuración de dependencias apesta (he usado RubyGems en Windows, Ubuntu, Fedora y OSX y me encontré con problemas no triviales en cada uno), hay un poco más de configuración / sobrecarga que Grails (en particular, que trata con rutas.rb y toneladas de archivos de migración db), y aparentemente, RoR tiene algunos problemas serios de escalabilidad.
PHP (incluido el marco CakePHP)
Si necesito hackear algo rápidamente o construir un sitio para uso personal , entonces probablemente usaría PHP. PHP es, con mucho, el lenguaje más fácil de aprender e implementar: descargue cualquiera de los convenientes paquetes de LAMP, haga clic un par de veces y comience a piratear. La comunidad es más grande que la de RoR, por lo que la documentación es abundante y hay innumerables complementos (fácilmente "instalados" simplemente colocando el archivo php y actualizando la página). El lenguaje es simple de aprender, pero algunas cosas en PHP son francamente extrañas y se necesita mucha disciplina para evitar el código feo. El marco CakePHP aplica un buen paradigma MVC para ayudar a mantener las cosas ordenadas, y en su mayor parte está a la par con RoR, aunque personalmente lo encontré un poco menos intuitivo.
Java (servlets, JSP, JSTL, struts, Velocity)
He creado muchos sitios utilizando las tecnologías de servlet de Java, y honestamente puedo decir que no hay una buena razón para elegirlos para ningún sitio nuevo hoy en día. Tienen una curva de aprendizaje empinada, toneladas de configuración para luchar (infierno XML), iteración lenta debido a la necesidad de volver a implementar cosas todo el tiempo (a menos que use JRebel), código detallado y no hay "regalos" en términos de funcionalidad. ¡He jugado con Play! Framework y Spring Roo un poco y ambos están haciendo cosas muy interesantes con un código Java más o menos "puro" y vale la pena seguir investigando.