Michiel Overeem

bookreview - Seven Languages in Seven Weeks by Bruce Tate

Seven Languages in Seven Weeks by Bruce Tate

I love to try out new programming languages and different to ways to develop software. But my time is limited. So it is hard to really learn new languages and keep up with what happens outside of my comfort zone (I develop mostly in C# and JavaScript). So a book that promisses to learn you seven languages in a short period makes me curious.

The concept of this book is great: show you enough of a language to give you an idea, but keeps it short enough to not make you bored. Programming language books often become lists of syntax rules and library calls. This book gives you enough to become interested and curious, but moves on before you become bored.

My reaction on every one of the seven languages:

Ruby: The language for cool web developers. What I like is the dynamic aspect: quick prototyping and developing of software. Together with the Rails framework it really blends well with the client-side aspect.

Io: Prototype based, so you recognize JavaScript aspects. Not really useful in a commercial environment, but great to learn the prototype based stuff. Hard to find stuff about this language through google :)

Prolog: I already learned this during college, but it is nice to revisit. Prolog really makes you think about programming. Solutions become more declarative, instead of imperative.

Scala: The new language for Java developers. I like how it blends functional and object-oriented. But with C# becoming more functional, it didn’t capture my interest.

Erlang: A functional programming language. It strength is in the concurrency library. Didn’t trigger my curiosity.

Clojure: Awkward syntax because of the prefix notation. Lots of parentheses. Looks a bit to academic.

Haskell: Did not really put a lot of time into this chapter. During college we did a lot of Haskell, so nothing new for me in this chapter. The language still looks to academic, but seeing a number of dutch startups using it (http://tupil.com/, http://www.silkapp.com/), it still triggers interest.

The downside of this book is that it doesn’t show you how to use these languages in real world problems. You should develop larger applications with these languages to really get the feeling. What’s next? I hope to dive into Ruby and Clojure, because these did trigger something. Not so much with Io, because I do enough JavaScript programming. Scala and Erlang do not really have my interest either. Haskell and Prolog are out, because I did that in college already.