У меня такая же потребность: оценка SmartGWT и Vaadin для приложения RIA, размещенного на GAE.
Сравнивая их до сих пор, я думаю, SmartGWT действительно быстрее и богаче, потому что вся логика графического интерфейса пользователя скомпилирована в javascript и очень лениво запрашивает на стороне сервера, только если клиенту нужны новые данные, которые былине загружается в браузер раньше + некоторые гибкие вещи для кеширования и так далее.И богаче, поскольку SmartGWT поставляет больше виджетов.
Но вы должны реализовать все компоненты на стороне сервера самостоятельно (или купить лицензию), это является основным недостатком, поскольку вам необходимо переопределить их проприетарные протоколы DataSource, на которых основано большинство графических элементов привязки данных.
Еще один недостаток - загрузка первой страницы занимает много времени, так как есть много статических ресурсов и скомпилированного JavaScript-материала.
Vaadin использует совершенно противоположный способ - вы пишете все своибизнес-код на стороне сервера с полнофункциональной java и составление вашего GUI из предопределенных элементов (с уже скомпилированным для них javascript).
Основное отличие состоит в том, что он генерирует GUI и обрабатывает большинство событий браузера на стороне сервера.!Таким образом, любое действие в браузере, которое изменяет состояние графического интерфейса, например нажатие на ячейку сетки, кнопку или вкладку, генерирует специальный запрос на стороне сервера и получает такой ответ:
for(;;);[{"changes":[["change",{"format": "uidl","pid": "PID168"},["14",{"id": "PID168","width": "100.0%"},"Selected: [AS]"]]], "meta" : {}, "resources" : {}, "locales":[]}]
, который указывает, каким должен быть графический интерфейсобновлено.Таким образом, Vaadin предоставляет вам полную поддержку Java для вашей логики графического интерфейса, но вы платите за это, обрабатывая все события графического интерфейса на стороне сервера.
Таким образом, я думаю, Vaadin больше подходит для интранета и требует меньше времени для разработки вашего приложения, тогда как SmartGWT лучше для более сложных графических интерфейсов или нестабильных соединений, где дополнительные обходы имеют значение .
ps для GAE Я бы выбрал SmartGWT, поскольку GAE имеет ограничения с номером запроса к серверу, пропускной способностью и т. д.