Channels ▼

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.
  • E-mail
  • Print

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






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.