poniedziałek, kwietnia 21, 2014

Może mi ktoś wytłumaczyć po co istnieją GWT i GWTP?

Od pół roku piszę w GWT/GWTP....

Zakładam, że coś robię fundamentalnie źle, bo nie chce mi się wierzyć by te frameworki były tak złe.

O co chodzi?

O to, że jak dla mnie GWT/GWTP niczego nie ułatwiają.

W miarę zrozumiały, choć nie idealny model HTML/JavaScript zastępują jakimś o wiele bardziej skomplikowanym.
W miarę znane elementy HTMLa zastępuje własnymi abstrakcjami.
Do tego zaś robią rzecz, której w ogóle nie rozumiem, czyli generują różnego HTMLa i JavaScripta dla różnych przeglądarek.

Gdy chcemy to stylować to stylujemy w CSSie, ale musimy wiedzieć na co zostaną przetłumaczone poszczególne elementy UI by móc cokolwiek zastylować. Co oznacza tyle, że musimy wiedzieć, że np. ten Button będzie zmapowany na <button>, a ten inny na <div>.
Coś co przez dodanie abstrakcji miało sprawę ułatwić ją komplikuje.

Dość oczywiste w aplikacjach webowych ficzery, jak to by strona w momencie ładowania przychodziła z jakimiś danymi jest niewykonalne i trzeba hackować przez użycie "natywnego" kodu i dobudować servlet, albo chociaż użyć JSP.

Do tego jest problem koncepcyjny polegający na tym, że po stronie klienta @Inject działa w miarę ładnie bo zwykle wszystko co tak wstrzykujemy jest jedno, ale po stronie serwera już tak nie jest.

Do tego GWT.create() przeszkadza w UnitTestach.

Na koniec zaś model pamięci w trybie DEBUG i Release są różne, bo ten Debugowy działa w Java'ie, a ten drugi jest przekodowywany do JavaScripta. Stąd czasem kod działa w Release a wywala się w Debugu ;-)

Gdzie są te zalety? Gdzie ta szybkość tworzenia kodu? Gdzie wygoda?

Jedynym powodem poza tym, że czegoś muszę nie dostrzegać może być to, że ja używam GWT/GWTP do bardzo malutkich rzeczy, które bez dużego problemu można by było zakodować w mniejszej ilości kodu z lepszym efektem używając nawet JSP i JavaScriptu.

Próbowałem "Agile pokera" napisać w GWT/GWTP, niby proste,  ale już mam 280 linii kodu w Java'ie w 12 klasach, z których sam napisałem około 40 linii i 1 klasę. Do tego dochodzi blisko 50 linii HTMLa (wygenerowanego głównie), do tego 52 linie XMLa z czego napisałem 18.
Nie ma jeszcze stylowania.

Cały "program" w JavaScript'cie i HTMLu to 72 linie, plus jakieś 5-6 w pliku manifestu. Wersja JavaScript'owa potrafi reagować na zmiany orientacji ekranu, wylicza optymalny rozmiar tekstu który ma pokazać,  działa off-line.

Gdzie nauczyć się GWT/GWTP tak by pisanie w nich było prostsze od pisania w JavaScript'cie i JSP?


Podobne postybeta
Rant po toolach w stylu Mavane, Gradle, Bowera i całej tej hałastry
Robimy krzywdę GWT ;-) czyli przekazujemy wartość z serwera do klienta, bez RPC ;-)
Code review - najfajniejszy kawałek procesu ;-)
ToDo od Trello jako "oddzielna aplikacja"
Najkrótsza droga do przyszłości - Polymer ;-)