This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
I've only just started looking at Play for Scala, and I started out with the stand-alone Play download. Then I decided to try out the Typesafe stack instead (on Linux Mint using the Typesafe repo), as it gives you easy integration with Akka etc. But I get the impression it's based on older versions of the individual stack components.
For example, if you follow the Typesafe getting started tutorial and create a Play project like this:
Then accept all the defaults at the various prompts, it seems you get a Play 2.0.2 project that expects to use SBT 0.11.3 with Scala 2.9.1. All of these are older versions of the respective tools, so what's going on?
It's a bit confusing, as I'm also new to Maven etc, so whenever I fire off a command to Play/SBT I get the usual "downloading the internet" experience, which just adds to the confusion as to what versions of the various libraries I'm actually using.
Is there really much difference between starting out with the Typesafe stack vs. using the stand-alone version of Play? And do you have any particular views/recommendations as to which is the better approach for a relative beginner with Scala and Play?
The Typesafe stack indeed uses older versions of the components, and if you run Play, it will download its own dependencies anyway. So I recommend using the standalone version of Play.
Personally, once I have setup a project (with 'play new'), I use a regular SBT install (from https://github.com/paulp/sbt-extras), but I think this specific one only works on Linux/OS X. The main difference between a regular SBT and using 'play' command from a Play distribution (which is basically a script that calls an included sbt), is that a regular SBT uses your regular ivy directory (~/.ivy2), while Play uses an ivy directory in its own directory. The latter leads to duplicate downloads between Play and non-Play projects.
I know that you believe you understand what you think I said, but I'm not sure you realize that what you heard is not what I meant.