Какой фреймворк лучше Java/GWT или Scala/Lift?

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


person Rupeshit    schedule 16.10.2010    source источник
comment
Я бы выбрал тот, который позволит мне уйти от Java. Просто мои два цента.   -  person    schedule 16.10.2010
comment
Что не так с Явой? Вы можете использовать Python или Java с GWT.   -  person randomguy    schedule 16.10.2010
comment
Возможно, мы могли бы посоветовать лучше, если бы вы дали нам более четкое представление о том, каковы именно требования вашего проекта.   -  person Kevin Wright    schedule 16.10.2010


Ответы (5)


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

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

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

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

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

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

person David    schedule 16.10.2010
comment
Мой личный опыт (и я не думаю, что я один здесь) заключается в том, что опыт IDE при кодировании с IntelliJ значительно лучше, чем с eclipse, он не просто маргинален. - person Kevin Wright; 06.11.2010
comment
Да, Кевин. Теперь я перешел на IntelliJ IDEA и обнаружил, что он значительно лучше, чем Eclipse, с точки зрения поддержки Scala. - person David; 07.11.2010

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

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

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

person Oleg Galako    schedule 16.10.2010

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

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

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

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

person Kevin Wright    schedule 16.10.2010

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

Изменить:

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

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

  • Lift поддерживает Comet лучше, чем любой другой веб-фреймворк... и именно поэтому Novell выбрала Lift для внешнего интерфейса Pulse.
  • У Lift отличная поддержка Ajax.
  • Lift не зависит от постоянства, поэтому он работает с вашими существующими объектами модели Java и бизнес-логикой.
  • Поддержка REST в Lift гораздо более гибкая и безопасная, чем поддержка REST в любой другой веб-инфраструктуре JVM.
person Eugene Yokota    schedule 16.10.2010
comment
На мой взгляд, критерием является то, какая структура лучше всего работает, масштабируема и очень стабильна. - person Rupeshit; 16.10.2010

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

person Guillaume Belrose    schedule 04.11.2010
comment
Это очень хорошая ссылка, и для меня это отличная возможность использовать vaadin в моем новом проекте. - person Illarion Kovalchuk; 17.11.2010