Book Review: 7 Languages in 7 Weeks (Bruce Tate)
I haven't done a book review in quite a while - so I thought it might be time to do one again. I have chosen Bruce Tate's "7 Languages in 7 Weeks". Bruce has written several books before that I found pretty interesting like "Bitter EJB" or "Better, Faster, Lighter Java".
I believe learning programming languages is a good way to improve as a Software Engineer - and it is one of the recommendation from "The Pragmatic Programmer: From Journeyman to Master" by Andrew Hunt and David Thomas. Even if you don't use the language in your everyday work you will get a different perspective on software development and learn new idioms.
In particular if you are used to Java it might be worth investigating a few new languages - especially those that run on the Java Virtual Machine (JVM).
Bruce covers the following languages:
- Ruby: the famous OO language
- Io: a prototype-based object-oriented language
- Prolog: a logic language
- Scala: mixes functional and object-oriented concepts on the JVM
- Erlang: an almost functional language - used for the implementation of RabbitMQ, CouchDB etc
- Clojure: A LISP-like language for the JVM
- Haskell: A pure functional language
For each language there is an introduction and three sections explaining the concepts. The final section wraps up what has been learned and shows strength and weaknesses. All of the material is pretty hands on. I found the best way to use the book is to read it while sitting at the computer so that you can immediately try out what the book talks about. Actually I bought the eBook. So I have the PDF open while I can type in stuff in another window. The book also contains some small exercises for self-study.
The book is very helpful to get started in the languages. The exercises are simple and give you an achievable goal to work towards. It is easily possible to work through the book in much less than 7 weeks - which is a good thing. The exercises are probably good for one or two hours each. The choice of languages is good: Some more academic ones like Prolog or Haskell, some that are currently hyped like Scala and Clojure. I was surprised to see Io on the list and I think JavaScript would have been a better choice, in particular with the Node.js framework. Also I am missing pointers for a deeper dive. Also frameworks like Lift for Scala or Rails for Ruby might have been worth mentioning. A language always comes with a set of tools and frameworks. So looking at the language in isolation is a good start but then you need to care about the other parts as well. So maybe that is beyond the scope of this book.
Bottom line: This is a great, very hands-on book that I would highly recommend if you want to see what is currently going on in the programming language space or if you are just curious and want to broaden your horizon.
Labels: 7 Languages in 7 Weeks, Bruce Tate