Come per tutte le domande di questo tipo, la risposta è "dipende". I fattori da considerare includono quanto sei comodo con la lingua / struttura e quali caratteristiche richiede il progetto. Detto questo, ho costruito siti utilizzando una serie di framework, ciascuno con i suoi punti di forza e di debolezza:
Grails
Se ho bisogno di ottenere rapidamente un sito per qualsiasi professionista , 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 (senza preoccuparsi di URL, patch DB, qualsiasi cosa), iterazione molto rapida (basta aggiornare la pagina), integrazione Java perfetta (una buona cosa nel mondo degli affari) e alcuni meravigliosi plugin (ad esempio Stracciabile è una cosa di bellezza). Il lato 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 eseguito. Sul lato positivo, ha una community 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 trovare hosting (specialmente per progetti personali); sul lato negativo, la gestione delle dipendenze / setup fa schifo (ho usato RubyGems su Windows, Ubuntu, Fedora e OSX e ho incontrato problemi non banali su ognuna), c'è leggermente più configurazione / overhead di Grails (in particolare, si occupa di routes.rb e tonnellate di file di migrazione db) e, a quanto pare, RoR ha alcuni problemi di scalabilità.
PHP (incluso il framework CakePHP)
Se ho bisogno di hackerare velocemente qualcosa o costruire un sito per usi personali , probabilmente andrei con PHP. PHP è di gran lunga il linguaggio più semplice da apprendere e implementare: scarica qualsiasi pacchetto LAMP conveniente, fai clic su un paio di volte e inizia a fare hacking. La community è più grande di quella di RoR, quindi la documentazione è abbondante e ci sono innumerevoli plugin (facilmente "installati" semplicemente inserendo il file php e aggiornando la pagina). Il linguaggio è semplice da imparare, ma alcune cose in PHP sono semplicemente strane e ci vuole molta disciplina per evitare il brutto codice. Il framework CakePHP impone un bel paradigma MVC per mantenere le cose ordinate, e per la maggior parte è alla pari con RoR, anche se personalmente l'ho trovato leggermente meno intuitivo.
Java (servlet, JSPs, JSTL, struts, Velocity)
Ho costruito molti siti usando le tecnologie di servlet Java, e posso dire onestamente che non ci sono buone ragioni per sceglierli per qualsiasi nuovo sito al giorno d'oggi. Hanno una curva di apprendimento ripida, tonnellate di configurazione con cui combattere (XML inferno), iterazione lenta a causa della necessità di ridistribuire tutto il tempo (a meno che non si usi JRebel), codice prolisso e nessun "freebies" in termini di funzionalità. Ho giocato con il Play! Framework e Spring Roo un po 'e entrambi stanno facendo cose molto interessanti con codice Java "puro" più o meno e vale la pena esaminare ulteriormente.