LINUX.ORG.RU
ФорумTalks

GWT - зло, абаснуй!


0

1

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

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

Итак что нам известно (наяндексовано):

  • убогость концепции java->js: Возможно, самый спорный аспект GWT-архитектуры - преобразование языка Java в код клиента. Некоторые GWT-сторонники говорят, что написание кода клиента на языке Java по сути предпочтительнее, чем написание кода на JavaScript. Это вовсе не всесторонний взгляд на проблему, и несколько JavaScript-разработчиков могли бы с большой неохотой пожертвовать гибкостью и выразительностью их языка ради временами обременительных заданий по разработке на языке Java. Единственная ситуация, в которой замещение JavaScript на Java-код было бы привлекательным, - в команде, в которой не хватает опытных Web-разработчиков. Однако, если эта команда будет двигаться в сторону Ajax- разработок, для нее будет лучше, если нанимать опытных JavaScript-программистов, а не полагаться на Java-программистов для производства JavaScript. Ошибки, вызываемые недостатками знания более высокого уровня абстракции GWT, нежели чем JavaScript, HTTP и HTML, неизбежны, и неопытные Web-программисты потратят много усилий и времени, искореняя их. Как разработчик и блоггер Дмитрий Глазков замечает в этом случае: «Если вы не можете работать с JavaScript, вам не следует писать код для Web-приложений. HTML, CSS и JavaScript - три необходимых условия для этого.» (см. Ресурсы).
  • GWT тяжело интегрируется с другими продуктами (Spring, Acegi). Интеграцию сложно выполнить без нарушения стандартного цикла разработки под GWT, что может привести к несовместимости с будущими версиями GWT (нужно это учитывать)
  • тладка GWT приложения выполняется через GWT-консоль. Отладка в GWT-консоли – это обычный анализ логов. То есть, Вам придется забыть про всю мощь отладчика среды разработки
  • Интернационализация - также большая проблема для GWT. Поскольку Java-классы GWT-клиента запускаются в браузере, они могут не иметь доступа к возможностям или к узлам источников, чтобы взять находящиеся там строки кода во время выполнения.
  • К сожалению, иногда абстракции недостаточно: в моей проверке действительности ZIP-кода, к примеру, мне захотелось использовать стандартные выражения, чтобы выполнить проверку. Однако, GWT не может выполнить метод String.match(). Даже если бы он мог, стандартные выражения в GWT имеют свои синтаксические отличия применения кода на сервере или кода клиента. Всё это происходит потому, что GWT при работе полагается на лежащий в основе regexp- механизм среды выполнения, и это пример проблемы, которая делает несовершенными ваши абстракции.
  • Однако, GWT-панель инструментов представлена только в бинарной форме, и модификации ее не разрешены. Это верно и для компилятора Java-кода в JavaScript, и обратно, что обозначает, что любые ошибки в вашем сгенерированном JavaScript-коде неконтролируемы. Особая проблема взаимодействия пользователя и GWT-разработчиков: каждая версия нового браузера требует обновления GWT-средств, чтобы обеспечить поддержку.

Кто работал с GWT что скажете плохого об этом поделии?

★★☆

Ответ на: комментарий от ZveN

Пиаркомпания преподносит это как преимущество

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

wfrr ★★☆
() автор топика
Ответ на: комментарий от ZveN

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

wfrr ★★☆
() автор топика
Ответ на: комментарий от Amp

при исполнении этого гумна в интернет эксплодере или сферическом режиме отладки в виде swing гомлета?

wfrr ★★☆
() автор топика

JavaScript — «мусорный язык». Зачем из нормальной еды (Java) делать отходы (JavaScript)?

Web-контент — используются только HTMLv4 и CSSv2(v3). Динамический контент — используются плагины на стороне браузера. Больше ничего не нужно. Надёжность и безошибочность — в простоте.

iZEN ★★★★★
()
Ответ на: комментарий от wfrr

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

эта команда гребет кучу бабла. и кто же неправ, они (гребущие кучу бабла) или ты (гойворящий что они неправы)? =)

isden ★★★★★
()
Ответ на: комментарий от isden

косяк в том что если метанировать с твоей точки зрения, то я тоже хочу бабла, так что бобро на моей стороне

wfrr ★★☆
() автор топика
Ответ на: комментарий от wfrr

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

Плюсую! Но хоть я на жабе долго сидел, но с GWT не работал, со SWING работал.

Siado ★★★★★
()
Ответ на: комментарий от wfrr

NetBeans нормальная? Не смеши. Она начала портиться с версии 5.5.1. Дальше — только хуже. Напридумывали каких-то абстрактных идиотских вещей на XML, когда только и делаешь, что смотришь в быдло-XML, а не в нормальный человеческий Java2, на котором, собственно, должна вестись разработка.
Вот так один нормальный язык подменили мусорными языками, которые сейчас неинтересно даже изучать, но скрипя зубами приходится.
Уроды, блин!

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

>Динамический контент — используются плагины на стороне браузера. Больше ничего не нужно. Надёжность и безошибочность — в простоте.

Это ты так про всякие флешы и сильверлайты утончил?

Siado ★★★★★
()

как на английском задать запрос «недостатки gwt»? ибо «gwt lacks» выдает мелкие баги и косячки, а нужны косяки архитектуры

wfrr ★★☆
() автор топика
Ответ на: комментарий от iZEN

Ты шо такое говоришь, в XML там не надо смотреть. А вот ништяковое автодопиливание кода в нетбинсе очень кстати

Siado ★★★★★
()

GWT не нужен. Пользуйтесь амазоном

JFreeM ★★★☆
()
Ответ на: комментарий от Siado

> Это ты так про всякие флешы и сильверлайты утончил?

Нет, не только. Я говорю о всевозможных динамических примочках, которые РЕШАЮТСЯ плагинами к браузерам.

Они ж, изобретя генерилку AJAX вкупе ЯП->JavaScript кучу интересных технологий динамического контента уничтожили — горизонтальный рынок, работающий благодаря дополнениям (плагинам) к браузерам. Это — ДЕСЯТИЛЕТИЕ топтания на месте вокруг быдло-XML и СКРИПТОВОГО_ИНТЕРПРЕТИРУЕМОГО_ЯЗЫКА, который всё ускоряют и ускоряют, когда ДАВНО есть нормальные и безопасные компилируемые языки программирования, программы на которых могут выполнятся на стороне клиента практически без нагрузки на CPU.

iZEN ★★★★★
()
Ответ на: комментарий от wfrr

Мерзкого свинга там не было. Была отладка в hosted mode и т.н. «Hosted Web Browser» с мозиллой где-то в потрохах и SWT-шной мордой. Правда в последних релизах последний куда-то бесследно пропал. Не разбирался особо..

Amp ★★★
()
Ответ на: комментарий от wfrr

>как на английском задать запрос «недостатки gwt»?

gwt sucks?

Siado ★★★★★
()
Ответ на: комментарий от iZEN

>Нет, не только. Я говорю о всевозможных динамических примочках, которые РЕШАЮТСЯ плагинами к браузерам.

Что бы потом плодить кучу несовместимостей и вендор-локинг?

Siado ★★★★★
()
Ответ на: комментарий от iZEN

>когда ДАВНО есть нормальные и безопасные компилируемые языки программирования

Спасибо, скриптовых падлюка-кодов и так достаточно. Ненароком с этой компилируемой байдой и вирусня кросс-платформенная появится.

Siado ★★★★★
()
Ответ на: комментарий от Siado

Что бы потом плодить кучу несовместимостей и вендор-локинг?

Не без этого, но зато не один vendor-lockin.

iZEN ★★★★★
()
Ответ на: комментарий от Siado

Ненароком с этой компилируемой байдой и вирусня кросс-платформенная появится.

А виртуализация на что?

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

>Не без этого, но зато не один vendor-lockin.

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

Siado ★★★★★
()
Ответ на: комментарий от iZEN

>А виртуализация на что?

Конечно что бы делать лишние костыли для всяких плагинов ;)

Siado ★★★★★
()
Ответ на: комментарий от Syncro

Смотрел. Кроме неповоротливости и огромного отношения файлов «быдло-XML/Java» ничего нового не заметил.

iZEN ★★★★★
()
Ответ на: комментарий от wfrr

>докажи что он не говно

А я и не говорю что «он не гавно». Я на нем когда то хеловорлдов парочку слепил и отложил всторонку. ИМХО, для моих говнозадач оно было слишком громоздко.

Просто, слушая твои метанации (может и оправданные) по поводу говяности ГВТ так и хочется услышать а что же тогда не гавно?

У тебя же наверняка есть за пазухой припрятанный настоящий тру фреймворк, который решает тупо все, вот и интересно узнать так что же это такое?

Mrxrrr
()
Ответ на: комментарий от Mrxrrr

А я и не говорю что «он не гавно».

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

wfrr ★★☆
() автор топика
Ответ на: комментарий от iZEN

Бинарные блобы не нужны в вебе.

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

vga ★★
()
Ответ на: комментарий от wfrr

>Раз ты не планируешь конструктивного разговора, то gwt-говно,

Почему же не планирую? Еще как планирую. Больше всего мне хочется узнать твое мнение по поводу хоть одной вменяемой альтернативы. Хотя что-то мне подсказывает, что кроме голого жабоскрипта у тебя все окажется гамном. По большей степени оно то так конечно и есть. Я вот сколько не сталкивался со всякими говнастыми ЮИ, Прототипами, ЖеКверями - так идеального нет ничего. В своем свои плюсы и минусы.

Тогда уже будь обьективным - и признай что «АБСОЛЮТНО ВСЕ ГАВНО». А серебрянных пуль не существует.

И если у парней в проекте ГВТ решает те задачи, которые решает - то оно себя оправдывает.

Mrxrrr
()

В GWT дизайн рисуется дизайнерами или кодеры лепят?

//GWT не юзал, не в курсе, если кодеры - то минус, они вам налепят.

vga ★★
()
Ответ на: комментарий от wfrr

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

Разрешения оформляются с помощью DRM, проверяются системной PKI на основе информации, собранной в системной KeyStore. Пользователь должен иметь полный контроль над собственным KeyStore, настраивать PKI политиками использования привелегий для определённого DRM-контента или неподписанного контента на свой страх и риск. Это в некотором роде программная виртуализация может быть поддержана на аппаратном уровне низкоуровневыми средстсвами ускорения проверки и исполнения (не)безопасного кода.

iZEN ★★★★★
()
Ответ на: комментарий от wfrr

Можно еще по запросу : gwt limitations пройтись. Вон че выдает:

http://discuss.joelonsoftware.com/default.asp?biz.5.589476.11

Current weaknesses:
- Lack of Java 1.5 syntax support - this is annoying as I have a Java 1.5 backend and a java 1.4 frontend. However this is meant to be added in the next version.
- I am also using hibernate at the backend but because of the (understandable) limitations in GWT I cannot use my hibernate objects on the frontend which is a pity as I have to broker everthing.
- It could really do with some sort of forms framework which is completely lacking.
Dan
31 января 2008 г. 

Правда год 2008 )

Siado ★★★★★
()

>ущербный язык Java

Вы просто не умеете уго готовить (с)

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

На сегодняшний день, ятаксчитаю, нету ничего более вменяемого чем Жаба для глобального и надежного мейнстрима.

Mrxrrr
()
Ответ на: комментарий от Mrxrrr

>На сегодняшний день, ятаксчитаю, нету ничего более вменяемого чем Жаба для глобального и надежного мейнстрима.

Надежность да, но скорость и толстота подводит.
Да и Qt4 заменяет добрую долю жабы.

Siado ★★★★★
()
Ответ на: комментарий от vga

например вставка флеша в страницу

package com.vaadin.demo.sampler.features.embedded;

import com.vaadin.terminal.ExternalResource;
import com.vaadin.ui.Embedded;
import com.vaadin.ui.VerticalLayout;

@SuppressWarnings("serial")
public class FlashEmbedExample extends VerticalLayout {

    public FlashEmbedExample() {
        Embedded e = new Embedded(null, new ExternalResource(
                "http://www.youtube.com/v/meXvxkn1Y_8&hl=en_US&fs=1&"));
        e.setMimeType("application/x-shockwave-flash");
        e.setWidth("320px");
        e.setHeight("265px");
        addComponent(e);
    }
}

это ли не канонический писец 8)

wfrr ★★☆
() автор топика
Ответ на: комментарий от wfrr

>например вставка флеша в страницу

А кто мешает флешь статикой в страничке пробить? Или ты всю разметку с картинками собрался геветёй подтягивать?

Mrxrrr
()
Ответ на: комментарий от Siado

хибернейт у нас не юзают, ибо объемы данных такие что оверхед слишком большой выходил бы.

wfrr ★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.