I'm looking for a Scala web framework that has some of the following properties.
What is the best Scala web microframework that fits the bill? Some frameworks I've been looking at:
But without spending time playing with all of these, it's hard to tell what to use.
Scalatra is a simple, accessible and free web micro-framework. It combines the power of the JVM with the beauty and brevity of Scala, helping you quickly build high-performance web sites and APIs.
Play is rock-solid and used by hundreds of thousands of Java and Scala developers every month. Play is still extremely relevant to today's application and web development and has a passionate and very capable community around it ensuring that it has many good years left.
Scala has an exact syntax, eliminating boilerplate code. Programs written in Scala require less code than similar programs written in Java. It is both an object-oriented language and a functional language. This combination makes Scala the right choice for web development.
Bowler is pretty much Scalatra + Scalate, with some enforcing/nudging of the developer towards good RESTful practices, such as proper use of Content-Type and Accept HTTP Headers for responding and emitting HTML and JSON and dealing with GET, POST, DELETE and PUT in appropriate ways (and making bad uses of GET and DELETE harder).
If you are curious about component oriented UI's, Bowler does support Scalate's Scuery style, which combined with Bowler gives a very composable UI style heavily influenced by Apache Wicket.
In terms of front-end vs. serverside, Bowler takes quite a strong view that client-side code (JavaScript/CSS) is client-side code, and serverside code is serverside. No nasty "integration" of JavaScript with serverside Scala code, instead you should use best-of-breed on client and server, integrated through a common, well-understood format such as JSON.
Not sure it qualifies as a "microframework", but I like Lift. I haven't really looked at the others you suggest, but here are some comments on Lift:
Box
is greatLift does have Request- and Session-scoped variables. I like them, but they might fall into your description of "yucky" design.
It also includes a comet implementation that is supposed to be very good, though I haven't used it myself.
Work-in-progress book and docs here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With