Какой лучше фреймворк Java / GWT или Scala / Lift? - PullRequest
11 голосов
/ 16 октября 2010

Я хотел начать новый проект веб-приложения, и я запутался в двух средах - GWT (Java) или Lift (Scala).Поэтому я хочу ваше мнение, какой я выберу?Оба хороши в соответствии с требованиями моего проекта.Итак, на основе сравнения рамок, скажите, пожалуйста, что это хорошо?

Ответы [ 5 ]

18 голосов
/ 16 октября 2010

Я считаю GWT чрезвычайно эффективной технологией для клиентской стороны и использую комбинацию Java и Scala на серверной стороне.

GWT привлекателен тем, что позволяет писать веб-приложения на Java спереди назад; вы код на Java; и вы отлаживаете свою программу в Eclipse, плавно переходя от кода клиента к коду на стороне сервера и обратно. Это действительно замечательная вещь.

Скала - прекрасный язык, и я влюблен в него, как и все остальные. Если бы только был вариант GWT, основанный на Scala! В этом направлении уже проделана определенная работа . Постепенно я перенес большую часть своего серверного кода в Scala, к моему большому удовлетворению.

Если бы вы использовали Lift, сколько кода JavaScript вам понадобилось бы сделать? Вам комфортно с JavaScript? Насколько сложным будет поведение вашего приложения на стороне клиента? Для довольно простой логики на стороне клиента я уверен, что Lift окажется удовлетворительным. Если вы хотите создать приложение, очень похожее на десктоп, и / или вы особенно заинтересованы в том, чтобы выжать из приложения последнюю каплю скорости, используйте GWT. В любом случае, вы не будете разочарованы; это отличные технологии для инвестиций.

Также учтите, что поддержка IDE для Scala все еще очень развита. Честно говоря, я думаю, что любой выигрыш в производительности, который я мог бы получить от использования Scala, был потерян из-за различных напрасных усилий с Scala IDE для Eclipse. История может быть немного лучше в ИДЕЯ, но не намного.

Возможно, вы могли бы выделить себе определенное количество времени на изучение Lift и GWT и принять собственное решение на основе того, что вы сможете сделать за это время. Будьте дисциплинированы и придерживайтесь установленного вами времени.

6 голосов
/ 16 октября 2010

Не забывайте, что вы также можете использовать GWT со Scala (код на стороне сервера на Scala и на стороне клиента на Java).

Существует также некоторая разница в том, в чем эти комбинации лучше всего подходят.Например, Lift имеет поддержку комет Uber, а GWT лучше для более богатых клиентов и может уменьшить количество запросов к серверу.

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

5 голосов
/ 16 октября 2010

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

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

Хотя Scala может использоваться с GWT, вы обнаружите, чтоУ Lift гораздо лучшая поддержка для некоторых из лучших функций Scala (например, актеров).Поэтому по этой причине я бы предпочел Lift.

Возможно, вы захотите изучить Scalatra и Play в качестве альтернативных веб-фреймворков для Scala.

5 голосов
/ 16 октября 2010

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

Редактировать :

Масштабируемость и производительность зависят от типа транзакций и серверной части данных, но всепри равных условиях у вас будет больше шансов с Lift / Scala.

Из интервью @ dpp :

  • Lift лучше поддерживает Comet, чемлюбой другой веб-фреймворк ... и именно поэтому Novell выбрала Lift для внешнего интерфейса Pulse.
  • Lift имеет отличную поддержку Ajax.
  • Lift не зависит от персистентности, поэтому он работает с существующей Javaобъекты модели и бизнес-логика.
  • Поддержка REST в Lift гораздо более гибкая и безопасная, чем поддержка REST в любой другой веб-инфраструктуре JVM.
4 голосов
/ 04 ноября 2010

Я собираюсь приступить к проекту веб-интерфейса самостоятельно, поэтому я нашел этот поток очень полезным.Я знаю, что оригинальная статья предназначалась для сравнения достоинств GWT и Lift, но вам также может быть интересно посмотреть на Vaadin (http://vaadin.com/home). Он использует GWT для рендеринга в браузере, но большая часть структуры и логики пользовательского интерфейсареализовано на стороне сервера. Код на стороне сервера может быть реализован на любых языках JVM (поэтому вы можете использовать Scala). Поэтому, если вы являетесь поклонником Scala, это может быть подходящим решением для вас.

...