To jump on this bandwagon, no. From personal experience, FP concepts only clicked for me when I was forced to use them. Scala always has that imperative escape hatch; can't think of how to write this immutably? Just make it mutable and move on. And the language is huge, with a lot of OO bits you need to learn and work around.