/home/vineet

Erlang is next, Clojure shall wait

A few weeks back, when I was close to completing chapter 1 exercises of SICP, I had decided that after completing this chapter, I would take some time off it to learn Clojure. If you ask why Clojure, then frankly speaking, because it's being talked about a lot these days. At the same time, having watched a couple of brilliant talks by it's author Rick Hickey and having come across some of the cool stuff that the Clojure fellows are building and the way they are using emacs for it, it makes me believe that Clojure completely lives upto the hype. BTW, I have started loving lisp courtesy of Scheme and Emacs.

Today I have completed the SICP chapter 1 exercises and as planned I am going to start learning a new language. This new language is however Erlang and not Clojure!

So what happened? Last week I felt a strong urge to learn Erlang. I thought, learning some basics would do no harm and went ahead with LYSE. On second thought, I realized that diving deep into erlang at this point of time might not be a bad idea after all. Over the last few months I have been working with the Ejabberd XMPP server at work. With no significant erlang knowledge I have been able to configure it greatly (All credit for which goes to the ever helpful ejabberd community and it's well documented config file!). Not only that, I have been able to help "newer-bies" on the ejabberd mailing list in whatever way I can for eg. pointing them to documentation etc. But to someone like me, an outsider coming from a Python background, Erlang looks like a weird language with a weird syntax (IMO more weird than what lisp seemed at first). Not knowing Erlang can be very limiting if I want to seriously achieve anything with Ejabberd. So I have come to the conclusion that if I don't learn erlang now, it would be like being dishonest with both myself and ejabberd!

On the otherside, if I learn Clojure, one of the following things are likely to happen

  1. I will have my aha! moments in Clojure and after solving some exercises I never really use it for anything non-trivial.

  2. I would absolutely fall in love with Clojure and want to use it more and more. But there is a slight problem here. There is no real chance I can start using it at work anytime in the near future because it takes a lot for a team of programmers to embrace a non-mainstream language like Clojure. Sure, I would use it for a couple of side projects but from my experience, the chance that these projects would solve a real problem is rather remote.

Did you notice that I haven't mentioned "Not liking Clojure" as one of the possibility? That's because I don't think I will not like it :) again because of the same reasons I have stated earlier.

So my next language is going to be Erlang. Well, atleast I am going to make a determined effort for a month (while trying hard not to give in everytime some Clojure library or article gets featured on Hacker News!) But I will continue to solve SICP exercises as I find it relaxing as an after work activity. All pending work on my Python, PHP, Javascript side projects gets done this weeekend and in the coming week, looking forward to meet you erlang, Clojure shall wait.

---
comments powered by Disqus