Я нахожусь на стадии планирования веб-приложения, и я пытаюсь выбрать между GWT и Cappuccino. У меня есть идея, какая из них лучше, но мой партнер продается по другому выбору. Я надеялся получить некоторые отзывы о плюсах и минусах для каждого из людей, которые использовали тот или другой или оба. Заранее спасибо за любое понимание, которое у вас может быть.
GWT против Капучино
Ответ 1
Toolkit v/s Framework
GWT - это toolkit. Его сила заключается в инструментах, которые он предоставляет для создания приложения. Однако он не обеспечивает рамки. Разработчики обычно строят небольшую структуру над GWT в соответствии с их потребностями. Было много внимания на шаблоне MVP для создания приложений, но это не единственный способ использовать GWT.
Cappuccino - это Framework. Он имеет предписанный способ создания приложений. Кроме того, он предоставляет библиотеки для выполнения задач высокого уровня, таких как анимация, drag-and-drop undo/redo и т.д. GWT не предоставляет библиотеки для таких задач, хотя доступны сторонние библиотеки.
Это означает, что приложения Cappuccino, как правило, богаче соответствующих приложений GWT.
Автономная компиляция v/s Перевод времени выполнения
GWT верит в принятие решений во время компиляции. Обнаружение браузера, I18N, встраивание изображений, генерация спрайтов, оценка шаблона uibinder выполняются во время компиляции. Отложенная привязка позволяет разработчикам использовать эту концепцию в своих приложениях.
ИЗМЕНИТЬ
Cappuccino, по умолчанию, не нуждается в компиляции. Браузер загружает файлы цели-j, а затем фреймворк переводит/интерпретирует их непосредственно во время выполнения. Тем не менее, можно скомпилировать с помощью jake. Вы можете выбрать из нескольких minifiers/компрессоров, включая компилятор google.
В результате этого архитектурного решения приложения GWT, как правило, работают быстрее во время выполнения, чем аналогичные приложения Cappuccino. Однако из-за затрат времени компиляции развитие имеет тенденцию быть медленнее, чем Cappuccino. Плагин разработки GWT несколько облегчает эту боль, но стоимость не исчезает полностью.
Так как GWT является компилятором closed-world
, он может удалить неиспользуемый код, встроенные вызовы методов, статические строки и оптимизировать код способами, которыми Cappuccino не может. Если Cappuccino должен был ввести этап компиляции, он мог бы выполнять те же оптимизации; но, насколько мне известно, нет способа сделать перевод во время компиляции.
Забастовкa >
С необязательной стадии компиляции, этот пункт становится спорным. Однако приложения-капучино, которые не выполняют такую компиляцию, будут иметь низкую производительность по сравнению с приложением GWT.
Безопасность типов
GWT является java - и поэтому type safe. Объект J является javascript и поэтому динамически типизирован. У этого есть свои преимущества и недостатки, и поскольку это религиозная дискуссия, я воздержусь от суждения.
Отладка
GWT предоставляет плагин для браузера, который помогает разработчикам напрямую отлаживать Java-код. В режиме разработки разработчики могут увидеть следы java стека. Однако во время выполнения сгенерированный JS-код обфускается и очень сложно отлаживать (хотя есть способ сказать GWT "не обфускать мой код" ).
Используя super-dev-mode, теперь можно отлаживать код Java непосредственно из веб-браузера.
Cappuccino не имеет режима разработки, а это значит, что вы должны использовать существующие инструменты, такие как firebug для отладки. Ошибки сообщаются браузером, а для отладки кода вы должны использовать отладчики JS.
Тестирование устройств
С GWT вы можете писать чистые java unit test случаи, которые не требуют запуска браузера. Это имеет очевидные преимущества - некоторые из них - скорость и способность повторно использовать существующую инфраструктуру. Когда вам нужен браузер для тестирования, вы можете выбрать GWTTestCase или HTMLUnit. Его также можно протестировать с использованием селена.
Приложения Cappuccino могут быть протестированы с помощью OJTest. К сожалению, я не мог найти много документации по этому вопросу, поэтому не могу много комментировать. Конечно, вы всегда можете использовать Selenium для тестирования вашего webapp.
Взаимодействие с Javascript
GWT предоставляет возможность поговорить с существующими JS-библиотеками - называется Javascript Native Interface. Он зрелый и хорошо работает, но на самом деле не интуитивно. Объект J - это javascript, поэтому вам не нужно ничего особенного взаимодействовать с Javascript.
Видение
Я не могу поддержать этот аргумент, но GWT стремится сосредоточиться на создании высокопроизводительных веб-приложений, не заботясь о внешнем виде. Они никогда не компрометируют производительность. Cappuccino, с другой стороны, имеет тенденцию сосредотачиваться на более высокоуровневых функциях и структурах, а также на компромисс в отношении производительности во время выполнения.
В результате приложения Cappuccino выглядят более богатыми, но для загрузки требуется некоторое время. Приложения GWT загружаются и реагируют быстрее, но выглядят скучными. Я уверен, вы можете обойти обе проблемы, но так, как будто это готово.
Поддержка и поддержка сообщества
GWT поддерживается Google. Их приверженность GWT довольно сильная. Более новые приложения (Wave, Adwords, Orkut) из Google построены на GWT. У Google IO было несколько сессий по GWT. Форум является довольно активным и отзывчивым, и сам инструментарий активно развивается и поддерживается Google и сообществом с открытым исходным кодом. группа пользователей Cappuccino не так активна и имеет гораздо меньше членов.
Ответ 2
Я гораздо более опытен с Cappuccino, чем GWT, но из-за его взглядов GWT выглядит невероятно быстрым и довольно надежным. В конце концов, это подкрепляется довольно большим игроком в интернет-поле. Демонстрация в Google IO была впечатляющей. Хотя это может измениться, приложения GWT полностью покидают Cappuccino в пыли, когда дело доходит до времени загрузки и размера развертывания сегодня.
Тем не менее, я пошел с Cappuccino по двум причинам: во-первых, в то время как GWT является классическим "хорошим" техническим решением, Cappuccino прямо нацелен на "только лучшую, достаточно хорошую" аудиторию. Я считаю, что с Cappuccino вы можете достичь стандарта, который редко можно увидеть в Интернете раньше. Не только в симпатичных пикселях, но и в сырой функциональности и мощности, где все работает только на уровне рабочего стола. Перетаскивание, отмена стека, прокрутка и изменение размера жидкости, разделение панелей и многое другое. GWT догоняет, как видно из Google Wave, но у него долгий путь, и Google традиционно не заботится о польском языке. Это видно, например, в Gmail, который по-прежнему не только выглядит грубым, но неуклюжим в взаимодействии с пользователем после этого много лет.
Вторая причина, по которой я пошла с Cappuccino, - это то, что Java заставляет меня сумасшедшим с ее негибким, смехотворным многословным и нечитаемым стилем. Но это может быть только я.
Ответ 3
Вам может быть интересна моя новая платформа пользовательского интерфейса GWT, CappuccinoGWT