Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Seven Languages in Seven Weeks Book Review

November 06, 2010

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. Are his discoveries worth your time and money? Read on to find out.Seven Languages in Seven Weeks offers a tapas of modern language analysis; bite size portions offering just enough of a taste to decide if 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 of 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 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 an 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 co-routine.

Perhaps the reason for Ruby's inclusion into the exclusive club of otherwise limited market awareness/penetration of languages 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 a developer's story and his quest to understand those languages that are making waves in the computing ocean of established, well-marketed languages like Java and C#.

I enjoyed learning the insights that Seven Languages had to offer, and I commend the author for taking the time to explore 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 to 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, such as Ada, PL/I and Google's Go.

Title: Seven Languages in Seven Weeks Author: Bruce A. Tate Publisher: Pragmatic Bookshelf ISBN: 978-1-93435-659-3 Pages: 300 Price: $34.95

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.