Tuesday, September 12, 2017

Ruby is not perfect

Programmers seem to have, in most cases, an almost 'religious' opinion about the programming languages they use. For many years I've been talking about this and saying this is not only ridiculous, but also dangerous.

When one have this kind of position, defending something beyond rationality, it is difficult to improve this something. No criticism, no change.

I love Ruby. In many senses it is the best programming language I've ever used. And god knows I used many of them in the last 33, since I learned FORTRAN back in 1984.

But Ruby is not perfect. As all other languages, it has its share of bullshit and this post is to talk about one of them.

If you visit this blog here you'll find this strange explanation


So, in Ruby we have 'mutable constants'. And I ask what is the meaning of calling something 'a constant' if you may change its value anytime you want. I don't know exactly what was in Matz mind when he planned this, but this is not good, this is not sensible, in my humble opinion.

And here we are. We need freeze to make a constant really constant. Ruby programmers are always talking about semantics. Now, what could be less semantic than this?

I'm not telling you I'll give up Ruby for the sake of this crazy detail. I'm not telling you that it is a bad programming language. Ruby is still my favorite programming language, along with Javascript... and Java... and Perl... Well, there are lots of programming languages I love, for different reasons.

What I am telling you is... Don't be blinded by the love you feel for your programming language. When you do this, you avoid criticizing it, and this slows down its evolution.