There has been a lot of movement in the Scala based web framework community of late. Coming from Rails, Rake, ActiveRecord and migrations – which is a good Scala framework to build production sites in ?
A small hit in performance is acceptable if it gives a much better maintainable code. It would also be nice if collaboration features are built in – e.g. something like DB migrations, etc.
(moderator edit: David Pollak is the founder of the Lift framework)
If you want a nice simple Scala web framework for doing CRUD and a few pages, Play would be my suggestion. It’s got a nice development cycle and it’s simple and approachable.
If you’re building an app that is going to grow and handle lots of traffic, Lift is my recommendation 😉
Lift supports a variety of ORM systems. Mapper is much like ActiveRecord. Rather than using migrations, Mapper uses Schemifier to read the schema definition from the Mapper definitions and updates the RDBMS accordingly.
If you’re building any kind of Ajax or Comet app, Lift is the right choice. Lift’s Ajax support is simple… just associate a function on the server with an Ajax control. When the user clicks the button, pulls down the select, etc. the function gets invoked.
Lift has the best server-push (Comet) support of any framework. Please check out http://liftweb.blip.tv/file/2033658/ for a flavor of the Comet support.
In terms of performance and scalability, Lift powers Foursquare and other very high traffic sites.
In terms of concise code, Lift is very concise, yet type-safe (the same is not true of Play and other frameworks that represent variables with String names). So, you get the kind of type-safe, very maintainable REST support that’s also very concise demonstrated here: http://www.assembla.com/wiki/show/liftweb/REST_Web_Services