GWT по сравнению с [закрытым] капучино

11
задан James 29 May 2010 в 00:31
поделиться

2 ответа

Toolkit v / s Framework

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

Капучино - это Основа .Он имеет предписанный способ создания приложений. Кроме того, он предоставляет библиотеки для выполнения задач высокого уровня, таких как анимация, перетаскивание, отмена / повтор выполнения и т. Д. GWT не предоставляет никаких библиотек для таких задач, хотя доступны сторонние библиотеки.

Это означает, что приложения Cappuccino обычно богаче, чем соответствующие приложения GWT.

Автономная компиляция против трансляции времени выполнения

GWT верит в принятие решений во время компиляции. Обнаружение браузера, I18N, встраивание изображений, генерация спрайтов, оценка шаблона uibinder - все это выполняется во время компиляции. Отложенное связывание позволяет разработчикам использовать эту концепцию в своих собственных приложениях.

РЕДАКТИРОВАТЬ

Капучино по умолчанию не требует компиляции. Браузер загружает файлы objective-j, а затем фреймворк переводит / интерпретирует их непосредственно во время выполнения. Однако можно скомпилировать с помощью jake . Вы можете выбрать один из нескольких минификаторов / компрессоров, включая компилятор закрытия Google .

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

Поскольку GWT является компилятором закрытого мира , он может удалять неиспользуемый код, встроенные вызовы методов, внутренние строки и оптимизировать код способами, которые Cappuccino не может.Если бы Cappuccino представил этап компиляции, он мог бы выполнять те же оптимизации; но насколько мне известно, нет возможности сделать перевод во время компиляции.

С дополнительным этапом компиляции этот вопрос становится спорным. Тем не мение,Приложения капучино, которые не выполняют такую ​​компиляцию, будут иметь низкую производительность по сравнению с приложением GWT.

Безопасность типов

GWT является java - и, следовательно, типобезопасным . Objective J - это javascript и, следовательно, динамически типизированный. У этого есть свои преимущества и недостатки , и, поскольку это религиозная дискуссия, я воздержусь от вынесения суждения.

Отладка

GWT предоставляет плагин для браузера, который помогает разработчикам напрямую отлаживать код Java. В режиме разработки разработчики могут видеть трассировки стека Java. Однако во время выполнения сгенерированный код JS запутывается, и его очень сложно отлаживать (хотя есть способ сказать GWT «не запутывайте мой код»).

Используя супер-режим разработчика , теперь можно отлаживать код Java прямо из веб-браузера.

Cappuccino не имеет режима разработки, что означает, что вам нужно использовать существующие инструменты, такие как firebug, для отладки. Об ошибках сообщает браузер, и для отладки кода вы должны использовать отладчики JS.

Модульное тестирование

С помощью GWT вы можете писать примеры модульных тестов на чистом Java, для работы которых не требуется браузер. Это имеет очевидные преимущества - некоторые из них - скорость и возможность повторно использовать существующую инфраструктуру. Если вам нужен браузер для тестирования, вы можете выбрать GWTTestCase или HTMLUnit. Также можно протестировать с помощью Selenium.

Приложения для приготовления капучино можно протестировать с помощью OJTest . К сожалению, я не смог найти много документации по этому вопросу, поэтому не могу много комментировать. Конечно, вы всегда можете использовать Selenium для тестирования своего веб-приложения.

Взаимодействие с Javascript

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

Видение

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

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

Поддержка и поддержка сообщества

GWT поддерживается Google. Их приверженность GWT довольно сильна. Новые приложения (Wave, Adwords, Orkut) от Google построены на GWT. У Google IO было несколько сессий на GWT. Форум пользователей довольно активен и отзывчив, а сам инструментарий активно разрабатывается и поддерживается Google и сообществом открытого исходного кода. Группа пользователей Cappuccino не так активна, и в ней гораздо меньше участников.

34
ответ дан 3 December 2019 в 01:33
поделиться

У меня гораздо больше опыта работы с Cappuccino, чем с GWT, но, судя по всему, GWT выглядит молниеносно быстрым и достаточно надежным. В конце концов, он поддерживается довольно крупным игроком в области интернета. Демонстрация на Google IO была впечатляющей. Хотя это может измениться, сегодня приложения GWT полностью оставляют Cappuccino в пыли, когда речь идет о времени загрузки и размере развертывания.

Тем не менее, я выбрал Cappuccino по двум причинам: во-первых, если GWT - это классическое инженерное решение "достаточно хорошо", то Cappuccino ориентирован на "только лучшее - достаточно хорошо". Я считаю, что с помощью Cappuccino можно достичь стандарта, который редко встречается в Интернете. Не только в красивых пикселях, но и в сырой функциональности и мощности, где все работает на уровне "настольного качества". Перетаскивание, отмена стека, плавная прокрутка и изменение размеров, разделение панелей и так далее и тому подобное. GWT догоняет, как видно на примере Google Wave, но ему еще предстоит долгий путь, а Google традиционно не слишком заботится о полировке. Это видно, например, по Gmail, который спустя столько лет все еще не только выглядит уныло, но и неуклюж в работе с пользователями.

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

5
ответ дан 3 December 2019 в 01:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: