Batterien enthalten
Java's Tooling
Es ist einfach großartig:
- IDEs: Auch wenn einige IDEs JavaScript unterstützen, ist der Grad der Unterstützung einfach nicht vergleichbar. Versuchen Sie, JavaScript-Code auf großen Codebasen (z. B. 40 KB + LOC) umzugestalten, und weinen Sie.
- Unit-Testing: Obwohl dies in den letzten Jahren zugenommen hat, ist es auch in der Java-Welt viel ausgereifter.
- Kontinuierliche Integration und kontinuierliche Inspektion
- Dokumentationserstellung: Sicher haben Sie JSDoc und einige andere
Statische Typisierung
Es fängt Fehler früh ab. (Google Closure spricht dies ein wenig an, während der Entwickler in der JavaScript-Welt bleibt, wenn Sie dies bevorzugen.)
Optimiertes JavaScript
GWT schreibt schneller und kompakteres JavaScript als Sie (für große Anwendungen) und ermöglicht es Ihnen, festzustellen, was an den Client gesendet wird, wahrscheinlich einfacher als mit gleichwertigen vollständigen JS-Lösungen.
Die Architektur
Es bietet eine gute Trennung von Bedenken für große Anwendungen, da anständige MVC- oder MVP-Architekturen bereits an Ihren Fingerspitzen vorgebacken sind.
Anständige Bibliothek
GWT bietet interessante Bibliotheken und erleichtert das Erstellen von I18N-fähigen Anwendungen mit dynamischem Bundle-Laden.
Unit-Testing
Verwenden von JUnit in der Eclipse-IDE und über die Befehlszeile. Dies bezieht sich auf meinen ersten Punkt. Sie können auch einige der Java-Tools für die Codequalität in einem GWT-Projekt verwenden (für Quellcodeprüfungen, nicht für Bytecodeprüfungen, da keine vorhanden sind).
Es geht nur um dich!!
GWT ist nicht jedermanns Sache. Es macht einige Leute produktiver und bietet ein gutes Tool für Nicht-JS-Entwickler, um professionelle Web-Apps mit dynamischen Frontends zu erstellen, ohne (zu viel) JavaScript zu berühren. Aber wenn es bei Ihnen nicht funktioniert, verwenden Sie einfach etwas anderes.
Wenn Sie das meiste davon möchten, aber kein Java möchten, schauen Sie sich vielleicht Google Closure oder das Dojo Toolkit an .
War damals eine gute Idee: Geschichte ist wichtig !!
Die JavaScript-Welt (und die Web-Front-End-Technologien im Allgemeinen) sind heutzutage äußerst aktiv, daher sieht es gut aus. Aber erst vor ein paar Jahren waren die Dinge nicht so hell. WENIGER / SASS waren nicht so beliebt, jQuery war noch nicht die werkseitige JS-Bibliothek, JavaScript-Bibliotheken wurden nicht alle zwei Wochen erstellt und die Tools waren im Allgemeinen nicht so gut.
Es gab jedoch bereits eine wachsende Nachfrage nach professionellen und großen Webanwendungen mit dynamischen Frontends. Daher musste eine Lücke geschlossen werden, um die Produktivität der Entwickler zu steigern. JavaScript hat eine Menge Fallstricke und Kuriositäten, die Sie beachten müssen, und vielleicht ist es einfach besser, sich nicht einmal darum zu kümmern. Daher die Nische für Tools wie GWT.
Seitdem sind andere erschienen (CoffeeScript fällt mir ein, Dart ist auf dem Weg, aber auch große JavaScript-Frameworks, die Revolution der serverseitigen JS mit Node.JS und anderen und ein starkes Comeback für JavaScript als "gut genug" -Rundsprache, die nicht nur auf der Clientseite, sondern auch in anderen Teilen Ihres Business Stacks verwendet werden kann.
Zusätzliche Bemerkungen
In Bezug auf Ihre ursprüngliche (jetzt bearbeitete) Frage zur Verwendung von Firebug
Sie können GWT-Code natürlich mit Firebug debuggen, aber im Idealfall würden Sie ihn direkt über den Debugger der Eclipse IDE debuggen, der jetzt Unterstützung für das Debuggen von Live-Code bietet.
Firebug ist jedoch weiterhin verwendbar, obwohl Sie berücksichtigen müssen, dass GWT optimiertes und komprimiertes JavaScript generiert, das möglicherweise nicht so einfach zu debuggen ist.
In Bezug auf Ihre ursprüngliche (jetzt bearbeitete) Frage zu CSS
Ja, Sie müssen den CSS-Code natürlich noch selbst schreiben. Sie koppeln Ihr GWT-Projekt jedoch mehr oder weniger einfach mit anderen Tools (wie SASS).
Es ist nur ein Werkzeug!
Verwechseln Sie GWT nicht mit dem, was es nicht ist: Sie schreiben keinen Java-Code, der direkt auf der Clientseite als Java-Bytecode ausgeführt wird. Sie schreiben Code in der Java-Sprache, der dann aus Effizienzgründen in JavaScript übersetzt wird und Ihnen die Verwendung einer höheren Sprache ermöglicht (oder zumindest so gesehen werden soll).
Wohl könnten Java und JavaScript als vergleichbar im Hinblick auf den Abstraktionsebenen betrachtet werden. Java bietet jedoch einige Vorteile (siehe oben), daher der Vorteil, die Vorteile vorhandener Tools zu nutzen, ohne sie neu schreiben zu müssen. Die Entwickler von Google hatten gerade die clevere Idee, vorhandene Java-orientierte Tools wiederzuverwenden, aber tatsächlich JavaScript-Anwendungen zu entwickeln.
Darüber hinaus lösen sie ein weiteres Problem, nämlich die oft umständliche Verwaltung von zweisprachigen Webanwendungen, bei denen JavaScript und Java-Code getrennt behandelt wurden. Die Verwendung von GWT ermöglicht ein gewisses Maß an Konvergenz für beide Seiten des Entwicklungsprozesses.
Weiterführende Literatur: