Saturday, May 14, 2011

To GWT or not to GWT

Прошло время, когда web-разработка заключалась в обработке HTTP запросов и рендеринге соответсвующей html странички. Сейчас, куда не плюнь, везде требуется Rich UI. У java разработчика есть выбор: либо писать rich ui на javascript'e, либо воспользоватся GWT платформой, и писать на родимой жаве.

В последнее время мне удалось поработать с GWT, итак за и против.

За GWT:

1. Не нужно учить javascript. Если вы гуру и не одну собаку съели педаля на жабе и принципиально не хотите учить javascript, то gwt в самый раз.

2. Все приимущества java. Статическая типизация, IDE, дебаггер, рефакторинги, анализаторы кода -- все к вашим услугам.

3. Один код на сервере и на клиенте. Код написанный для сервера может быть скомпилирован в javascript и работать на клиенте.

4. Google. GWT разрабатывается, не командой волосатых программистов из гаража, а корпорацией google и используется в проектах компании.

5. Кросс-браузерность. Разрабатывая с помощью GWT можно не беспокоится про кросс-браузерность, клиент компилируется в поддерживаемый современными браузерами код.

Против GWT:

1. Java == No fun. Писать на жаве UI неудобно. Количество строк кода в результате -- огромно.

2. Медленно. Скорость разработки на GWT на порядок меньше чем с помощью javascript'a. В большинстве из-за количества кода, которое приходится писать. Скорость работы GWT-овского компилятора уничтожает желание использовать GWT.

3. Отсутсвие подходов к написанию программ с помощью GWT. Best practices и подходы по написанию программ с помощью GWT постоянно меняются. RequestFactory и Activity Framework до сих пор сырые.

1 comment:

  1. По мне так GWT полезен только как чистый клиент. Его интеграция с сервеной стороной мне показалась какой-то мутной. Не, конечно может ребята и руководствовались какими-то хитрыми паттернами и правилами ООП, но на выходе получается какое-то нагромождение классов.

    GWT лучше использовать в рамках Vaadin-а. Там клиентская часть юзает GWT widgetset + хорошо и прозрачно реализована интеграция с сервером. Фактически вам её кодить не надо будет вовсе.

    ReplyDelete