Все еще GWT уместно для новых проектов?

вопрос почему я должен использовать jQuery вместо GWT? может быть устаревшим (как его ответы). И большинство of на другие связанные с этим вопросы также могут быть устаревшими в настоящее время. Итак, давайте обновим современное состояние о релевантности GWT для новых проектов.

GWT является более зрелым в настоящее время

С 2009 вопросы / ответы, GWT эволюционировали и некоторые рамки JS доступны в Java:

  • GwtQuery для jQuery (gQuery)
  • GXT для ExtJS (бывший ExtGWT)
  • Smart GWT заменяет GWT-ext
  • ... и, конечно, больше ... (пожалуйста, не стесняйтесь добавлять)

и даже больше, код Java может быть преобразован в автономные библиотеки JS: gwt-экспортер

но низкоуровневые рамки JS могут быть достаточно

но больше я читаю, больше я вижу веб-разработчиков, советующих повернуться спиной к GWT и использовать непосредственно фреймворки JS (Палий, Плагины IDE для фреймворков JS...).

производительность

однако мне нравится идея разработки и отладки с использованием той же IDE (Eclipse, Netbeans, IntelliJ IDEA...). Я!--55-->думаю я буду более продуктивным... Я также должен подумать о документации и сообществе (форум реактивность как для этого так вопрос)...

вопросы

  1. для какого нового проекта 2014 GWT следует (или нет) рассматривать?
  2. есть соответствующую альтернативы GWT для легкой разработки и развертывания веб-приложений AJAX?
  3. что текущий режим и тренд?

мой конкретный случай

Я только что завершил POC (из интрасети app) на основе Python3 (http.server.HTTPServer) вызов (должность) bash скрипты (некоторая обработка на C++) и получение данных JSON. Некоторые JS (без фреймворка) на веб-странице для рендеринга. Поэтому мне интересно, лучший вариант для следующей итерации.

но, пожалуйста, ответьте на этот вопрос и о других случаях тоже. Я бы предпочел, чтобы общий вопрос / ответ был полезен многим другим людям.


обновление октябрь 2015

GWT выглядит менее активным, потому что нет новых выпуск с 11 месяца. Но в прошлом пока 13 месяцев между версиями 2.4 и 2.5. The Git репозитория зеркало по-прежнему очень активный. Кроме того, GWT является расширяемым, и новые функции могут поступать из библиотек GWT, не требуя нового выпуска GWT framework. См., например,наиболее распространенные мобильные библиотеки GWT и там соответствующие циклы выпуска. В то же время тенденция заключается в использовании Node.js везде! Принятие GWT для новых проектов действительно зависит от навыки разработчиков / мотивация и срок службы проекта (оборот/обучение/обслуживание). Могут быть также приняты во внимание некоторые другие критерии, такие как повторное использование имеющегося исходного кода и время выхода на рынок... См. отличные ответы ниже.

5 ответов


для пункта 1 я могу дать вам некоторые критерии, которые я бы использовал:

при использовании фреймворков на основе JavaScript вы обычно очень быстро создаете исходный код. По моему опыту, вы намного медленнее, когда дело доходит до обслуживания (исправления ошибок, новые функции, рефакторинги), поскольку поддержка инструментов не так хороша, как для статически типизированных языков. Поэтому для больших или длительных проектов я всегда выбирал GWT из-за Java, и это проверки компилятора/экосистемы/инструментария. Я думаю, вы выиграете от повышения эффективности и масштабирования в разработке с течением времени, поскольку у вас не будет странных проблем из-за динамического ввода. Для небольших проектов, которые не будут жить слишком долго или не будут нуждаться в больших рефакторингах, JavaScript-фреймворки могут быть большим толчком в скорости разработки.

потребности отладки в контексте вашей целевой платформы также являются критериями для меня. Отладка кода GWT очень приятна, если у вас есть браузер, который поддерживается DevMode или, по крайней мере, может использоваться с новый источник карты на основе SuperDevMode. Например. Safari на MacOS X не поддерживается. Для мобильных устройств вы можете удаленно отлаживать JavaScript на Android Chrome, но, насколько я знаю, это невозможно для GWT.

еще одним критерием для меня является размер команды и скорость оборота. Инструменты на основе Java (IDE, проверки качества кода,...) помощь разработчикам, особенно новым, для навигации по коду других разработчиков. Это также верно для других языков статических типов, но вы попросили УГВ/Ява.

следующий вопрос стека ... GWT легко решает клиентскую и удаленную часть связи, если используется контейнер сервлета на стороне сервера. Также легко совместить его со зрелыми технологиями Java enterprise (JPA ,EJB, Spring framework,...). Это большая сила, если вам нужно/хотите иметь стек. Если вы собираетесь полиглот без JVM на стороне сервера (Как упоминалось выше), это не для вас.

конечно, есть больше критериев для обоих, Рамки GWT и JavaScript.

и большой вопрос о предпочтениях. JavaScript имеет очень хорошие концепции (например, закрытие), но также является риском из-за его динамического ввода. Какой ты предпочитаешь?

относительно пункта 2:

Я не уверен, есть ли реальная альтернатива для GWT, которая предоставляет аналогичные функции и инструменты. Большинство других фреймворков фокусируются только на одном аспекте (виджеты, оптимизация, привязка данных, удаленная связь, поддержка браузера, I18n, ...). Это не означает, что другие фреймворки плохи, но вам обычно нужна комбинация разных фреймворков, чтобы получить функциональность, которую предоставляет GWT.

относительно пункта 3:

  • я бы определенно посмотрел на TypeScript из-за его улучшенной типизации и совместимости с JavaScript
  • насколько я помню, у Dart есть аналогичная цель
  • вечнозеленый-JQuery, но в зависимости от ваших потребностей есть хорошие альтернативы. Но это очень субъективно
  • для виджетов, Twitter Bootstrap (http://getbootstrap.com/) приятно, если это способ сделать что-то хорошо для вас. Существует даже версия GWT (http://gwtbootstrap.github.io/)

отличный ответ от Steffen. Я начал печатать его как комментарий к нему, но обнаружил, что набрал больше, чем ожидал, так что это был отдельный ответ. Не охота за очками...

Я просто хотел добавить 1 субъективный момент. Реальность такова, что большинство разработчиков являются так называемыми бэкенд-разработчиками без знаний, опыта и, самое главное, желания развивать веб-интерфейс. Реальность ИТ-рынка США заключается в том, что большинство предпочло бы Java в своем резюме JS, PHP, Python и другие экзотические языки. Причина-компенсация. Java-разработчикам в среднем платят больше. Не уверен насчет других стран.

таким образом, большинство разработчиков в компании будут разработчиками Java (или .NET, который находится вне этого разговора). Чтобы заставить их работать на UI, вы должны использовать технологию, совместимую с Java, которая была бы JSP или GWT. JSP потребуется изучить библиотеки JS, чтобы сделать интерфейс более или менее презентабельным.

очевидно, если вы хотите impress public с уникальным пользовательским интерфейсом вы должны использовать библиотеки JS, которые позволяют большую настройку. И JSP, и GWT будут работать, поскольку большая часть работы будет выполнена в JS. Как я уже упоминал выше, немногие компании испытали бы разработчиков JS в штате.

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

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

в этом случае вы можете уйти с GWT, который менее иностранен для разработчиков Java, чем jQuery и библиотека высокого уровня, такая как GXT со стандартной темой.

GWT с GXT для нас был простым и быстрым способом создания набора внутренних приложений. С командой разработчиков Java наша компания имеет, мы никогда бы приблизьтесь к качеству или даже полноте проектов в течение того же периода времени.


просто башку: GWTs пример страницы демонстрации реальных примеров приложений GWT

просто прочитайте о сверхтяжелом весе этих примеров.

GWT сам по себе не такой легкий вес, и я сомневаюсь, что он был разработан для создания datepicker. GWT-это нечто совершенно иное, чем jQuery. Это, возможно, более сопоставимо с JSF2, чем с jQuery. На вопрос "Должен ли я использовать GWT или jQuery" можно ответить так:

Если вы хотите добавить datepickers, некоторые эффекты, сортируемую таблицу, автозаполнение здесь и там. Вероятно, вам стоит пойти с jQuery.

Если вы хотите выяснить, хотите ли вы использовать GWT в качестве механизма шаблона / движка интерфейса, вы должны рассмотреть другие, которые фактически сопоставимы. При обсуждении java, вероятно, JSF2-ваш единственный выбор. И кривая обучения JSF крутая.

я копаю глубже, и я нашел грустный сообщение:

http://polygoncell.blogspot.mx/2013/07/gwt-for-new-project-no-thanks.html

Я пришел на эту страницу, потому что я читал о предстоящих проектах, таких как AngularJS, Backbone, single page applications (SPA): Короче говоря, google сбросил GWT. GWT теперь с открытым исходным кодом, потому что они просто отказались от него. Теперь AngularJS получает большой толчок от google.

редактировать наш дорогой Андрей велел мне "доказать свою точку зрения"

здесь алгоритм, используемый для оценки конкурентоспособности техники.

1) Перейдите на свой любимый сайт работы

2) Поиск {технологии, которая вас интересует} работа

3) проверите вне количество отверстий, родственного требования к технологии ЕТК

4) Повторите #2 & #3 для конкурентоспособных технологий

5) оценить

сегодня 19. май 2016, на upwork я искал GWT рабочих мест.

вакансии: 23.

Я искал angularjs рабочих мест.

вакансии: 1338. Вот именно. тысяча триста тридцать восемь.

точка проверенная?


Я думаю, чтобы ответить на пункт 1, вам нужно посмотреть, какова ваша текущая ситуация и каковы ваши цели.

Если у вас есть команда разработчиков, которые использовали Java большую часть своей карьеры, вы, вероятно, можете ожидать хорошего 6 месяцев для них, чтобы узнать парадигмы JavaScript. Если у вас есть опыт в таких языках, как Groovy или Clojure, вы, вероятно, могли бы сократить это время. Итак, если вы не ожидаете, что проект продлится более года или около того, то GWT будет наверное, так будет лучше.

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

Я не совсем уверен, что пункт 2 спрашивает. Если вы спрашиваете о целых фреймворках стека, я предполагаю, что вы можете найти что-то с помощью nodejs, хотя я не думаю, что у меня достаточно опыта, чтобы посоветовать что.

в пункте 3, где я работаю, мы, похоже, движемся к использованию фреймворков JS (в частности, AngularJS) с некоторыми (новыми) серверами/службами, написанными на Python и Groovy, а устаревшие системы все еще в Java. У нас также есть несколько услуг, написанных на Clojure.


GWT уместно. Он имеет 130 000 разработчиков, использующих его. Если вы мне не верите, просто посмотрите на [GWT возвращается .. в 2015 году] [blog.xam.de/2014/02/gwt-is-coming-back-in-2015.html] и еще один вопрос stackexchange, который говорит об этом. GWT не должен быть первым вариантом, потому что он добавляет много сложности.

для каких проектов хороши GWT? GWT намного сложнее:

  • Java-более сложный язык, который затрудняет запись плохой код
  • компиляция в javaScript добавляет сложность
  • GWT был построен с нуля для чрезвычайно сложных веб-приложений
  • сообщество GWT имеет тенденцию приоритизировать пользовательский опыт и производительность над опытом разработчика больше, чем сообщество javaScript
на Это чище более обслуживаемый код, это java, это быстрее, и вы можете повторно использовать свой код на jvm и ios, Если вы используете J2ObjC

есть некоторые очень веские причины использовать GWT - Java
- повторное использование собственного кода с других платформ. Например, Google inbox повторно использует большую часть своего кода android в интернете с помощью GWT и повторно использует его на iPhone(спасибо J2ObjC) и сервере(спасибо способности JVM работать на многих разных платформах). - используйте библиотеки и инструменты java, разработчики java - многие разработчики предпочитают java js и имеют веские причины предпочесть его - встроенный с нуля для сложных, высокопроизводительных веб-приложений. - Java-код чище и более ремонтопригоден

GWT идет вниз согласно Google Тренды и действительно тенденции работы но javaScript и jQuery также снижаются. Я не знаю, почему все эти технологии идут вниз. Моя теория заключается в том, что есть много новых фреймворков, которые крадут разработчиков из GWT и javaScript. Я не думаю, что это обязательно означает, что тем не менее, javaScript и GWT умирают. Это не что иное, как результат гораздо большей конкуренции.