It depends on your mindset. I use both and love both but when it comes to massive changes on critical components in huge codebases give me static typing every time.
typesafety+compiled brings a robustness and sureness (and sometimes performance) that dynamic languages can't really provide. Dynamic languages are interesting in some domains also... I must admit I'm a big fan of static typed language since the beginning so I'm not really objective ;)
Let's take the Play 1 vs Play 2 example:
How many times I got a 500 pages in the face due to a basic NullPointerException in Play 1 groovy templates...
In new play 2 templates, because they are type-safe, they guarantee that you will not have those basic errors.
Of-course, it doesn't guarantee everything, but it's way less error-prone. You actually CANNOT make this kind of NPE errors with type-safe scala code.
where in java you do something like:
user.address.town // oops I forgot to test if user.address is not null
in scala:
// user.address.town wouldn't work, because address is represented as an Option[Address]
user.address.map(_.town).getOrElse("")