>>738I use scala on the job daily, and previously used java on the job primarily.
I'd say why you should use functional design and why use scala are different questions, since it's perfectly OK to write nothing but side-effecting OO scala.
I'd say in a nutshell, scala's advantage is that it just has more language features. You can do everything you can do in java, plus more. Case classes and pattern matching dramatically cut down on boilerplate for everyday tasks, type classes allow you to have incredible libraries that would just be too cumbersome to bear in java, etc.
The main reason (and pretty much the definition) to use functional design is that it decreases your ability to make runtime mistakes from not calling side-effecting methods enough, in the right order, at the right time, or too much. Also makes doing things in parallel easier to reason about.