На эти вопросы нет простых ответов:
Я пытаюсь сказать, почему мы должны использовать
GWT, а не другой рамки ?? Какие
есть ли в GWT, что делает его особенным
для разработки веб-приложений ?? Какие
GWT делает для нас и еще один каркас
или инструментарий не делают ??
Серебряной пули нет. Все зависит от проекта и требований. GWT может быть хорошим в одном проекте, а другие структуры могут быть хорошими в других проектах. Это также зависит от того, какие другие рамки принимаются во внимание.
По моему мнению, наиболее существенный элемент, который отличает GWT от почти всех других веб-фреймворков Java, заключается в том, что клиентская сторона полностью на JavaScript, а большинство других фреймворков обычно генерируют простой HTML-код. Подход JavaScript к клиенту имеет свои преимущества, например:
- это полностью AJAX, который создает отличный пользовательский опыт,
- состояние просмотра управляется в браузере,
- асинхронно связывается с сервером;
- он связывается с сервером только для получения данных
Однако есть и некоторые недостатки:
- Поддержка истории браузера - это не так хорошо, как в основанных на HTML фреймворках; Правильное использование механизма истории не просто и требует дополнительных усилий от разработчиков;
- приложения не оптимизированы для SEO;
- более сложные макеты страниц могут убить веб-браузеры - иногда создание страницы занимает много времени, особенно при использовании дополнительных библиотек компонентов;
Для разработчиков очень важно, чтобы GWT скрывал от них JS. Вы пишете на Java, и вы получаете полностью работающее клиентское приложение на основе AJAX на JS, обычно не затрагивая ни одной строки JS. Это здорово, особенно когда вам нужно много AJAX в вашем приложении, и вы не знаете JS. Это специфично для GWT - использование JS и AJAX в других средах обычно не так просто (Vaadin может быть исключением, но оно основано на GWT).
Стоит отметить, что во многих случаях GWT можно комбинировать с другими веб-инфраструктурами - таким образом, вы можете создать большую часть содержимого вашего приложения в рамках на основе HTML и некоторые более сложные части AJAX в GWT.