понедельник, 16 апреля 2012 г.

GWT или jQuery ?

Этот вопрос для меня носит cовершенно не теоретический, а вполне практический аспект, потому что на работе я использовал обе технологии, и уже набралось достаточно материала для обобщения. В чем сила GWT ? Cила GWT заключается в том, что вместо JavaScript используется Java, а Java - это компилируемый язык со всеми вытекающими последствиями, то есть возможность проверять код в фазе компиляции, можно безопасно рефакторить код. В чем слабость GWT ? Слабость GWT заключается в том, что время разработки увеличивается, потому что компиляция GWT кода в JavaScript занимает определенное время, и вы уже не можете просто сохранить и отрефрешить страницу в браузере, нужно обязательно дождаться, пока ваш измененный Java код cкомпилится в JavaScript. Вторая особенность GWT - это плохая документация, особенно для библиотек GWT Dispatch и Gin. Третья особенность GWT - ваш Java код распухает в обьеме, это обусловлено тем, что еквивалентный JavaScript всегда будет в 5 раз меньше. Мое субьективное ощущение разработки на GWT: весь день непрервывно стучишь по клавиатуре :). Можно найти намного больше GUI компонентов для jQuery, чем для GWT, потому что базовые GWT компоненты, которые сделал Google, работают всегда, остальные GWT компоненты, которые сделаны другими компаниями, могут глючить в разных браузерах, и обычному человеку очень тяжело, практически невозможно разобраться как работает GWT Java to JavaScript компилятор, если возникнет такая необходимость.

Я пришел к выводу, что использовать GWT оправданно только если ваша web страница уже не web страница, а rich GUI, например, текстовый редактор типа Google Docs, или Gmail, или онлайн редактор изображений, вроде PhotoShop. Хотя я не уверен насчет Gmail, потому что знаю, что есть аналог Gmail, который сделан на ExtJS. Я уверен, что 99 процентов веб сайтов могут обойтись без GWT.

Лично мне намного быстрее и проще писать на jQuery используя JavaScript MVC на клиенте и Spring MVC на сервере.