I bought the book and love it so far; it is not yet complete but the intents of the author are clearly geared toward a rather deep (limited by space though) review of the selected languages;
all this is supported by meaningful projects to get passed the syntax and have a feel of the core decisions that underline every language,
Interesting language choices. I suppose they were picked to provide an introduction to various paradigms. Let's see:
Ruby - Dynamically typed, scripting language
Io - Not sure. Smalltalk-esque object orientation, I guess.
Prolog - Crazy logic programming!
Scala - Functional? JVM? (does he really need this and haskell and Clojure?)
Erlang - I guess this is like a demonstration of concurrency and actors? Or something?
Clojure - Woo! A lisp dialect!
Haskell - Functional, strongly-typed.
I think I would take out Scala and put in something more imperative and different, like Go, C#, or Lua. I might also replace Ruby with Python. I learned Ruby as my first language and I find myself using Python a lot more anyways (Ruby is sexier though, I admit). The idea itself might not be sound. (A language a week? Talk about a crash course!)
I'm tempted to get it anyways. It's a unique approach, so props to the author for that.
Another book taking this kind of horizontal approach explains different programming paradigms rather than concrete languages: "Concepts, Techniques, and Models of Computer Programming" by Peter Van Roy and Seif Haridi (http://www.info.ucl.ac.be/~pvr/book.html). It is IMHO a deeply illuminating book.
some of the section on IO is included in free preview, and looked interesting.
I find it funny that most of the languages had some feature or the like to recommend them and why they are worth learning (Haskell = type system and functional purity, Clojure = a Lisp, Io for prototyping, Erlang for concurrency/actors, etc) but Scala is just "this is a hot new language". Especially since some things got knocked out for not offering anything you could not get in the other offered languages.
I just learned a bit of it for a class in programming languages(paradigms, assembly(simple), prolog, haskell, perl) prolog is a bit of a pain to work with if the problem is mildly imperative in nature. It is very useful if the problem is or can be written in a declarative fashion. That's just my take on it from learning a bit of it for a class though. I am sure if you are a veteran at it you will be able to make it bend to might.
It's a bit like lisp was traditionally. You'll probably never find an employer that will allow you to use it. But it's worth it just to understand a new way of thinking about programming.
all this is supported by meaningful projects to get passed the syntax and have a feel of the core decisions that underline every language,
good work so far!