Back in 2011, I took up the challenge of learning Seven Languages in Seven Weeks. The book is Bruce Tate’s tour through seven of the most interesting languages about.
I learned about concurrency models, functional programming and the unique qualities of Ruby, Io, Erlang, Scala, Prolog, Cojure and, of course, Haskell — which has perplexed and delighted me ever since.
I eventually finished working my way through the exercises and blogging about it in early 2012, almost a year after starting.
The experience was rewarding as well as challenging.
So, by way of a New Year Thing ™
, I got hold of the followup book, which is imaginativley titled Seven More Languages in Seven Weeks. Over the next weeks and, let’s face it, in all likelihood, months, I shall blog my experiences of working through the book.
About the book
The original book was a solo work, and was very well received. So well, in fact, that it spawned a series, featuring Seven Concurrency Models, Web Frameworks, and Databases (all as you might imagine in Seven Weeks
). The new volume is a collaborative effort with other series authors contributing. Those authors are Fred Faoud, Ian Dees and Jack Moffit. José Valim (the creator of Elixir) contributes a foreword.
The languages are another interesting bunch, most of which I know little or nothing about and some of which I am particularly keen to fiddle with. In the order in which they appear in the book, the languages are Lua, Factor, Elm, Elixir, Julia, miniKanren and Idris.
The only one which I have typed a line of is Elixir, the dynamic, functional language with a ruby-like syntax built on the Erlang VM. I recently read Introducing Elixir in the course of reviewing it for FLOSSUK. Elixir is a great language which I am very excited to play with more.
Another language that I am keen to take for a spin is Idris. I have tried watching a video about dependent typing, but it made my brain melt a bit. Writing some code can often have the effect of de-intensifying brainmelt. Nevertheless, I suspect that Idris will be the Haskell of this bunch for me. And I look forward to that challenge.
I have seen a presentation on Elm, which is lets you write javascript in a functional reactive style. It sounds exciting.
Julia and Factor I know nothing of. I know that miniKanren is some sort of logic programming tool that can be implemented very simply in Scheme. But that is all. I haven’t played with Lua yet, though I have seen it used in places where I might use Perl so it will be interesting to learn about Lua’s advantages.
The rules
It is sometimes good to fix some constraints when attempting a project. These shall be my rather minimal set.
- My seven weeks need not be consecutive.
- But I will try and do it in less than a year this time!
- I will try all the exercises, and blog code for ones I solve.
That’s enough rules, watch this space for more.
Oh, and happy new year!