My experience so far, coming from a Java background and also using Play with Java:
Getting started with your typical Hello World! style is simple, the documentation covers pretty much all the core concepts well, the way routes are defined makes sense. However, as soon as I start getting into using Play for real world scenarios, that is when things start to get “interesting”.
For example, configuring the application to be non-blocking for database access in Java with a blocking driver (e.g. JDBC). Since almost all apps will be talking to a DB in one way or another, I feel this part of documentation warrants its own section with in-depth, step by step documentation. While I am aware that there is documentation for this, I think it should be highlighted in a more prominent place in the documentation, since by default, the application will be blocking, and new users will incorrectly assume otherwise (I know I did). Furthermore, the linked documentation make me (as a new user) feel like there are many “assumed knowledge” about Akka and other things that Play uses under the hood, by only showing various code snippets and assumes I would know where to put it, and how to customize it to my needs, which I did not. The page does have links to further documentation about Akka, etc… but honestly, I just want to know what I need to do to make my Java application using Play talking to the database with a blocking driver.
Another area of pain is the default build tool, sbt. It is just hard to use, While the getting started sample project comes with a fully functional sample build.sbt file, as soon as I need to customize it for my specific build needs, it becomes very very hard for someone who does not know Scala. A lot of Google searches were required to find the solution, which usually ends up being cut & paste & pray. I know that sbt is technically not Play, but due to the dependency Play has on it, it makes the experience less than enjoyable. As an added “bonus”, sbt is often not supported for some of the Cloud devops services, so sometimes it ends up being a deal breaker for adopting Play in my experience.
Overall, I would say my experience is positive, but I think if we can have documentation that covers more “real world use cases” (especially for us Java folks), it will go from good to great!