In “I don’t want the users knowing that I’m handing them an interface.”, why is the severity “I don’t want” instead of “Users don’t need to know”

interfaces

According to Should interface names begin with an "I" prefix?, I know I should not add prefix "i" to interface because of some reasons.

However, I'm not raising new reasons to support or oppose the prefix "i" on interface. Instead what I don't understand is, why would the post use the tone "I don’t want" in "I don’t want my users knowing that I’m handing them an interface."?

I think the answers like "interface is no much different from an abstract class" is a bit contradict with "I don’t want my users knowing that I’m handing them an interface." : if interfaces really no much difference with classes, why would I still care users knowing if some type is interface or not?

Letting users know I'm handling interfaces may be none of users businesses, but even if users know something none of their businesses, it seems also no harms for users. Why would the severity be "I don’t want my users knowing that I’m handing them an interface." instead of "Users don't need to know that I’m handing them an interface."? What bad actions may take when users know I'm handling interfaces instead of concrete class? Or what are the bad impacts when a user knows a type is a interface instead of a concrete class?

Best Answer

why would the post use the tone "I don’t want" in "I don’t want my users knowing that I’m handing them an interface."

This is a cite from the "Clean Code" book by Robert Martin, a.k.a "Uncle Bob". And though Robert Martin is surely a respectable and experienced software engineer, he is often critized for his tone. Many people think it is too "schoolmasterly", especially in the mentioned book.

In the sentence you asked about, "I don't want my users knowing ..." puts Bob Martin's thought process into the center of the explanation, not the users' point of view. He could have also written "I don't want my software to be designed in a way that my users need to know ...", but that would have been far longer, less striking and less memorable.

My recommendation: just read everything what Robert Martin wrote with a grain of salt, don't take him too literally. His statements and writings are recommendations, not dogmas. Then you can learn a lot from them.