Seven Languages in Seven Weeks Book Review
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.