Что лучше рамки Java/GWT или Scala/Lift?

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

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

Edit

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

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

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

Ответ 4

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

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

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

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

Ответ 5

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