Zawiera baterie
Narzędzia Java
To jest po prostu niesamowite:
- IDE: nawet jeśli niektóre IDE obsługują JavaScript, poziom wsparcia po prostu się nie porównuje. Spróbuj refaktoryzować kod JavaScript na dużych bazach kodowych (powiedzmy 40K + LOC) i płacz.
- Testy jednostkowe: chociaż podniosły się one w ciągu ostatnich kilku lat, są też o wiele bardziej dojrzałe w świecie Java.
- Ciągła integracja i ciągła kontrola
- Generowanie dokumentacji: Na pewno masz JSDoc i kilka innych
Pisanie statyczne
Wczesne wykrywanie błędów. (Adres Google Closure podam nieco, utrzymując programistę w świecie JavaScript, jeśli wolisz).
Zoptymalizowany JavaScript
GWT pisze szybszy i bardziej kompaktowy JavaScript niż ty (dla dużych aplikacji) i pozwala określić, co zostanie wysłane do klienta prawdopodobnie łatwiej niż w przypadku równoważnych pełnych rozwiązań JS.
Architektura
Zapewnia dobre rozdzielenie problemów w przypadku dużych aplikacji, z przyzwoitymi architekturami MVC lub MVP już upieczonymi na wyciągnięcie ręki.
Przyzwoita biblioteka
GWT zapewnia interesujące biblioteki i ułatwia (dobrze, łatwiej) tworzenie aplikacji obsługujących I18N z dynamicznym ładowaniem pakietów.
Testów jednostkowych
Korzystanie z JUnit z poziomu środowiska IDE Eclipse iz wiersza polecenia. Odnosi się to do mojej pierwszej kwestii. Równie dobrze możesz użyć niektórych narzędzi jakości kodu Java w projekcie GWT (do sprawdzania źródła, a nie sprawdzania kodu bajtowego, ponieważ nie ma żadnych).
To wszystko o tobie!!
GWT nie jest dla wszystkich. To sprawia, że niektórzy ludzie są bardziej produktywni i daje dobre narzędzie dla programistów spoza JS do tworzenia profesjonalnych aplikacji internetowych z dynamicznymi interfejsami bez dotykania (za dużo) JavaScript. Ale jeśli to nie działa, po prostu użyj czegoś innego.
Jeśli chcesz większość z powyższych, ale po prostu nie chcesz Java, spójrz na Google Closure lub Dojo Toolkit .
Był wtedy dobrym pomysłem: historia ma znaczenie !!
Świat JavaScript (i ogólnie technologie front-endowe w Internecie) są obecnie bardzo aktywne, więc wszystko wygląda dobrze. Ale zaledwie kilka lat temu sprawy nie były tak jasne. LESS / SASS nie były tak popularne, jQuery nie było jeszcze de-fabryczną biblioteką JS, biblioteki JavaScript nie były odradzane co drugi tydzień, a narzędzia wcale nie były takie świetne.
Jednak już teraz rosło zapotrzebowanie na profesjonalne i duże aplikacje internetowe z dynamicznymi interfejsami, więc była luka do wypełnienia, aby zwiększyć produktywność programistów. JavaScript ma wiele pułapek i dziwactw, o których musisz wiedzieć, a może lepiej nie martwić się o nie. Stąd nisza dla narzędzi takich jak GWT.
Od tego czasu pojawiły się inne (przychodzi na myśl CoffeeScript, Dart jest w drodze, ale także duże frameworki JavaScript, rewolucja JS po stronie serwera z Node.JS i innymi oraz silny powrót JavaScript jako „wystarczająco dobrego” wszystkiego -okólny język używany nie tylko po stronie klienta, ale także w innych częściach stosu biznesowego.
Dodatkowe uwagi
W odniesieniu do twojego oryginalnego (teraz edytowanego) pytania o korzystanie z Firebug
Możesz oczywiście debugować kod GWT za pomocą Firebug, ale najlepiej debugować go bezpośrednio z debugera Eclipse IDE, który teraz zapewnia obsługę debugowania kodu na żywo.
Jednak Firebug jest nadal użyteczny, chociaż należy pamiętać, że GWT generuje zoptymalizowany i skompresowany JavaScript, który może nie być łatwy do debugowania w obecnej postaci.
W odniesieniu do twojego oryginalnego (teraz edytowanego) pytania o CSS
Tak, oczywiście nadal musisz sam napisać kod CSS. Łączysz swój projekt GWT z innymi narzędziami (takimi jak SASS), mniej lub bardziej łatwo.
To tylko narzędzie!
Nie myl GWT z tym, czym nie jest: nie piszesz kodu Java, który ma być uruchamiany bezpośrednio po stronie klienta jako bajtowy kod Java. Piszecie kod w języku Java, który jest następnie tłumaczony na JavaScript w celu zwiększenia wydajności i umożliwienia korzystania z języka wyższego poziomu (lub przynajmniej tak to powinno być postrzegane).
Prawdopodobnie Java i JavaScript można uznać za porównywalne pod względem poziomów abstrakcji. Jednak Java ma pewne zalety (wyszczególnione powyżej), stąd korzyść w czerpaniu korzyści z istniejących narzędzi bez konieczności ich ponownego pisania. Programiści Google wpadli na sprytny pomysł, aby umożliwić ponowne wykorzystanie istniejących narzędzi zorientowanych na Javę, ale w efekcie opracowanie aplikacji JavaScript.
Dodatkowo rozwiązują inny problem, którym były często kłopotliwe zarządzanie dwujęzycznymi aplikacjami internetowymi, w których JavaScript i kod Java były traktowane osobno. Zastosowanie GWT pozwala na pewien poziom konwergencji dla obu stron procesu rozwoju.
Dalsza lektura: