Правда в том, что у GWT есть и кривая обучения, и, по крайней мере, в то время, когда я на нее смотрел, два года назад, вы мало что делаете с базовыми элементами управления, вам нужны внешние библиотеки, а это означает больше обучения.
После попытки изучения GWT без особого успеха я выбрал веб-сервис плюс jQuery или ExtJS, что также дает очень четкое разделение ролей.Я сел и выучил JavaScript, это было нелегко, но это было гораздо веселее, чем использование GWT.
Что касается совместимости с браузерами, то после использования современной библиотеки их будет очень мало.Мой код работает во всех браузерах без особых проблем, включая IE 6. Кроме того, когда я слишком занят, я пишу только сервисы и выполняю часть интерфейса JavaScript, что повышает производительность.
В любом случае, это довольносубъективно, другой человек, свободно владеющий GWT, может иметь мою противоположную точку зрения.В любом случае я отклоню следующие причины:
- простота отладки .Теперь это не так: очень легко отлаживать JavaScript с помощью FireBug, плюс в JavaScript не будет никакой бизнес-логики, только вызов и отображение сервисов.
- совместимость с браузерами .Помните, что есть несколько причуд, наиболее распространенным является то, что IE не принимает запятые в списках, что в любом случае не входит в стандарт, но Firefox допускает их.Любая современная библиотека JavaScript позаботится о совместимости для вас.
- Скорость .Для начала скажу, что JavaScript очень быстрый для любых разумных вычислений в браузере.Что медленнее, так это манипулирование DOM и все, что связано с сетью, например, вызовы AJAX.Ваша страница будет работать правильно, если вы не допустите ошибок проектирования, таких как вставка слишком большого количества вещей или другие проблемы, которые могут возникнуть при добавлении множества элементов непосредственно в DOM, вместо построения структуры и последующего присоединения всего сразу.
Насколько я могу судить сейчас, единственная веская причина в том, что Я уже знаю Java, я не хочу изучать другой язык .
Что касается вашего комментария о Spring MVC.Я использую Spring MVC и не чувствую боли при перезапуске сервера.Весь смысл Spring в том, что все должно быть легко работать вне контейнера!В контроллерах Spring у меня очень минимальный код, который просто вызывает базовые сервисы.Что мне нужно для юнит-тестирования, так это сервисы.
Контроллеры имеют очень мало кода для тестирования, я мог бы просто вызвать их и проверить их в JUnit, но, по крайней мере, на данный момент, мой подход заключается в том, чтобы сделать простой внешний тест через веб-страницу с вызовами jQuery, которыепроверьте их ответ (это не модульный тест, это интеграционный тест, но я чувствую, что для модульного тестирования контроллера очень мало смысла, если он написан правильно).