Thou shalt not make unto thee any graven image
When I was a kid, we had too few influential opinions: “Dad says,” “Britannica states” and “I’ve tried, it hurts.”
Seriously, teachers were not just throwing their private opinions on things onto us; Newton laws were not shared through 140-symbols message one Saturday’s evening. There were lemmas, theorems and they all were proven. The only thing that was given to us as a must, was an axiomatics. And you know what? The amount of axioms, needed to derive and prove everything else in Euclid’s geometry, is five.
Nowadays we have many more authorities. Many more axiomatics. Many more postulates in each.
Since currently I mostly work with Ruby, I will provide the examples from the Ruby world, but I believe they are applicable to almost any other area of choice. Including fashion, copywriting, food, younameit.
There is a tendency to listen to what people we respect use to say. Which is good. In the modern era, any random phrase, occasionally dropped in any bloated discussion immediately becomes public. Which is bad.
This happens because arguing is being done through the web, in shared access mode. When an arbitrary Einstein had accidentally had said gibberish (which I believe happened to him quite often,) it was not spread immediately over the millions of followers.
When an arbitrary DHH has had behaved the same way, it is. Less famous people take any word from there as a word of Holy Truth, carved in stone. There is the only problem with this approach: people can not constantly say wise things. Those who do rare do wise things and they never become opinion makers.
Turning back to Ruby, now there is a trend to talk about “monkeypatching is an evil,”
“the code must be as clear as possible,” “never use eval
, it hurts” etc. These
things are being repeated as a mantra, as a spell to cast to call the Gods of
the great code.
The above is a bullshit.
Whether the developer is so dumb, that it needs to be guarded by artificial restrictions, she should go switch to go (excuse me :) or use any other technique to improve the skills. Cutting ruby’s natural beauty by suppressing the greatest features like monkeypatching, re-opening classes and family is kinda security by obscurity. It is hazardous, because developers become even more stupid than they are currently. The only way to improve the code quality is to choose the language that one feels comfortable with and then use all the features it provides. That’s how things work. Nobody buys a Ferrary F-50 to drive at most 50 MpH just because it’s dangerous. Those bewarers buy Fiat 500, and that is the right choice.
But wait, one meticulous reader should ask me here. John A., Jack B. and even
Joanne R. said we should not use eval
. Well, GOTO 1
, please.