Hate is a very strong word that you should not choose and use for libraries, APIs, design, language, etc.
There are two primary reasons for this:
1. These are just abstract concepts. Hating them brings no benefit. It will only eat me up from inside.
2. I may have to deal with them and if my psychological association with them is of hate, I won’t be able to do my job properly. I don’t control the decision of what language or tool is adopted or needed in my job.
For example, I don’t like the syntax of Pearl and I’d rather avoid it but I can’t say I hate it. I’ve worked with it in the past and may have to deal with it again in the future.
Similarly, I don’t like the variable naming convention of Go e.g. v,ok = m[k] but I have to deal with it now and I’m able to write cryptic code like this even though I don’t like it because I don’t hate it.
The same goes for singletons, goto, statics, globals, etc.
Hate in my worldview is appropriate for things like injustice, oppression, violence, racism, sin, promiscuity, drugs, etc.
-This article was from Muhammed Hasan Khan .