-Play 2 was released too early and Play 1 isn't getting any love anymore, so it's currently in an awkward spot. There's stuff you can do in Play 1 that can't be done in Play 2 yet; they're working on it, but it's not yet there.

-Play 2 is uncomfortable and vaguely user-hostile if you want to use Java. More than most Java apps, that is. It's fairly obvious that the Play team considers Scala to be The Way To Do It, so you'd better be on-board or you're probably going to hate using it. (I'm OK with Scala, though as I've said before I find it troublesome[1]. I hear eventually Kotlin is supposed to be supported though.)

-Play is all SBT. You may find that you love SBT, in which case this won't be a problem for you, but it has been a while since a build tool made me yearn for the days of ye olde makefile. There's a lot of "magic" involved and there's little coherent documentation for either SBT or Play's use of it.

-Play's DEV mode pins a core on my laptop and turns it into a campfire on my lap. A ticket asking what's up with this has gone unanswered.

-Play 2 is designed for single projects and trying to build sane multi-project systems (like, a frontend app, a common code library, and a backend app) can be an exercise in frustration. This has gotten less bad over time, but it's still not great. I literally don't remember the last time I wrote a web app that wasn't at least three separate pieces, so for me this is very nearly a game-breaker.

-The developers are apparently pretty insular. It seems like they are more than happy to have you fix their bugs, but adding features that you need--not so much. Sample size of one, so apply all necessary caveats, but I've found that offers of help and requests for guidance for making what you want to do fit into their plans for Play seem to get ignored[2]. I want to help make it better, so let's talk and see how to do that, yeah? (Lack of good communication isn't just a Play thing, but seems common throughout the Typesafe stack of libraries.)

-The community isn't really a community at all. If you look at their Google Group, it's mostly the same five questions over and over again and nobody seems to really stick around. I look at something like Rails--which I can't stand working with, but they have the "active, good community" part absolutely nailed--and you see a lot of newbie questions, but you also see a lot more people sticking to the community and, IMO, that bodes a lot better for the platform.

.

Honestly, Play isn't that bad, if your needs line up closely to the Play developers'. Mine don't, so for me it's a very frustrating experience. If you're just rapidly iterating on something small I have to think it'd be great - hot reloading works great (although compiling templates seems like it'd turn off designers) and I would believe that, once over the initial hurdles, you can probably Get Stuff Done very effectively. But every time I work in Play I start getting a little bit crabby and want to go write a better web framework (with blackjack! and hookers! in fact, forget the blackjack!) but I know I don't really have the time to do it justice. As such, my projects mostly end up being a set of libraries bolted together on top of Jetty (a handler, a regex dispatcher, etc.). Maybe at some point I'll codify them into an actual for-realsies "library". It'd be a good reason to learn how to do Java class reloading...

[1] - http://news.ycombinator.com/item?id=4051556

[2] - https://play.lighthouseapp.com/projects/82401/tickets/502-mo...