Developer's Reading List
, April 17, 2012 C++ concurrency, web crawlers, Google testing, and more: This month's reading list is packed with great books on interesting topics.
Scala for the Impatient
by Cay S. Horstmann
Scala is the "it" language these days, and so we're likely to see a new wave of introductory books, of which this tome is likely the first herald. The original wave struck in 2008-09, when three books from separate publishers came out with the words "Programming" and "Scala" in the titles. The present book is written by Cay Horstmann, who is the co-author of Core Java, the two-volume Java tutorial that is by a wide margin the best Java instructional material available.
The motivation for the Scala book is that the other intros to the language were simply too long. This one claims to dispense with explaining for-loops and such basics and dig into the unique aspects of these features as implemented in Java. Horstmann succeeds in short, to-the-point coverage, consisting of 350 pages. While in this sense, it's a success, the real question is whether this intro is better than others of equivalent length. And on this score, the answer is no. To my eye, Dean Wampler and Alex Payne's Programming Scala from the first wave of books is a better choice.
Wampler's is almost exactly the same length as Horstmann's intro but contains a much richer vein of information. For example, no code snippet in the Horstmann book that I could find exceeds 7 lines in length. So, essentially, he chose to provide lots of small factoids about a lot of Scala features — and present them in isolation. The reader is assigned the task of stitching them together. Wampler, by comparison, presents detailed routines that intelligently exercise features, orchestrate their interactions, and generate useful results. So while Horstmann teaches you features one at a time, Wampler and Payne teach you the language.
A final complaint about Horstmann's book is the poor quality of the index. An index is an important tool in an introductory book, as the reader is likely to want to refresh his memory when exploring new features or doing actual coding. Alas, multiple entries in this title pointed to pages that did not contain the promised topic, while others contained references where the indexer did not seize the meaning of the text correctly. In sum, I recommend that the impatient desirous of learning Scala use the Wampler book.
— Andrew Binstock

