It is ironical that today when you have a vast body of knowledge literally at your fingertips people seem to have no curiosity nor drive to figure things out for themselves starting from the original sources. Everything seems to be mere parroting and inane opinion pieces with no concept of nuance. People seem to demand a black-and-white (i.e. tell me what is right and wrong) cut-and-dried (i.e. tell me what is settled and decided) answer to all their doubts/queries.
They seem to not understand that nothing in Software Engineering is a definite law but are simply reasonings based on empirical deductions resulting in agreed upon principles/heuristics. Thus meta-principles drive abstractions resulting in concepts which are then expressed via language features. Now, a language feature expresses only those aspects of the fundamental concept that its designer decided as "correct" (i.e. his/her perspective) which is never its full generality eg. Inheritance expression in various languages. So people need to ask themselves "What is the fundamental concept that i am trying to express via this feature?" and slowly work upwards from specific features to general concepts to even more general meta-principles.
They seem to not understand that nothing in Software Engineering is a definite law but are simply reasonings based on empirical deductions resulting in agreed upon principles/heuristics. Thus meta-principles drive abstractions resulting in concepts which are then expressed via language features. Now, a language feature expresses only those aspects of the fundamental concept that its designer decided as "correct" (i.e. his/her perspective) which is never its full generality eg. Inheritance expression in various languages. So people need to ask themselves "What is the fundamental concept that i am trying to express via this feature?" and slowly work upwards from specific features to general concepts to even more general meta-principles.