JavaScript vs. Google Webtoolkit

Несколько лет назад появился Google Webtoolkit, для меня в тот момент это казалось прорывной технологий. Главная идея была в том чтобы писать код web приложения, или его части, на Java, который потом компилируется в HTML + JavaScript. В чем было преимущество? В том что для java в то время уже была создана очень мощная система поддержки разработки: интеллектуальная среда разработки, средства рефакторинга, юнит тестирование с кучей дополнений, автоматический анализ кода и code coverage, документирование и пр. и пр. Да до сих пор тут нет ей равных. Ну и сам язык, с понятным синтаксисом, типизированный (в данном случае это было плюсом) и пр.

А вот в JavaScript тогда не было ничего. FireBug только появлялся, jQuery не было. Отладка была лишь за счет alert'ов. Серьезный процесс разработки на этом не построишь.

В GWT тоже было куча минусов, результат компиляции был довольно массивным, и HTML представлял собой десятки вложенных друг в друга таблиц. Но тем не менее.

А в прошлом году происходил какой-то фантастический рост использования JavaScript. Появились тысячи библиотек. Благодаря jQuery код писать становится на порядок проще, появились средства разработки (IDEA стала ничуть не хуже работать с HTML/JavaScript/CSS), firebug вырос, и пр. Теперь все совсем наоборот, разработка на JavaScript стала гораздо проще чем на GWT, разрабатывать действительно быстрее и результат получается качественней. Есть, конечно, еще куча вещей которые нужно сделать, но уже вполне неплохо. И как минимум позволило ему стать лидером прошлого года, помимо возросшей востребованности.

Я в данном случае не эксперт, но похоже как-то так. А вы что скажете? Вырос ли javascript до уровня серьезной разработки? Какие полезные инструменты порекомендуете? И в каких случаях есть смысл использовать gwt?

  • http:// Sergey Kiselev

    (разработка на gwt) => (html + js + css), (разработка на js) => (js), то есть при использовании gwt снижается оверхед на написание html и css. Потому gwt проще, хотя и не устраняет все проблемы совместимости между браузерами. Зато у js подхода можно создавать более гибкие и настраиваемые решения. В общем все зависит «от».

    По мне так надо отходить от модели (html + js + css), ну или по крайней мере от стандартов в этой области (для разработки бизнес приложений). То есть пусть у каждого будет свой (html + js + css), и свой api со своим взглядом на мир.

    А ребята которые пишут бизнес приложения на (html + js + css) лишь огребают себе лишние проблемы. Порой проще поставить всем определенный браузер чем платить за совместимость. Возможно гугл уже копает в этом направлении со своими: gwt, chrome browser и chrome os.

    Конечно надо без фанатизма и простые информационные сайты должны быть сделаны в рамках почти поддерживаемых всеми стандартов. Хотя где грань между бизнес приложением и информационным сайтом?

    p/s

    Нужны ли все эти красивости бизнесу? Вот ЖД билеты до сих пор продаются при помощи страшной досовой программы (визуально) в которой все делается быстрыми кнопками (или спец командами). Бизнес работать должен, а не красотой нечеловеческой любоваться!

  • http:// jusio

    GWT удобен тем что там достаточно просто разделять код под разные браузеры. Собственно мне в нём больше всего нравится сам компилятор. А стандартные компоненты и библиотеки там кошмарны, в основе всё приходилось переписывать, ибо не могло оно достаточно быстро работать в IE6. У меня мнение такое, если UI сильно сложное (какой-нибудь дизайнер процессов, сильно замороченная консоль управления), то лучше GWT ибо код проще удерживать в нормальном состоянии. При условие что стандартные компоненты будут использоваться минимально=)

  • http:// Andrew Fink

    Очень советую прочитать серию статей от

    gaperton.livejournal.com

    (у него в блоге микс, нужно найти посвященные js)

    Вот некоторые (прочитайте все, первые агрессивны, потом констуктив):

    gaperton.livejournal.com/51646.html

    gaperton.livejournal.com/55360.html

    gaperton.livejournal.com/55094.html

    gaperton.livejournal.com/54357.html

    gaperton.livejournal.com/53003.html

    gaperton.livejournal.com/52812.html

    gaperton.livejournal.com/52616.html

    gaperton.livejournal.com/52077.html

    Краткие выводы:

    — с помощью IDEA js реально править и дебажить

    — все модные библиотеки тормозят

    — при внимательном рассмотрении библиотек всё не так радужно

    Очень интересно потом услышать ваше мнение.

    PS: лично мне кажется, что GWT и/или Vaadin для больших приложений правильное решение.

    Если в Java провели легкую косметику

    magicprinc.blogspot.com/2010/12/java-ng.html

    особенно предлагаемые ^ замыкания, то всех конкурентов-девиаторов замкнуло 🙂

  • http:// gaperton

    > Вот некоторые (прочитайте все, первые агрессивны, потом констуктив)

    Первые не менее конструктивны, чем последние. Иметь «любимый язык», критика которого воспринимается лично, недостойно профессионала, ибо он должен знать с десяток разных языков, а не только два-три «любимых».

    Ибо от того, что я придал человеческий вид include-у, использовав «монадический» трюк а-ля Хаскель и LINQ, и предложил прямолинейный способ писать на нем гуй, JS как язык говном быть не перестал. Ни на один из тезисов первых постов это не повлияло — с чего бы он перестал-то?

    К примеру, эти мои замечательные include-ы замечательно ломают немощные попытки мегатулов вроде IDEA выводить типы. Все выводильщики типов работают только тогда, когда глобальный scope засоряется определениями, что является плохой практикой.

  • http:// kilonet

    мне gwt напоминает wpf в том плане что использовать ее может только разработавшая ее компания (gmail и visual studio 2010 соответственно). Обычно эти продукты ставятся в пример того что технологии работают, хотя «простые смертыне» пишут по старинке на js+css или на winforms, и результат при этом получается и быстрее и лучше.

    gwt мне кажется очень громоздкой и неповоротливой надстройкой над xhtml, css и js, которая якобы должна позволить писать чсито на джаве, однако в офицальном helloworld приложении (которое не отличается простотой и лаконичностью) уже пристуствеут формирование строк разметки в java коде, в реальных проектах подозреваю такого будет еще больше. То есть как ни крути от js и css gwt не спасёт.

    gwt как мне кажется создавался для java разрботчиков чтобы позволить им без освоения новых технологий делать web интерфейсы, т. е. изначально сама его идея ущербна и я бы не стал тратить на него время, благо для js и css сейчас очень много мощных библиотек и инструментов.

    а вообще, очень хорошая статья про orm, gwt и прочие «волшебные» технологии: The Law of Leaky Abstractions