Любое интернет-приложение эпохи WEB2 – это прежде всего «богатый» и функциональный пользовательский интерфейс, выполненный с использованием технологии Ajax, а следовательно, JavaScript. Его создание – довольно непростая, требующая скрупулезности задача, на решение которой тратишь немало време ни – на отладку, обеспечение кроссбраузерной совместимости, борьбу с капризами JavaScript и прочие вещи, мало имеющие общего с разработкой и проектированием реализации бизнес-логики. К счастью, уже создано немало инструментов, облегчающих эту задачу. Фрэймворк Google Web Toolkit пусть и не единственная предназначенная для этого среда, но она уже успела себя зарекомендовать полнофунк циональными, работоспособными RIA-приложениями. Что это? Зачем? На первый вопрос ответить легко – это фрэймворк-среда, набор средств и API-интерфейсов для разработки веб-при ложений. Её отличительная особенность в том, что вся разработка и, что существенно, отладка ведётся на Java с помо щью привычной IDE (сейчас существуют плагины для Eclipce и NetBeans) с последующей компиляцией готового приложе ния в HTML/JavaScript. Собственно, реальность использова ния сред разработки частично является ответом на второй вопрос. Создавать сложное веб-приложение на строго типизированном ООП-языке, с возможностью нормального проектирования в любимой IDE, «человеческой» отладкой, Unit тестированием ещё недавно казалось недостижимой мечтой. Google Web Toolkit во многом является воплощением этой мечты в жизнь.
Процесс отладки приложения здесь гораздо более лёгок и эффективен, так как наиболее распростра нённые ошибки в JavaScript теперь всплывают во время компиляции, а не выполнения, а такие ошибки, как несоот ветствие типов или отсутствие необходимых методов, выяв ляются ещё на стадии написания кода. Подсказки и автодо полнение – нормальный функционал IDE, хоть и не жизненно важный, но довольно существенно повышающий производи тельность, а полноценный рефакторинг (который также те перь доступен) в современных условиях просто необходим. Отдельно следует упомянуть про ООП-разработку. Реализация этой концепции в JavaScript вызывает много спра ведливых нареканий и является причиной неоправданной сложности разработки. В среде GWT вы программируете на Java, и никаких проблем такого рода не возникает.