A while ago, I was thinking about which programming language I wanted to learn next. At first I was doubting between Scala, Ruby or perhaps Clojure. But I couldn’t really make up my mind. So I decided to pick up Seven Languages in Seven Weeks. This way I was able to take a small bite from a couple different cakes in order to decide which flavor I liked the most.
The seven languages that are discussed in this book are Ruby, Io, Prolog, Scala, Erlang, Clojure and Haskell.
I really liked Ruby and it’s nice syntax as this programming language is not a complete stranger to me.
I had great hopes for Scala, but it kind of left me disappointed. While exploring the syntax of this academic newcomer, I had this constant nagging feeling that Scala reminded me too much of C++. Don’t get me wrong, I do like C++. But while C++ was intended to bridge the gap between procedural programming (C) and object-oriented programming, Scala does seem to bring the same kind of awkwardness as it tries to bridge the gap between object-oriented programming and functional programming. I still find it a really fascinating language to learn, but it kind of fell down in my personal ranking.
The big surprise for me was Erlang. Although it’s syntax has its quirks, this is a truly powerful and fascinating programming language that piqued my interest.
Clojure was kind of was I expected and brought back some fine memories from the small, entry-level Lisp programs I wrote back when I was in college.
While I was reading this book, I briefly jumped into some other programming languages as well. Go, D and yes, even Smalltalk are other programming languages that sparked my interest.
I very much enjoyed reading this book and had a lot of fun trying to do those small exercises at the end of each day. The only down-side now is that the list of programming languages that I want to take a closer look at basically doubled. Oh well, nothing that flipping a coin can’t handle.
I want to end this blog post with the question: What programming language are you learning at the moment?
Until next time.
Marked this book to read.
Last year spent some time to learn scala and F#.
Scala seems not very elegant for me mostly because explicit type annotations while F# looks very elegant thanks to powerful type inference and workflows.
If you like the Ruby syntax and the power of Erlang, you should take a look at Elixir.
I wouldn’t call Scala a newcomer – it was around the block since 2001 and is getting into the spotlight in the last 2-3 years or so. It’s the language I’m learning now, and I consider it very expressive and design of highest quality. For an everyday C# guy it’s pretty mind-bending
I already tried Scala and Haskell, but for now I decided to sharpen my Python skills. It’s not a language that’s hip by now, but it runs on .Net, Java and many other platforms.
It has some functional tools available when I need them and allows me to do solid OO-programming otherwise.
What about Prolog?Have you tried it?
Have you tried VB.Net? It’s an a elegant OOP language and a million miles away from the old VB. Mind you, you’d need 7 weeks just to get your head around the .Net framework, but that applies equally to C# and even F# I guess.
Despite advice to be broad in the use of languages I use C++ for just about everything. I only use other languages as glue for particular libraries that they offer.
Elixir is indeed on my list as well. But I think I would first learn Erlang before Elixir so I’d appreciate this new language even more.
I skimmed through that chapter. It does look interesting but I had difficulties wrapping my head around it in the past, so I did keep some distance while reading the book.
Without offense, if your work is mostly done by libraries you generally use C++ as glue 🙂
Every program can be recreated in other “general purpose” language. I find no urge to learn Java or C# for what i normally do. I see the benefit to know different languages because they bring new thoughts on the table 🙂
But when it is about your day to day tasks just stick to what works for you 🙂
Otherwise i should look in some functional programming in the near future 🙂
I first learnt Prolog back in the 1980s. I think it’s a shame it never took off. Great language to program in. I really like declarative languages and even if you never use it again it gives you a taste of what declarative languages can do. So this is a useful section of the book.
Right now i’m diving in to Python. I’ve been a career-long C# developer so the lack of type-safety is a bit jarring. But aside from the whitespace significance (hate this) of the language, it’s basically C# if you only used ‘dynamic’ everywhere, so I’ve grasped it pretty quickly.
I work with C#/.net at my job but am learning Python