Batterie incluse
Tooling di Java
È semplicemente fantastico:
- IDE: anche se alcuni IDE supportano JavaScript, il livello di supporto non si confronta. Prova a riformattare il codice JavaScript su basi di codice di grandi dimensioni (diciamo 40K + LOC) e piangi.
- Test unitari: sebbene raccolto negli ultimi anni, è anche molto più maturo nel mondo Java.
- Integrazione continua e ispezione continua
- Generazione della documentazione: Sicuro di avere JSDoc e pochi altri
Static-tipizzazione
Cattura i bug in anticipo. (Google Closure lo risolve un po 'mantenendo lo sviluppatore nel mondo JavaScript, se preferisci).
JavaScript ottimizzato
GWT scrive JavaScript più veloce e compatto di te (per applicazioni di grandi dimensioni) e ti consente di determinare ciò che viene inviato al client probabilmente più facilmente rispetto a soluzioni JS complete equivalenti.
Architettura
Fornisce una buona separazione delle preoccupazioni per le applicazioni di grandi dimensioni, con architetture MVC o MVP decenti già precotte a portata di mano.
Biblioteca decente
GWT fornisce librerie interessanti e semplifica (bene, semplifica) la creazione di applicazioni abilitate per I18N con caricamento dinamico dei bundle.
Unit test
Utilizzo di JUnit da Eclipse IDE e dalla riga di comando. Questo riguarda il mio primo punto. Potresti anche usare alcuni degli strumenti di qualità del codice Java su un progetto GWT (per i controlli del codice sorgente, non per i bytecode, poiché non ce ne sono).
È tutto su di te!!
GWT non è per tutti. Rende alcune persone più produttive e offre un buon strumento per gli sviluppatori non JS per creare app Web professionali con front-end dinamici senza toccare (troppo) JavaScript. Ma se non funziona per te, usa semplicemente qualcos'altro.
Se vuoi la maggior parte di quanto sopra ma semplicemente non vuoi Java, forse guarda Google Closure o Dojo Toolkit .
Era una buona idea al momento: la storia conta !!
Il mondo JavaScript (e le tecnologie web front-end in generale) è estremamente attivo in questi giorni, quindi le cose stanno migliorando. Ma solo qualche anno fa le cose non erano così brillanti. LESS / SASS non erano così popolari, jQuery non era ancora la libreria JS di fabbrica, le librerie JavaScript non venivano generate ogni due settimane e gli strumenti non erano così fantastici in generale.
Ma c'era già una crescente domanda di applicazioni Web professionali e di grandi dimensioni con front-end dinamici, quindi c'era un gap da colmare per rendere gli sviluppatori più produttivi. JavaScript ha molte insidie e stranezze di cui devi essere consapevole, e forse è semplicemente meglio non aver nemmeno bisogno di prendersi cura di loro. Da qui la nicchia per strumenti come GWT.
Da allora ne sono apparsi altri (mi viene in mente CoffeeScript, Dart sta arrivando, ma anche grandi framework JavaScript, la rivoluzione del JS lato server con Node.JS e altri, e un forte ritorno per JavaScript come "abbastanza buono" tutto un linguaggio esteso da utilizzare non solo sul lato client ma anche in altre parti dello stack aziendale.
Note aggiuntive
Per quanto riguarda la tua domanda originale (ora modificata) sull'uso di Firebug
Puoi ovviamente eseguire il debug del codice GWT con Firebug, ma idealmente dovresti eseguirne il debug direttamente dal debugger di IDE Eclipse, che ora fornisce supporto per il debug del codice live.
Tuttavia, Firebug è ancora utilizzabile, anche se è necessario tenere presente che GWT genera JavaScript ottimizzato e compresso, che potrebbe non essere facile da eseguire il debug così com'è.
Per quanto riguarda la tua domanda originale (ora modificata) sui CSS
Sì, ovviamente devi comunque scrivere tu stesso il codice CSS. Abbina il tuo progetto GWT con altri strumenti (come SASS), più o meno facilmente.
È solo uno strumento!
Non confondere GWT con ciò che non lo è: non scrivere il codice Java da eseguire direttamente sul lato client come bytecode Java. Scrivi il codice in linguaggio Java, che viene poi tradotto in JavaScript per efficienza e per permetterti di usare un linguaggio di livello superiore (o, almeno, è così che deve essere visto).
Probabilmente , Java e JavaScript potrebbero essere considerati comparabili in termini di livelli di astrazione. Tuttavia, Java presenta alcuni vantaggi (dettagliati sopra), quindi il vantaggio di raccogliere i benefici degli strumenti esistenti senza la necessità di riscriverli. Gli sviluppatori di Google hanno appena avuto l'idea intelligente di rendere possibile riutilizzare gli strumenti esistenti orientati a Java, ma di sviluppare effettivamente applicazioni JavaScript.
Inoltre, risolvono un altro problema, che era la gestione spesso ingombrante di applicazioni web in due lingue in cui il codice JavaScript e Java venivano trattati separatamente. L'uso di GWT consente un certo livello di convergenza per entrambi i lati del processo di sviluppo.
Ulteriori letture: