I am going to be learning Ruby, Haskell and Prolog at university. Now, I'm wondering what should get most of my attention. I have half a year to do all three, which means I need to decide on one language to get my extracurricular time. The others I will learn just enough to do very good in the course.
I am familiar enough with Haskell and Prolog to know that learning them will teach me a few very important concepts of computer science. I'm not so sure about ruby.
Going through a few tutorials and introduction, I get the impression that ruby is a lot of shallow magic. Now I'm asking the ruby people: What will I have gained, should I decide never to use it again, after I've spent half a year learning it, that Python didn't already teach me.
This question is not intended to "make the case" for ruby, although I realise this is a potential topic of great argumentation.
I use Python for all my CS stuff now. I have done quite a bit of functional programming with it as well. I am also, already, quite familiar with object oriented programming (in Java, Python and C#). And I shall, as I said, do some Logical programming with Prolog.
What then is left for Ruby to teach me?
To further dilute the question:
I'm not interested in writing fun programs, or cool web applications. I'm just interested in the Computer Science bits. Implementing algorithms, data structures and so on. (Although having fun surely won't hurt)
Ideally, concepts discussed need to be learnable in about 1.000 hours.
I'm not at all interested in Rails. Any technology that hides complexity is, in this case, detrimental.
I can't help this question being argumentative. But an ideal answer to this question will mention a profoundly important concept of theoretical computer science that ruby helps the programmer use and understand in order to gain scientifically adjuvant knowledge.
To candidates I came up with are Meta-programming and Multi-threading. I don't know if ruby is particularly great to learn either of them.
Edit 1:
Being marketable is not a requirement. I'll worry about that after i've got my degrees.
I really don't have any time to learn yet another language. Learning Ruby, Haskell and Prolog is required of me, not a choice.