If programming languages were music genres

:: programming

There are quite some posts out there that compare programming languages to something else, like religions, rock bands, types of women … There is a compilation of these over at Lambda the Ultimate.

One comparison that I find missing is that of programming languages to music genres (maybe the “Subcultures” post was simmilar, but it seems to be a dead link now). This is the more surprising since it looks like developers tend to argue about their favourite languages just like most people about music: everyone knows it is a highly subjective preference, but no-one escapes trying to convince others that they are not listening to the “right” music!

So, here is my (completely subjective) view on programming languages as music genres:

  • C: punk rock It only has three chords, it was born in the late 70’s, and, despite several reports to the contrary, it is not dead yet.
  • C++: heavy metal It claims to be similar but more technical than C, it is subdivided in dozens of different subgenres that you will never totally master, and despite the whole technical allure, at some point you start thinking it is a bit commercial and superficial.
  • Java: techno No one likes it really, but peer pressure drives you at some point to go to a place where they are playing it loudly, and you have to do as if you enjoy it.
  • Python: blues rock It does what C does, but slower and with one and two more chords thrown here and there. Everyone likes it for a while, but then, after some hours of listening to it, you start wondering if there is something else.
  • Ruby: reggae Coming from an exotic place, it has gained mainstream acceptance, it is as slow as Python, and people in that scene tend to regard themselves as cool without further explanation.
  • LISP: classical music Someone in a position of authority told you long ago to learn its basics because it was important for your education, you thought at the time that it was a hateful and obsolete past-time, but as time goes by, you go back to it and find comfort in its beauty.
  • Haskell: mathcore Not everyone knows it, and those who do think they are some kind of elite. It is 100% faster and more complex than anything else out there. It is several layers of purity removed from C, although they share some distant roots.
  • Erlang: world music A lot of different musical styles thrown together and whose unifying trait seems to be that, apparently, very few people listen to them.
  • Clojure: hip hop The base is made with the same tools as techno, but with old soul records played on top. Who would have thought that those sweet performers from Motown sounded so aggresive when played with a bad attitude?
  • Scala: rap rock It tries to bring together the best of two worlds and it largely succeeds. The hardcore fans of each camp will deny there is any need to blend their styles together, but from time to time find themselves listening to it and nodding.