snapsvg

2012-04-24

How to Rant About Languages

Opinions are great. They make the world go around. Everyone hates things they don't understand, unless they are intrigued, in which case they learn about it instead and then stop hating it because they don't understand it.

However, you can understand something and still hate it.

When constructing a rant, I find there is one key feature it should have that differentiates a valid complaint from an opinionated spiel: if you can replace the subject of the rant with any other subject and not introduce factual inconsistency, your rant is invalid.

Here's a rant about PHP http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/

Here's a rant about Perl http://www.schnada.de/grapt/eriknaggum-perlrant.html 1

You will see that if you replace PHP with, say Python in the first rant, the rant becomes factually incorrect. Sure, many of the principles remain true - that consistency is good, that lurching obliviously through errors is not a great idea - but the fact that Python does those things is provably false. This makes a good rant.

But if you replace Perl with Python in the second rant you will find that it is true of Python as well. And C. And PHP. And French if you care. This does not make a good rant, because it's boring, and no one can take away anything constructive from it.

Please, if you must rant, make it specific to your hated language. If one of the people who writes the compiler for that language reads it, they should be able to take away from it something that they can fix. If you can't construct a rant about actual, deniable problems with the language, then you don't know enough about the language to have an opinion in the first place.

1 Actually about PERL, that dot-com-boom all-purpose no-knowledge-required hacker language that attracted all the awful coders like flies around shit and produced some of the most godawful, buggy, unmaintainable tripe only matched by the same principles being core to PHP.