In this 30-page report from Rebel Labs, the research & content division of ZeroTurnaround, we interview Scala creator Martin Odersky, supply detailed technical analysis on the pros and cons of Scala programming and incorporate commentary by Josh Suereth, author of “Scala in Depth”.

The technical review of Scala’s benefits and disadvantages presented in this report makes the JVM language a compelling choice for Java organizations to explore. Scala’s dynamism should be enough to let you write more concise and intentional code than in Java, but getting there is challenging. The deeper parts of the Scala “swimming pool” are sometimes fun to explore, but can be scary at first. Once comfortable with the simpler part, your Java team can consider taking advantage of advanced features and going further in a purely functional direction.

This looks really promising. Anything that makes Scala more approchable and helps spread the gospel of functional programming is definitely welcome. I really appreciate the "stay away from this" section where the author discusses all of the quagmires of awful that exist in the landscape already. A lot of people who want to learn Scala get into battles with tooling instead of writing code and learning the paradigm itself.

Scalaz was never designed, IMHO, for practical reasons (apart from few cute shortcuts & constructs that everyone's using). Scalaz is an academic attempt to port Haskell monad-based programming style to Scala. It's bound to be dramatically less elegant and usable than in Haskell. These are two different languages and Scala provides (different & better, in my opinion) monad support on language level (map(), foreach(), filter(), flatMap() special handling). Just a quick look at Scalaz monads shows how heavy their usage and rather unwieldy in actual code.

Category theory is rather a required reading for any serious software engineer learning Scala. Otherwise, reasons behind why collections are partial functions (in Scala) will remain largely a mystery... There's nothing hard about category theory and there are plenty of online summaries that provide enough details.

SBT is badly design... so is Maven. Neither are good piece of software. We manage the entire GridGain production with sophisticated Ant-based process. Never needed Maven or SBT. And if we don't need with our software and our size - very few projects would need it too.

Collection library source code is rather informative. I'm not sure what's so scary about this... Rather dumb statement. It's writen by a human beings, no smarter or dummer that you. Why not read their code and learn something - specifically for real-life type-safe programming with Scala.

This is great news and I recommend businesses, especially those that are incapable of distinguishing a good engineer from a bad one, adopt Scala full scope.

I spent the last ten or so years working on a variety of project, but those that were a mess were particularly profitable.

Scala adoption for organisations that don't value their software development staff are going to ensure there's no shortage of projects that need good software developers -- the only thing I'll need in order to do these projects though is a prescription for some anti-depressants, or maybe a lobotomy.

TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations technology projects - with its network of technology-specific websites, events and online magazines.