This book is intended to be a follow-on from books such as "Programming In Scala
". It concentrates on the "Why?" questions rather than just "How?", so if you are looking for an introductory Scala text, this probably isn't it. If you are are a Java developer the best way of describing this book is to say it's intended to be the Scala equivalent to "Effective Java
". It uses a similar style, being partly based around 14 "Rules for Improving your Scala Programs" listed inside the front cover. It explains how to combine advanced features together, such as Types and Implicits, as well as explaining any potential pitfalls that you need to be aware of. It is also the only Scala textbook that I've seen that attempts to explain Monads in any kind of detail.
I'd like to say that this book should be on every Scala developer's bookshelf and that it will become a Scala classic in the way that "Effective Java" is for Java. However there's one huge problem. The book is completely riddled with basic proof-reading errors - spelling mistakes, code examples that are syntactically wrong and even entire repeated paragraphs. The forum for this book contains a lot of pre-print feedback on these errors, it is inexcusable that the publisher, Manning, seem to ignored them and printed a book that's so full of errors. I've tried my best to ignore them, but there are so many that in the end I've returned the book to Amazon for a refund - it just isn't what I consider to be acceptable quality for a book that's relatively slim (270 pages) and relatively expensive.
Whilst this book fills a clear gap for users of Scala, it's has too many basic production errors for me to be able to recommend it in its current state. My advice is to wait until Manning publish a second edition, hopefully they'll actually edit the book properly as part of any such update.