Dave Hrycyszyn

Greenhorn
+ Follow
since Feb 05, 2013
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Dave Hrycyszyn

Hi, I'm chipping in late here, but I have a few things to add to what Erik said (all of which I agree with by the way).

First, it's important to say that there are quite a few similarities. Obviously, both promote Scala as a first-class language. Both have books available, e.g. there's Play for Scala and Scalatra in Action. Both frameworks are fast, with Scalatra probably having a speed edge in (mostly meaningless) benchmarks. Both are routinely used by very large organizations that want to scale massively.

The most obvious difference between the two frameworks, as Erik said, is that Play! is a much more full-stack framework, and does a lot more convention-over-configuration for you - so it provides convenience with the trade-off that it makes more assumptions about your application's setup.

In contrast, Scalatra tries to provide a very small set of core routing functionality and then let you easily layer whatever other libraries you want on top. In our view (I'm a Scalatra contributor), this is good thing as it gives you more freedom to structure things the way you want. I like Scalatra because it makes it easy to write multiple small applications with well-defined purposes.

There is another difference which may be somewhat less obvious but is still very important: deployment.

Play! is usually deployed using Netty (I am not sure of the status of its external WAR plugin at this point, maybe somebody else can comment on that). Scalatra only deploys on regular servlet containers (Tomcat/JBoss/Jetty/whatever), so if you need to deploy your app that way, it might make a difference to you. Each has its advantages and disadvantages.
11 years ago