Аккумуляторы включены
Инструменты Java
Это просто потрясающе
- IDE: даже если некоторые IDE поддерживают JavaScript, уровень поддержки просто не сравнивается. Попробуйте рефакторировать код JavaScript на больших кодовых базах (скажем, 40K + LOC) и плакать.
- Модульное тестирование: хотя оно и выросло за последние несколько лет, оно также более зрелое в мире Java.
- Непрерывная интеграция и постоянный контроль
- Генерация документации: Конечно, у вас есть JSDoc и несколько других
Static-типирование
Это ловит ошибки рано. (Google Closure адрес, который немного, сохраняя разработчика в мире JavaScript, если вы предпочитаете).
Оптимизированный JavaScript
GWT пишет быстрее и более компактный JavaScript, чем вы (для больших приложений), и позволяет вам определить, что отправляется клиенту, вероятно, легче, чем с эквивалентными полными решениями JS.
Архитектура
Это обеспечивает хорошее разделение проблем для больших приложений, с приличными архитектурами MVC или MVP, уже предварительно выпеченными у вас под рукой.
Достойная библиотека
GWT предоставляет интересные библиотеки и позволяет легко (ну, проще) создавать приложения с поддержкой I18N с динамической загрузкой пакетов.
Unit-тестирование
Использование JUnit из Eclipse IDE и из командной строки. Это относится к моему первому пункту. Вы также можете использовать некоторые инструменты качества кода Java в проекте GWT (для проверок исходного кода, а не проверок байт-кода, поскольку их нет).
Это все о вас!!
GWT не для всех. Это делает некоторых людей более продуктивными и дает хороший инструмент для разработчиков, не являющихся JS, для создания профессиональных веб-приложений с динамическими интерфейсами, не затрагивая (слишком много) JavaScript. Но если это не работает для вас, просто используйте что-то еще.
Если вам нужно большинство из вышеперечисленного, но вы просто не хотите Java, возможно, посмотрите на Google Closure или Dojo Toolkit .
Была хорошая идея в то время: история имеет значение !!
Мир JavaScript (и веб-интерфейсные технологии в целом) в наши дни чрезвычайно активен, так что ситуация улучшается. Но всего несколько лет назад все было не так ярко. LESS / SASS не были так популярны, jQuery еще не был де-фабричной JS-библиотекой, JavaScript-библиотеки не появлялись раз в две недели, и инструменты в целом не были такими уж хорошими.
Но уже был растущий спрос на профессиональные и большие веб-приложения с динамическими интерфейсами, поэтому необходимо было заполнить пробел, чтобы сделать разработчиков более продуктивными. В JavaScript очень много подводных камней и странностей, о которых вам нужно знать, и, возможно, лучше даже не заботиться о них. Отсюда ниша для таких инструментов, как GWT.
С тех пор появились другие (CoffeeScript приходит на ум, Dart уже в пути, но также и большие JavaScript-фреймворки, революция на стороне сервера JS с Node.JS и др., И сильный возврат к JavaScript как к «достаточно хорошему») -рациональный язык, который будет использоваться не только на стороне клиента, но и в других частях вашего бизнес-стека.
Дополнительные замечания
Относительно вашего оригинального (сейчас отредактированного) вопроса об использовании Firebug
Конечно, вы можете отлаживать код GWT с помощью Firebug, но в идеале вы должны отлаживать его непосредственно из отладчика Eclipse IDE, который теперь обеспечивает поддержку отладки живого кода.
Тем не менее, Firebug по-прежнему пригоден для использования, хотя следует помнить, что GWT генерирует оптимизированный и сжатый JavaScript, который может быть нелегко отладить, как есть.
Относительно вашего оригинального (сейчас отредактированного) вопроса о CSS
Да, конечно, вам все еще нужно написать CSS-код. Вы соединяете свой проект GWT с другими инструментами (например, SASS), более или менее легко.
Это просто инструмент!
Не путайте GWT с тем, что это не так: вы не пишете код Java, который будет запускаться непосредственно на стороне клиента, как байт-код Java. Вы пишете код на языке Java, который затем транслируется в JavaScript для повышения эффективности и позволяет использовать язык высокого уровня (или, по крайней мере, это то , как это означало быть видно).
Можно утверждать , что Java и JavaScript можно рассматривать как сопоставимые с точки зрения уровней абстракции. Тем не менее, Java имеет некоторые преимущества (подробно описано выше), следовательно, преимущество в том, чтобы пожинать преимущества существующих инструментов без необходимости переписывать их. У разработчиков Google просто была умная идея сделать возможным повторное использование существующих Java-ориентированных инструментов, но в действительности разрабатывать приложения JavaScript.
Кроме того, они решают еще одну проблему, которая часто затрудняла управление веб-приложениями на двух языках, где JavaScript и код Java обрабатывались отдельно. Использование GWT обеспечивает определенный уровень конвергенции для обеих сторон процесса разработки.
Дальнейшее чтение: