Question

What kind of applications are the sweet spot for Scala's lift web framework.

My requirements:

  1. Ease of development and maintainability
  2. Ready for production purposes. i.e. good active online community, regular patches and updates for security and performance fixes etc.
  3. Framework should survive a few years. I don't want to write a app in a framework for which no updates/patches are available after 1 year.
  4. Has good UI templating engines
  5. Interoperation with Java (Scala satisfies this arleady. Just mentioning here for completeness sake)
  6. Good component oriented development.
  7. Time required to develop should be proportion to the complexity of web application.
  8. Should not be totally configuration based. I hate it when code gets automatically generated for me and does all sorts of magic under the hood. That is a debugging nightmare.
  9. Amount of Lift knowledge required to develop a webapp should be proportional to the complexity of the web application. i.e I should't have to spend 10+ hours learning Lift just to develop a simple TODO application. (I have knowledge of Databases, Scala)

Does Lift satisfy these requirements?

Was it helpful?

Solution

IMHO, Lift meet those requirements. Not so sure about #4, though, on the other hand, it has a good collection of back ends to interact with other services.

I think it mostly hinges on complexity. Lift does things its own way, which you may get easily, or you may not. I'd take a day to write that TODO application -- and be sure to make use of the liftweb group, as there just aren't many Lifters on Stack Overflow -- and see how that goes. I think you'll be able to form an opinion on it -- just a day.

OTHER TIPS

Well, you could cruise through the Lift getting started guide in which you build an Ajax To Do app ;-)

Lift has been around for 3 1/2 years. The Google Group has nearly 2,000 people on it. There are 40 committers, of whom, 10+ make commits each month. We close between 40 and 80 tickets per month, do monthly milestone releases. Companies like FourSquare, Xerox, and Novell have hardcore apps built on Lift.

i think you should post this in the lift mailing list too: http://groups.google.com/group/liftweb

After reading seventhings.liftweb.net and skimming the first two chapters of Lift in Action, Lift's sweet spot looks to be, complex HTML page-based applications with advanced client-side functionality (like Facebook and Twitter).

Compare to single-page ajax "webapp" applications (like a calendar, or mostly anything built with ExtJS) that provide advanced client-side functionality with pure javascript and ajax middle tier services but the programming model is javascript, html is abstracted away. Compare also to traditional HTML "website" based applications like a wiki or blog -- think twitter bootstrap + jquery -- that don't need advanced client-side functionality.

single-page webapps and page-based websites i think would be made more complex than necessary with Lift unless you had an experienced & disciplined team. This probably correlates with product maturity and team size - facebook and twitter are extremely large applications with hundreds of interacting teams and strong engineering leadership.

a small team of people still exploring and forming opinions on how various apps should be structured is likely, i think, to be mislead by Lift into more complex solutions when perhaps all they needed was straightforward HTML templates and simple ajax endpoints.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top