Come per tutte le domande di questo tipo, la risposta è "dipende". I fattori da considerare includono quanto ti senti a tuo agio con il linguaggio / quadro e quali caratteristiche richiede il progetto. Detto questo, ho creato siti utilizzando una serie di framework, ognuno con i suoi punti di forza e di debolezza:
Grails
Se avessi bisogno di creare un sito rapidamente per qualsiasi cosa professionale , Grails sarebbe probabilmente la mia prima scelta. GORM è di gran lunga l'ORM più semplice e intuitivo che ho provato, il paradigma MVC è molto ben eseguito, c'è 0 configurazione per iniziare la codifica (nessuna preoccupazione per URL, patch DB, niente), iterazione molto rapida (basta aggiornare pagina), perfetta integrazione Java (una buona cosa nel mondo degli affari), e alcuni meravigliosi plugin (ad esempio ricercabile è una cosa di bellezza). L'aspetto negativo più grande è che l'hosting può essere difficile da trovare (e costoso).
Ruby on Rails
La mia esperienza con RoR è molto simile a quella di Grails: MVC ben eseguita. Sul lato positivo, ha una comunità più grande, quindi le risorse online (documentazione, FAQ, esempi di codice, ecc.) Sono molto abbondanti, ci sono tonnellate di plugin, Ruby è un po 'più flessibile / espressivo / "funky", ed è molto più facile da trovare hosting (specialmente per progetti personali); sul lato negativo, la gestione / installazione delle dipendenze fa schifo (ho usato RubyGems su Windows, Ubuntu, Fedora e OSX e ho riscontrato problemi non banali su ognuno), c'è leggermente più configurazione / sovraccarico di Grails (in particolare, gestire rotte.rb e tonnellate di file di migrazione db) e, a quanto pare, il RoR presenta alcuni seri problemi di scalabilità.
PHP (incluso il framework CakePHP)
Se ho bisogno di hackerare rapidamente qualcosa o costruire un sito per usi personali , probabilmente andrei con PHP. PHP è di gran lunga la lingua più semplice da imparare e distribuire: scarica uno dei convenienti pacchetti LAMP disponibili, fai clic un paio di volte e inizia a hackerare. La community è più grande di quella del RoR, quindi la documentazione è abbondante e ci sono innumerevoli plugin (facilmente "installati" semplicemente inserendo il file php e aggiornando la pagina). La lingua è semplice da imparare, ma alcune cose in PHP sono semplicemente strane e ci vuole molta disciplina per evitare brutti codici. Il framework CakePHP applica un bel paradigma MVC per aiutare a mantenere le cose ordinate, e per la maggior parte è alla pari con RoR, anche se personalmente l'ho trovato leggermente più poco intuitivo.
Java (servlet, JSP, JSTL, puntoni, Velocity)
Ho creato molti siti utilizzando le tecnologie servlet Java e posso onestamente dire che non c'è motivo di sceglierli per un nuovo sito al giorno d'oggi. Hanno una curva di apprendimento ripida, tonnellate di configurazione con cui combattere (inferno XML), iterazione lenta a causa della necessità di ridistribuire tutto il materiale (a meno che non si usi JRebel), codice dettagliato e nessun "omaggio" in termini di funzionalità. Ho giocato con Play! Framework e Spring Roo un po 'ed entrambi stanno facendo cose molto interessanti con codice Java più o meno "puro" e vale la pena approfondire ulteriormente.