The Fatal Flaw of Ownership Semantics
How confused can one person be?<p>(Also: what distinction is being made between &quot;oriented&quot; and &quot;orientated&quot;, and why?)<p>The author appears to believe that the analogies used to invent convenient names for language constructs are supposed to really <i>be</i> the construct, rather than a shorthand description.<p>Language features, once they map to actual semantics, become pure mechanisms with their own ironclad logic, with only an analogical relationship to whatever concept motivated and, usually, named them.<p>Thinking in terms of the concept, or (worse) the word chosen to refer to it, as the author does again and again, can only generate confusion.<p>The author is also confused about the role of inheritance in C++. Unlike in Java, which offers practically nothing else to organize a program, in C++ inheritance is wholly optional, and is typically used only where it solves a specific problem.<p>The author further confuses 
regular and virtual member functions, and their respective roles in design space.<p>The sorts of confusion seen here are quite common in philosophy, which has great difficulty staying grounded to facts of experience, something I think Wittgenstein complained of. In programming most of us don&#x27;t have that problem, because the facts of problems to be solved and, moreso, of the physical machines we use in solving them provide ground truth.<p>Computer Science perennially tries to cut itself loose from that ground truth, but is always brought to heel by the demand of its graduates for employability.