Jun 292012
I purchased the book Seven Languages in Seven Weeks from The Pragmatic Bookshelf earlier this week. I’d heard about this book in multiple blogs, and the languages it covers:
- Ruby
- IO
- Prolog
- Scala
- Erlang
- Clojure
- Haskell
are all “hot” languages that I thought it would be good for me to have some familiarity with. I’ve got about seven weeks left before classes begin again in September, so this seemed like the perfect time to try this.
Today’s task was to install all seven languages. I’m going to be away from the Internet at times, so I figured I had better download all the language environments and make sure they are working, then I can work on the exercises whether I have network access or not.
I’ll try to write more as I work with each language.
Ooh! I got the book as a birthday present but haven’t worked it yet, so I’m looking forward to your notes! Maybe they’ll nudge me to do the same.
In all honesty I think Concepts Techniques and Models in Computer Programming is probably a better alternative to Tate’s book. Really, one can’t know a language in a week so the presumed reason to do seven languages in as many weeks is to get some familiarity with the paradigms those languages offer. CTM uses Oz as the teaching language, which supports all of the paradigms in those seven languages, as well as supersets of them. For example, it covers deterministic threaded concurrency, actors and monitors for concurrency models, all of which aren’t coherently modeled in those languages. It also covers distributed programming in those models as well. IMO, it’s really the concepts that are the most important part of any language, and the benefit of CTM is using a single language lets you jump right into the next concept rather than have to start back at Syntax 101. I think teaching a course based on CTM would be a great idea too!
Malcolm,
I had not heard of that book – I’ll check it out.
You read my mind about teaching a course with it. I had thought that Seven Languages in Seven Weeks might be a great foundation for a course, but maybe CTM will be a better choice.
Thanks for paying attention and making suggestions!
A class based on CTM would be fantastic. The Oz VM can be somewhat of a pain to get setup, so if you did do a class I would get it running on a VirtualBox VM and offer that as how people should run it.
Here is a great poster from one of the authors of CTM that I love:
http://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng108.pdf
And keep up the good blogging! I write occasional scribbles here: http://functional-orbitz.blogspot.com/