понедельник, 7 февраля 2011 г.

Новые ощущения с GWT и GAE

Недавно ради интереса попробовал сделать welcome-page совместно с GWT. Вот это чудо.

Заметил некоторые неудобства в такого рода программинге.
Ну во-первых, стандартного Flash виджета там не оказалось.
Во-вторых, далеко не все классы java можно использовать в GWT. Скажем, Class.forName использовать не удастся (хотя казалось бы что проще?). Так же обнаружилось невозможным использовать UUID. Ну и т.д. Всё что лежит в client package преобразуется в js. И по каким-то причинам замены этим классам предоставлено не было. Конечно вы можете их использовать через rpc, но для меня это плохая идея.
На сервере тоже ограничений достаточно. Разрешенные классы перечислены здесь (GAE).
Удовольствие от написания js совместно с gwt чето очень маленькое. Скажем, если вы передаете через js данные одного типа, а в gwt через jsni принимаюся немного другого, то автокастинга не произойдет. И даже ошибки никакой не вывалится. Просто в sysout вы получите пустые данные. Если скажем, вам хочется посмотреть средствами GWT (без jsni) наличие какого-то поля или метода объекта, то вот такие строки вам ничего не дадут:

Element jso = ...;
if (jso.getPropertyBoolean("myFunction"))
{
....
}
if (jso.getAttribute("myFunction"))
{
....
}
if (jso.getPropertyJSO("myFunction"))
{
....
}

Декларативную вёрстку не пробовал. Это еще один уровень "абстракции" от HTML. Думаю там тоже могут найтись свои проблемосы. Но с другой стороны возможно оно сэкономило бы время.
Смысл GWT, как я его понимаю, в том чтобы не думая о браузерной совместимости писать rich сайты. А на деле выходит так что, на js внешность, скорей всего, было бы быстрее написать, хотя бы потому, что он не строго типизированный.
Из удобств конечно нужно отметить GWT Developing Plugin и Google Plugin для Eclipse.

Комментариев нет:

Отправить комментарий