Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

For my next project, a web-app, should use scala+wicket or scala+lift?

Tags:

Given the various advantages of the Scala language I have decided to write my next web-application in Scala. However, should I be using Wicket or Lift? I am familiar with Wicket, and like it quite a bit, but know very little about Lift. Is learning Lift worth the effort in this context?

In order words, how does Lift compare to Wicket? Given that the web-app will be in Scala, could using Lift make my life as a developer easier?

like image 977
Ceki Avatar asked Jul 12 '10 20:07

Ceki


1 Answers

If you like Wicket, you should stick with what you know & like. Wicket is a fine web framework and doing Scala & Wicket is very nice because you can use Scala's traits to compose classes in Wicket... it really cuts down the boilerplate vs. Java.

Lift has strengths that Wicket doesn't:

  • Much better Ajax support. Lift's Ajax support is far less verbose than Wicket's. If you are going to do a lot of Ajax, learning Lift might be valuable.
  • Comet support. If your application has a server-push component to it, Lift offers better comet support than any other web framework.
  • Lift is more Scala-like. If you're coming from Java, then Lift's use of pattern matching and function passing is a learning curve.

In terms of the comments in this thread, I'd like to disagree with some of the statements made:

  • Lift does not require that you mix presentation and business logic. There are tons of options for you to structure your application appropriately for your coding style from a complete divorce of presentation and logic to mixing the two wildly and freely. Your choice.
  • Lift does not do the same thing as Rails. Lift is not another me-too MVC framework, nor did I focus a lot of my time on the CRUD aspects of Lift. Lift is about security, developer productivity, maintainability and building highly interactive (Ajax and Comet) web apps. The Lift libraries contain a lot of modules including a number of ORM modules, JSON support, etc. This is due in part to the dearth of libraries in Scala back 2-3 years ago and due to the fact that the Lift community is awesome and supportive and the Lift release process works very well (monthly milestone releases that are stable enough to power Foursquare.)
  • Lift is not focused on the HTTP request/response cycle. Lift is focused on abstracting those away. The developer spends less time worrying about parameter naming and more time focusing on business logic.

But, once again, if you like Wicket, sticking with Wicket is a great choice... Wicket's even better in Scala.

like image 115
David Pollak Avatar answered Oct 13 '22 11:10

David Pollak