Execution in the Kingdom of Nouns the market works the way it's being pushed. you should read the interview: Dennis Ritchie, Bjarne Stroustrup and James Gosling. "[Java] owes much of its initial popularity to the most intense marketing campaign ever mounted for a programming language." - Bjarne Stroustrup. you don't hear me saying anything against C++, just Java. the reason is Java forbids, but in C++ you can program in any fashion you like. you can even use it as a case tool, as you said. did you meant case tool of other non strict OO languages too? like LISP, FORTH, C, Rust, Go, Kotlin, JavaScript, Lua? boy, compared to them, Java is a real prison. one saying that comes to my mind involving OOP and especially Java is "never trust a bald barber". you've built your world on inheritance and forbidden multiple inheritance. shouldn't multiple inheritance be the pinnacle of OOP? well, if that is so foul do you think that single inheritance can be divine? when i say you i don't really mean you in person, i say it in plural. industry Java lobbyist, advocates and all the below, Java evangelist, Java minions and least Java hipsters. i don't have anything against you personally, in singular. you alone don't bother me. program in Java if that is your preference. you may have already noticed, it makes you a better OO programmer if you do, that there are no objects. it is syntactic sugar. the size of the object is the sum of the data members + some waste, padding, alignment, a pointer here and there, whatever the JVM needs to do to make it work and look like OO... the functions are static and generally have one instance. they are just functions that take an reference of an instance of the class data type. there is no object utopia there. "And C has been adding OO features for years." your quote. you shouldn't have said this. it lowers the excitement of arguing with you, because it's not true. there is no sign of C adding OO anything, quite the opposite. some C compilers have a pure keyword for the functions and i believe that will become a standard feature in the years to come. much like the pure functions in FP languages. although, because Dennis Ritchie the genius made passing by value the dafault way of pushing arguments to a function and returning, no keyword is needed for working with pure functions in C. just follow the rules of pure functions. but only if you wish... "Java is the most distressing thing to hit computing since MS-DOS." - Alan Kay