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.
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.
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.
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.
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,
11 comments
[ 3.1 ms ] story [ 38.1 ms ] threadRuby - 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.
They chose/described Io as being the The minimalist prototype language
ref: http://www.pragprog.com/news/core-data-in-print-seven-langua...
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.
http://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf
- F# (my fav)
- ocaml
- common lisp
- scheme
- python
- lua
- factor
Q: How many Prolog developers does it take to screw in a lightbulb?
A: No
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!