Google Web ToolkitGoogle Web Toolkit Intro

Доброго времени суток! Сегодня я начну рассказ о замечательном тулките — GWT.

Google Web Toolkit это средство для создания rich internet application. Их поведение будет очень похоже на десктопные приложения, но средой исполнения будет браузер. Построение пользовательского интерфеса не похоже на обычное для webа и больше похоже на создание десктоп приложения.
В основе GWT лежит компилятор, который переводит java-код в java-script + html + xml в этом и состоит главное преимущество этого тулкита — браузеру не требуются никакие плагины (в отличие от апплетов, javafx-скриптов, flash/flex или silverlight). Так как пишется весь код на чистой java (по желанию конечно можно использовать native java-script код), то он имеет всю мощь огромного набора java библиотек, которые вы можете использовать. Но вот тут встречается первый минус. На клиентской стороне вы можете использовать только некоторыми основными библиотеками (java.lang java.utils etc) другие же приведут к ошибке компиляции. Но на серверной стороне вас никто ничем не ограничивает.
Часть 1 Установка
Чтобы установить можно пойти двумя путями. Первый это скачать последнюю стабильную версию gwt, распаковать ее в нужную вам директорию, и далее создать проект, и приложение встроенной утилитой webAppCreator (ранее было две утилиты projectCreator и applicationCreator, теперь же они объединены в одну). Далее нужно импортировать созданный проект в эклипс и можно начинать работу.

Но есть путь гораздо проще достаточно подключить репозиторий:

eclipse galileo — dl.google.com/eclipse/plugin/3.5

eclipse ganymede — dl.google.com/eclipse/plugin/3.4

eclipse europa — dl.google.com/eclipse/plugin/3.3

в меню eclipse install software и установить нужный плагин. Дальше создаем новый web project и получаем удовольствие. Этот путь на мой взгляд предпочтительнее, потому что версия gwt всегда последняя (если включен autoupdate в eclipse), но по-умолчанию это проект будет использовать Google App Engine, но его легко отключить в свойствах нового проекта.

Чтобы подключить полезную библиотеку готовых виджетов(продуманных, удобных и более красивых :) ) можно использовать библиотеки extjs. Полюбоваться ими можно в демонстрации. Там же можно скачать библиотеку и найти иснтрукцию по установке, это абсолютно банально.

С завтрашнего дня я буду рассматривать ключевые моменты один за дургим. Построение самих интерфейсов процесс банальный и понятный, самое проблематичное и интересное это взаимодействие с серверной частью.

Полезные ссылки:

gwt tutorial

google app engine

extjs.com

ibm tutorials

Комментарии (7)

Я ведь верно понимаю, что это js, ajax и хитрзадые манипуляции с dom на странице в браузере?
Это кендец. Они кодят окошечки с кнопочками, менюшечками и иконочками. Выглядящие, как полноценные виндовские контролы. Средствами браузера, блин.
Что дальше? Закодим рендерер веб-страниц и скриптовый движок внутри сайтика? Чтобы можно было браузер в браузере сделать, лол?
В НФ-литературе встречается идея о всяких информационных полях. Типа, когда разумная раса накапливала достаточно материи с низким значением энтропии, к ней приходил пибольшой полярный лис. Или там идеи про лимит количества разумных единиц в ограниченном объёме.
Мне очень хочется, чтобы существовал эдакий незримый предел избыточности кода, эдакий предел оверхеда по функциональности. Чтобы всем идиотам само мироздание надавало по башке.
Путь IT-развития человечества вырождается в хер пойми что. Или уже его достиг.
Я всё.
эко ж Вас разразило)
Я ведь верно понимаю, что это js, ajax и хитрзадые манипуляции с dom на странице в браузере?

Да все так, вы верно понимаете.
Не понимаю вашей глобальной нити рассуждения. Зачем же браузер в браузере? Что это такое вообще?=)
Просто попытка все вынести в веб в конечном итоге весь функционал операционной системы. А реализуют теми средствами какие сейчас есть. Ничего плохого в этом я не вижу. К тому же js гораздо лучше и логичнее чем многие популярные сейчас технологии а-ля flash/flex, тот же javaFx.
А если вы или кто-то ещё придумает что-то иное более правильное и логичное все с радостью начнут использовать.
А вообще этот коммент у меня родил ассоциацию, нафиг поезда и самолеты, я вот в НФ-литературе читал про телепорты…
Простите если я что-то не понял)
> К тому же js гораздо лучше и логичнее чем многие популярные сейчас технологии а-ля flash/flex, тот же javaFx.
+100500

> Просто попытка все вынести в веб в конечном итоге весь функционал операционной системы.
Соль в том, что в такого рода системах слишком много слоёв абстракции, вот и всё, что я хотел сказать этой питательной копипастой.

>К тому же js гораздо лучше и логичнее чем многие популярные сейчас технологии а-ля flash/flex, тот же javaFx.

А мне наоборот кажется. На мой взгляд JavaScript + HTML изначально задумывался как добавление интерактивности к веб-данным, но никак не для написания сложных программ.
Конечно, за врямя своего существования люди приспособились и написали замечательные библиотеки. Но вот именно подход GWT мне не очень нравится. Цель как раз отойти от JavaScript и заменить его на более строгий Java. Тот же flash развивается и перенесен почти на все платформы, с# и silverlight замечательная вещь (пока не хватает кросплатформенности, но intel и mono возможно решат это).

А так код всегда виден, java script исполняется дольше, чем тот же .net байт-код, для каждого браузера свой сгенерированый код. Конечно сейчас это как-то работает, но ИМХО тупиковый путь.
Тот же flash развивается и перенесен почти на все платформы, с# и silverlight замечательная вещь (пока не хватает кросплатформенности, но intel и mono возможно решат это).

а что у js какие-то проблемы с кроссплатформенностью?
java script исполняется дольше, чем тот же .net байт-код

вот на эту тему я думаю можно будет поспорить на самом деле. Далеко не факт что .net будет быстрее, к тому же его проблемы с переносимостью (как вы сказали intel и mono можеть быть, когда-нибудь и решат эти проблемы, но не в обозримом будущем), а тот же java байт-код, не отличается скоростью.
а что у js какие-то проблемы с кроссплатформенностью?

Да почему же, теоретически(!) у него хорошая кросплатформенность, требуется лишь наличие браузера. А вот практически все тоже не так прекрасно. Взять хотя бы текущую не полную совместимость браузеров даже на десктопе (хотя дело движется). Те кроме проприетарного момента JS + html не более переносим чем тот же, flash, silverlight или java — всем нужно нечто для исполнения, все можно сделать кроссплатформенным.

как вы сказали intel и mono можеть быть, когда-нибудь и решат эти проблемы, но не в обозримом будущем

Насчет обозримого будущего. То же можно сказать про стандарт html5 скажем, может быть его примут в обозримом будущем. А до этих пор он не более, чем инициатива отдельных компаний и корпораций.

Ну и самое главное. Если кому GWT помогает, то отлично. Но сам подход похоже создан от безысходности. Зачем мне, скажем, писать программу на с++, чтобы она транслировалась в ruby. Когда с++ скомпилированная программа намного быстрее и я все равно пишу на с++. Байт-код виртуальные машины такие как jvm и .net изначально позволяют писать код на удобном языке. Просто Sun как-то перестал заниматься улучшением и развитием встраиваемых апплетов(второй заход javafx) и его от туда вытеснил тот же flash, ну а microsoft просто многие не любят, а ведь подход правильный!
Не любят я так понимаю тут GWT и вообще js, ну буду больше писать))
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.