The goal of this book is to take you (the reader) on an enlightening journey that will challenge the way you look at programming. Using this book alone you won’t become an expert on any of the languages. But the book will teach you a lot more than just “Hello, world”.
In the introduction Bruce explains the method he uses to learn a new programming language and how he needs a deep, fast dive into a language to taste its true flavor. In the book he guides you through seven such experiences.
The languages that are covered in the book are: Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell. Of each of these languages the book helps you to study, amongst other things:
- the type model - i.e. strong or weak, static of dynamic
- the programming model - i.e. object oriented, functional, procedural, logic, or hybrid
- the core features that make the language unique
- and more, that I won’t spoil for you
The introduction comes with the warning that the book won’t be your installation guide. Personally I welcome this as I strongly dislike such instructions in a book. They’ll become out of date and there are at least a number of platforms irrelevant to your situation. There’s plenty of online documentation to cover installation details and there’s Google to find it.
Throughout the book each language is assigned its very own character that matches its distinct personality. As an example of such characterization, Bruce compares Java with having a rich lawyer for a brother. He was fun when he was younger, but now he’s a black hole that sucks away all the joy.
The book is in my collection for about half a year now. The moment I received my copy I started reading the first chapters about Ruby and Io. I played a while with Io and got to write a small BDD-style test library for it.
Last week I picked up the book again, from the start. In addition to working through the languages by the exercises from the book, I’ll write an article on this blog about how I experienced the language. Also I’ll try to stick with book’s schedule of doing 7 languages in 7 weeks.
Some of the languages I’m already familiar with, others are completely new to me. I am excited to get cracking at the languages and experience how it is again to be a noob, and learn all about them.
I will see you in a week with a post about the first language, Ruby.