What kind of applications are the sweet spot for Scala's lift web framework.
My requirements:
- Ease of development and maintainability
- Ready for production purposes. i.e. good active online community, regular patches and updates for security and performance fixes etc.
- 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.
- Has good UI templating engines
- Interoperation with Java (Scala satisfies this arleady. Just mentioning here for completeness sake)
- Good component oriented development.
- Time required to develop should be proportion to the complexity of web application.
- 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.
- 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?
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.