File Size: 1803 KB
Print Length: 588 pages
Page Numbers Source ISBN: 1491949856
Simultaneous Device Usage: Unlimited
Publisher: O'Reilly Media; 2 edition (December 4, 2014)
Publication Date: December 3, 2014
Sold by: Digital Services LLC
X-Ray: Not Enabled
Word Wise: Not Enabled
Lending: Not Enabled
Enhanced Typesetting: Not Enabled
Best Sellers Rank: #211,579 Paid in Kindle Store (See Top 100 Paid in Kindle Store) #25 in Books > Computers & Technology > Programming > Functional #88 in Kindle Store > Kindle eBooks > Computers & Technology > Programming > Java #295 in Books > Computers & Technology > Programming > Languages & Tools > Java
First let me say that scala is a very tough language to learn, it has a lot of tough semantics in it. However, if you learn it, you could dish out code faster than any java 8 developer. I'm going to try very hard to not make this a review of scala the language. Even though I like scala in general, I could easily write several pages of criticism for the language.In general, this book is great and very thorough. The authors went into a lot of detail on many topics. I would highly recommend this book to anybody. However, I'm partly saying that because the scala-lang website documentation is old, insufficient, and completely out of order.That being said, there are some parts that are far more confusing than they need to be. The author has a bad habit of showing you a feature in scala long before he explains it, and that is why I decided to give this four stars instead of five.Chapters four (pattern matching) and five (implicits) were especially difficult to follow because the authors kept using language features before they explained them. I had to read each of those chapters twice before I understood them.- They show you implicit type conversions a whole ten pages before they explain them (shown on page 139, explained on page 149). So of course I spent a half hour trying to understand the example before giving up.- They start using '+:', ':+', and '::' in chapter four before they explain them.- They use infix notation for types long before explaining it.- Their explanation of "
This will probably come across as a harsh review of the book but I want the potential buyers to know what they're getting into when they buy this book. Just to put into context of where I was when I purchased this book: I consider myself a seasoned software developer; I've adapted a functional way of doing Java development since the introduction of Google Guava pre-v8 and adapted the native lambdas and streams as soon as Java 8 became ready for prime time. I have also written software using Groovy but not as large scale.Now on to the review of this book. As other not-so-positive reviews has mentioned: this book goes to the deep end way too quickly, introducing advanced concepts without much explanation and by the time it finally (tries) to connect the dots, the reader is already drowned in confusion and frustration. Just an example, it introduces Akka actors in the beginning chapters. Yes, I know! The very essence of Erlang thrown right on your face when you barely went through the book's "hello, world" example! It kind of feels like Tom Cruise's character in "Edge of Tomorrow" on his first day on the battle; you're sent to kill these horrific-looking Cthulhus when you can't even disengage your weapons safety switch.Scala is a *difficult* language as it is already, with all of its nuances and enough syntactic sugar to cause diabetes, and this book does not help so much in getting the reader learn at a good pace. I literally found myself reading sections more than twice trying to decipher what I've just read. I felt dumber every time I put the book down to resurface.The authors are clearly smart and are Scala experts.