Особенности/ограничения GWT связывают Java/Javascript/Web-разработчиков по рукам и ногам, лишая их возможности нормального использования своих любимых библиотек и инструментов. Полноценное тестирование с помощью GWTTestCase по сложности и неочевидности трюков и хаков запросто переплюнет тестируемый код. Прикрутить Selenium к такой горе асинхронного жаваскрипта тоже не простая задача, решаемая конечно — но и не без дополнительных ограничений.
Архитектура GWT заточена под написание небольших виджетов, а ля гуглмапс. Их написание/интеграцию GWT действительно сильно упрощает. Когда же пишется большое приложение, то как не верти — а все равно выходит нагромождение из анти-паттернов и велосипедов.
Я с gwt сталкиваюсь в работе периодически на протяжении последних 2 лет ещё со времен версии 1.4. В пяти случаях из ста его выбор может стать действительно лучшим техническим решением. Но далеко не всегда нужны свистелки, недокросбраузерность, интеграция в GAE(с тамим числом ограничений) и хостинг непонятно где. Для меня gwt по прежнему расшифровывается как google widget toolkit. И лично я подожду ещё годик другой, пока пока он не станет полноценным web toolkit-ом
>> очень неубедительно. о каких костылях вы говорите?
1) Ужасная тестируемость, профилируемость, спагетти-код из вызовов singleton-ов
2) Длительная перекомпиляция кода (бесконечные Compiling permutation… даже если отключить всю«кросбраузерность» в dev-mode)
3) периодические проблемы с сериализацией из-за рассинхронизации кода на клиенте и сервере (спасает только clean)
4) Что бы отвязать DAO-код сервера от клиента, приходится создавать промежуточный слой из TO (Тransfer Objects)
5) Проблемы при дебаге (может случайно повиснуть, может сыпануть левыми исключениями и т.д.)
6) java.util.Date и часовые пояса
7) Раз сделали компиляцию java 2 javascript, то могли бы и java 2 css приделать
8) Общая тормознутость толстого javascript-клиента (дружно вспомнили google wave, google buzz)
>>в итоге вы получаете кроссбраузерный javascript, да, пусть тяжелый, но очень функциональный и весьма расширяемый в любую сторону.
конечно же, в сайте, где хватает 3 статичных страничек, он бессмысленен.
это никак не противоречит тому, что я написал в самом вначале
Кстати, я достаточно быстро научился доставать беруши во сне. Делаю все на автомате и на утро ничего не помню. Да и как тут не научиться, если одна полная ночь в берушах по личным ощущениям равносильна одному удару кулаком в ухо =D
Не должно web-приложение создаваться с таким огромным количеством костылей. Применение GWT допустимо, если вы, так же как и google, хотите иметь единую платформу, на базе которой планируете строить и объединять большое число web-сервисов. Лишь в этом случае плюсы GWT перевешивают его минусы. Во всех остальных случаях, я бы порекомендовал отказаться от его использования.
Через три-пять лет кто-то точно так же будет морщиться, глядя на Ваш код, и хорошо, если если этим «кто-то» будете вы. В любом случае, обвинять на публике других в непрофессионализме, выносить сор из избы — это тоже признак непрофессионализма.
_
be right or be rich
«фоннеймановской архитектуры с ее разделением области команд и области данных»
Тоже споткнулся на этой фразе. Дальше не читал — ученые и инженеры тратят уйму времени на уточнение и согласование границ понятий, а здесь даже простые вещи противоречат друг другу.
Вспомним Витгенштейна:
«6.5. Для ответа, который не может быть высказан, не может быть высказан вопрос. Загадки не существует. Если вопрос вообще может быть поставлен, то на него можно также и ответить.»
Дайте мне полное формальное определение «искусственного интеллекта» — и я вам его сделаю.
Есть ли DI-фреймворк для жавы, в котором бы не было ни кучи XML-конфигов, ни размазанных по всему коду аннотаций? С возможностями простого повторного использования конфигурации, а так же отслеживанием изменений в класспассе и интергацией с билд-системами.
вводить его по 10-20 раз это отстой
Самое необычное его применение увидел недавно в Webpage Screenshot-плагине к хрому.
Архитектура GWT заточена под написание небольших виджетов, а ля гуглмапс. Их написание/интеграцию GWT действительно сильно упрощает. Когда же пишется большое приложение, то как не верти — а все равно выходит нагромождение из анти-паттернов и велосипедов.
Я с gwt сталкиваюсь в работе периодически на протяжении последних 2 лет ещё со времен версии 1.4. В пяти случаях из ста его выбор может стать действительно лучшим техническим решением. Но далеко не всегда нужны свистелки, недокросбраузерность, интеграция в GAE(с тамим числом ограничений) и хостинг непонятно где. Для меня gwt по прежнему расшифровывается как google widget toolkit. И лично я подожду ещё годик другой, пока пока он не станет полноценным web toolkit-ом
Из всего перечисленного какое-то отношение к gwt имеют только GWTTestCases и Compile Report. Все остальное обычный набор web-разработчика.
1) Ужасная тестируемость, профилируемость, спагетти-код из вызовов singleton-ов
2) Длительная перекомпиляция кода (бесконечные Compiling permutation… даже если отключить всю«кросбраузерность» в dev-mode)
3) периодические проблемы с сериализацией из-за рассинхронизации кода на клиенте и сервере (спасает только clean)
4) Что бы отвязать DAO-код сервера от клиента, приходится создавать промежуточный слой из TO (Тransfer Objects)
5) Проблемы при дебаге (может случайно повиснуть, может сыпануть левыми исключениями и т.д.)
6) java.util.Date и часовые пояса
7) Раз сделали компиляцию java 2 javascript, то могли бы и java 2 css приделать
8) Общая тормознутость толстого javascript-клиента (дружно вспомнили google wave, google buzz)
>>в итоге вы получаете кроссбраузерный javascript, да, пусть тяжелый, но очень функциональный и весьма расширяемый в любую сторону.
конечно же, в сайте, где хватает 3 статичных страничек, он бессмысленен.
это никак не противоречит тому, что я написал в самом вначале
_
be right or be rich
Тоже споткнулся на этой фразе. Дальше не читал — ученые и инженеры тратят уйму времени на уточнение и согласование границ понятий, а здесь даже простые вещи противоречат друг другу.
Вспомним Витгенштейна:
«6.5. Для ответа, который не может быть высказан, не может быть высказан вопрос. Загадки не существует. Если вопрос вообще может быть поставлен, то на него можно также и ответить.»
Дайте мне полное формальное определение «искусственного интеллекта» — и я вам его сделаю.