Charlie Harvey

Seven More Languages in Seven Weeks: Introduction

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.

Seven More Languages In Seven Weeks, Front Cover

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.

  1. My seven weeks need not be consecutive.
  2. But I will try and do it in less than a year this time!
  3. 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!


  • Be respectful. You may want to read the comment guidelines before posting.
  • You can use Markdown syntax to format your comments. You can only use level 5 and 6 headings.
  • You can add class="your language" to code blocks to help highlight.js highlight them correctly.

Privacy note: This form will forward your IP address, user agent and referrer to the Akismet, StopForumSpam and Botscout spam filtering services. I don’t log these details. Those services will. I do log everything you type into the form. Full privacy statement.