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 что скажете плохого об этом поделии?

★★☆

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

Похоже на копипасту, гуголь за нее много даст.

Про закон дырявых абстракций найдешь сам тем более что для амозгликов я ссылался на него еще в топике.

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

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

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

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


Ну, java это всего лишь портабельный ассемблер, если бы она изначально была нормальной aka scala или там, C#, то и костыли xml не встраивали бы в разработку. Но увы, жаба слишком низкоуровневая и недекларативная, вот декларативность-то через xml и пытались резализовать

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

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

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

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

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

Йохохо... Смотри не лопни, деточка!

Эллочка людоедочка, вы да на лоре?

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

>Да скриншот IE, а лучше оперы в которой отлаживается сие поделие.

вне hosted mode - никак, понятное дело. В Hosted Mode и так используется IE под виндой

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


я уже дал ссылку на сорцы

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

Клиенты меняются, а логика базостроения остается. Браузер как клиент уже умирает - ему на смену приходят rss, im (xmpp/irc/icq), появляются богатые медиа-среды вроде Flash, где с 10 версии уже доступно 3D с шейдерами, причем реализуемое на уровне GPU и всякие другие гугловейвы со своими протоколами.

А ничего, что Java3D в браузере в виде апплетов и на десктопе в виде приложений уже как лет десять доступно и работает прямо через DirectX на Windows и через OpenGL на Unix и Windows?

Пока набиозники спали, в Java давно уже изобрели 3D-модели, которые сейчас только придумывают на Flash 10 и что-то там пытаются реализовать. И всё ещё не удаётся им уменьшить нагрузку на CPU хотя бы до 50%. Я в 1999 году запускал демки Java3D с Sorround Sound на каком-то задрипаном PenЪ-166 и 64МБ ОЗУ, а тут всё не проснулись.

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

вне hosted mode - никак, понятное дело. В Hosted Mode и так используется IE под виндой

Это маразм, очевидно.

я уже дал ссылку на сорцы

Так по твоему венда - опенсурсь, ибо дотнет открыт, а утилита ftp вообще под bsd лицензией.

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

В жабе уже значит есть аналог Вебкита? Пойди и убейся.

Реализация HTMLv3 появилась в Swing в ~ 1998 году, если не ошибаюсь с датой.

Пойди, убейся.

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

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

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

> А ничего, что Java3D в браузере в виде апплетов и на десктопе в виде приложений уже как лет десять доступно и работает прямо через DirectX на Windows и через OpenGL на Unix и Windows?

And where your java now?

Я в 1999 году запускал демки Java3D с Sorround Sound на каком-то задрипаном PenЪ-166 и 64МБ ОЗУ, а тут всё не проснулись.

огласи параметры модели рендеринга. Количество полигонов, сколько % было отрезано куллингом, была ли трассировка лучей, как были сделаны тени и т.д.

а то я могу 3D на голом JS показать, рисованный на канвасе....

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

а то я могу 3D на голом JS показать, рисованный на канвасе....

Которого в осле нету....

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

Детка, ты будешь корчить из себя тролля или осилишь прочитать аргументацию?

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

> Детка, ты будешь корчить из себя тролля или осилишь прочитать аргументацию?

Белочка, это ты высер Спольски считаешь за аргументацию, или высер гугля, который ты спастила в первый пост? Что именно мне обосрать?

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

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

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

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

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

> Динамический контент — используются плагины на стороне браузера

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

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

>Это маразм, очевидно.

а как вы предлагаете технически реализовывать это?

Так по твоему венда - опенсурсь, ибо дотнет открыт, а утилита ftp вообще под bsd лицензией.


а причём тут фтп и доднед? я дал ссылку на сорцы компайлера, как и просили

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

а как вы предлагаете технически реализовывать это?

Очевидно, что GWT defective by design, зачем мне реализовывать костыли обходящие его дефктивность, коя провялется и при отладке.

а причём тут фтп и доднед? я дал ссылку на сорцы компайлера, как и просили

Ты дал ссылку на потроха тулкита воощето, и возмущался еще что «а где во фразе „GWT-панель инструментов“ слово „компилятор“?»

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

>Очевидно, что GWT defective by design, зачем мне реализовывать костыли обходящие его дефктивность, коя провялется и при отладке.

а какие есть варианты отладки в опере в принципе, абстрагируяюсь от GWT?

Ты дал ссылку на потроха тулкита воощето


я дал ссылку на реализацию компилятора, или вы её даже не открывали?

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

а какие есть варианты отладки в опере в принципе, абстрагируяюсь от GWT?

там если изучить меню можно найти «инструменты разработчика», криво и пародийно, но все есь и даже работает иногда (яндексуй dragonfly )

и в ie есть инструменты отладки, и навороченее файрбага, но мне не нравятся.

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

я дал ссылку на реализацию компилятора, или вы её даже не открывали?

тулкита, открыл бы сам

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

Да не. В отличие от озабоченных линупсятников, я использую graphics/gnash для роликов с флэшем — тытрубка проигрывается, что ещё надо?

Gnash — это что, «блоб»? Для линупсятников — скорее всего да. Я же собираю его из авторских исходников посредством системы портов.

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

> В отличие от озабоченных линупсятников, я использую graphics/gnash для роликов с флэшем — тытрубка проигрывается, что ещё надо?

Шел 2010 год, был всего 1 сайт на флеше....

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

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

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

всякие саморосты смотрел? Или сайты на alternativa platform/papervision 3d? Очень красиво и я бы даже сказал удобно

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

Из созданного личного:

видеоредактор на флеше, бекенд-кодировщик на менкодере

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

карта аля гугльмапс, только на флеше, без обращений к серверу. Весит 200кб + карта 200кб, никаких битмапов.

ресайзилка фото на клинте, флеш читал файлы прямо с винта и заливал картинки 640х480 пачками.

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

Кстате, о скорости и кривых руках. Я делал тетрис, изначально его писал на JS, а потом простым копированием кода перенес во флеш, заменив только функцию отрисовки и считывая с клавиатуры. Результат - версия на js работала нормально только в опере, в остальных браузерах были сильные глюки, а версия на флеше - работала везде, почти при нулевой загруженности CPU. Код внутри обоих версий на 90% идентичен.

да, есть вариант, что отрисовку в js я сделал криво и это повлияло на все, но то, что флеш един и неделим крайне упрощает разработку

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

всякие саморосты смотрел? Или сайты на alternativa platform/papervision 3d? Очень красиво и я бы даже сказал удобно

Херня какаято

видеоредактор на флеше, бекенд-кодировщик на менкодере

Изврат, на флеше браузер еще не писал?

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

Такая байда на жаба апллетах работает шустрее, и может даже сохранять высеры в произвольном формате + svg + скриптин

карта аля гугльмапс, только на флеше, без обращений к серверу. Весит 200кб + карта 200кб, никаких битмапов.

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

ресайзилка фото на клинте, флеш читал файлы прямо с винта и заливал картинки 640х480 пачками.

Жабка это сделает быстрее и лучше.

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

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

что флеш един и неделим крайне упрощает разработку

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

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

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

Ну, вот. Я же говорил, что говно-JS/AJAX не нужно. Достаточно плагинной технологии расширенной обработки динамического контента. Вендоры должны сами заботиться о совместимости стороннего говнокода с их плагинами под различными операционными системами и браузерами.

Принцип «Write once, run anywhere» (WORA) — на совести разработчиков плагинов, а не разработчиков браузеров.

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

> Херня какаято

Мне в свое время доставляло. До сих пор в некоторые игрушечки играю на флеше, часто затягивает.

Изврат, на флеше браузер еще не писал?

Нет, но собирался, если бы он небыл уже написан, то даже сделал бы. А делал я это за деньги, проект был такой.

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

Такая байда на жаба апллетах работает шустрее, и может даже сохранять высеры в произвольном формате + svg + скриптин

Флеш тоже может в произвольном формате сохралять, тоже хоть svg, хоть блекджек. НО. Вот надо мне добавить новую кисточку - я ее векторную беру и рисую прямо в IDE, дописываю референс на нее и... готово. А в жабке надо за пределы окна IDE таки вылезать.

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

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

У меня 200+200кб - это карта всего города с домами, адресами, плавным ресайзом (а не степом в 2 раза), няшными рисовалками прямо по карте и прочей фигней. Например, как бы ты сделал поворачивание карты? Опять жаба?

Жабка это сделает быстрее и лучше.

А только ты про сертификат забыл, не?

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

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

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

Вообще, 95% флешесайтов можно сделать на голом js без потери функционала, это да.

Вот только порой нехватает следующих штук:

проигрывание звука/видео, да еще со скриптованием. Есть конечно варианты из 10 различных костылей, собранные вместе, только скрипты обычно перестают работать.

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

нету удобного рисования, дабы как SVG+Canvas, но в одном флаконе и со стабилизированными глюками. А то в браузерах рендеринг SVG до сих пор различается, про тормоза канваса говорить нечего. Вон, гугль для своих мапсов вообще весело сделал - рисуемые пользователем линии он просто генерит в виде прозрачного PNG и отображает поверх карт. И правильно, от SVG/Canvas вменяемого результата сегодня не добиться

нету матриц трасформации для геометрии/цвета картинок, т.е. если картинку надо изогнуть/перекрасить/повернуть - идем на сервер за новой картинкой. Если надо анимированно изгибать - скачиваем с сервера 10 картинок. Или 100. Вон, панорамы все на флеше/апплетах, от этого не уйти. А во флеше все на стороне клиента делать можно, просто и легко.

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

И да, до недавнего времени флеш был единственной быстрой средой для выполнения клиентских скриптов. Sad but true

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

как бы ты сделал поворачивание карты

Чего чего, но не карты.

А только ты про сертификат забыл, не?

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

А у флеша для этого есть свой протокол - RTMP, который даже через кривые прокси пролезает. Вот тебе и дырявые абстракции, да.

Флеш какбе не абстракция, зато с его помощью имеют юзеровский UnPNP во все дыры

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

>там если изучить меню можно найти «инструменты разработчика», криво и пародийно, но все есь и даже работает иногда (яндексуй dragonfly )

я в курсе, но как это связано с используемым js-фреймворком? тут что GWT, что jsp - разницы нету.

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

> Чего чего, но не карты.

прицепился к словам, да? Ну возьми для примера новомодную капчу, которую тоже можно вращать.

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

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

Флеш какбе не абстракция, зато с его помощью имеют юзеровский UnPNP во все дыры

Флеш - это платформа с множеством абстракций, которые «just works», даже на самом говне они продолжают работать. Правда с приходом 10 версии туда начали пихать сишный код, скорость произвольных «скриптов» выросла в сотни раз, а в линаксе такой ускоренный код перестал запускаться местами. Это да, вилы.

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

>тулкита, открыл бы сам

ээ.. я решительно ничего не понимаю - их тех сорцов вполне себе собирается полноценная версия GWT, что ещё нужно?

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

чувак, если не ощущаешь разницы в наличии кривой абстракции, то тебя рано еще пускать в кодингу (не говоря уже о программировании)

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

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

Видимо разница в том что я осилил 8)

Флеш - это платформа с множеством абстракций

Амозглик, ты докатился до того что не различаешь GWT и флеш, вот до чего доводит чтение маркетоидных высеров.

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

Тыб не увиливал, а жмякал слив и уносился в даль.

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

> Видимо разница в том что я осилил 8)

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

Амозглик, ты докатился до того что не различаешь GWT и флеш, вот до чего доводит чтение маркетоидных высеров.

Больше не кури эту дрянь

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