Channels ▼
RSS

Jolt Awards

Jolt Awards: The Best Books


Jolt Productivity Award: Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages, by Bruce A. Tate

Ever wonder what the attraction is to those programming languages that have built up ardent followers? Have you wanted to have the time to compare and contrast these languages with a fair and honest approach? Bruce Tate, author of Seven Languages in Seven Weeks, asked these questions and took the time to find the answers. His answers make up this chapter.

Unlike Andrew Binstock's editorial, which condemns books that hope to teach languages to naïve readers in 24 hours, this book proposes only an overview of the languages to give the experienced reader a sense of each language. In this sense, Seven Languages in Seven Weeks offers a tapas of modern language analysis; small portions offering just enough of a taste to decide whether the selection is good enough for a second helping or even a main dish. Each language is presented with its history (along with an interview with its creator); a quick tour of interesting syntax, conditionals, operators, and features; and a summary of the language's core strengths and weaknesses along with author's final thoughts on his experience. You will have to buy the book to find out which languages the author found most to his liking.

Each chapter's introduction begins with the featured languages being matched with popular movie characters:

  • Ruby = Mary Poppins
  • Io = Ferris Bueller
  • Prolog = Rain Main
  • Scala = Edward Scissorhands
  • Erlang = Agent Smith
  • Clojure = Yoda
  • Haskell = Spock

These character analogies are spot on, and had a profound effect on orienting my mind on how to interact with the syntax and capabilities of each of the languages analyzed in the book. Personally, the book helped me gain a deeper understanding of Prolog and Haskell, enough to prompt me to warrant a closer look. I have also been tracking Scala closely, and Haskell is one of those "when I'm stranded on a desert island" languages to learn. As for Io, I don't anticipate having a need for that language any time soon, but at least now I know what its strengths and weaknesses are and how to write a simple Io coroutine.

Perhaps the reason for Ruby's inclusion into this exclusive club of languages (with otherwise-limited market awareness/penetration, like Io and Haskell) had to do with Pragmatic Bookshelf's heavy bias toward the language. After all, the majority of Pragmatic's titles are Ruby-centric. For those who are already Ruby fans, this chapter is a wash. As for fans of other popular dynamic languages like Python or Perl, they won't find them mentioned anywhere in the book. However, I contend that anyone who feels strongly about such and such language that didn't get included in the book is missing the point of the author's experiment. This isn't a book about cheering on the winners and sneering at the losers. It's about one developer's quest to understand those languages that are making waves in the computing ocean of established, well-marketed languages like Java and C#.

I enjoyed exploring the insights that Seven Languages had to offer, and I commend the author for taking the time to delve into up-and-comers like Clojure and Scala; doing so helped me decide which of these are worth my time to pursue further. The book offers an engaging travelogue with highlights of what to see and what to avoid. Mr. Tate, who wrote several Java books before undertaking Seven Languages in Seven Weeks, should consider writing a sequel, perhaps "Another Seven Weeks with Another Seven Languages" that will examine another batch of languages, perhaps even those suggested in the book's discussion forum (Ada, PL/I ,and Google's Go for starters).

— Mike Riley


Related Reading


More Insights






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.
 

Jolt Awards Video