Konrad musial

https://medium.com/@konradmusial/why-oop-is-bad-and-possibly-disastrous-e0844fa96c1f

https://medium.com/@konradmusial/why-object-oriented-programming-is-awesome-92e8578f450a

pragprog.com
pragprog.com tell don't ask


 * Procedural code gets information then makes decisions. Object-oriented code tells objects to do things.— Alec Sharp ..The fundamental principle of Object Oriented programming is the unification of methods and data. Splitting this up inappropriately gets you right back to procedural programming....(from book Smalltalk by Example)

Methods are procedures which take the struct they are embedded in as their first parameter, spawning a restricted global that is reconstrued back into pseudo local state via the math of category theory a branch only accessible after learning linear algebra, real analysis and functional analysis. Imagine if Topologists were to convince society to replace their kettle connection with a fifty meter ripcord.

According to Design by Contract, as long as your methods (queries and commands ) can be freely intermixed, and there is no way to violate the class invariant by doing so, then you are ok.

Methods don't have the rank of Sergeant Major, they are procedures which take the struct itse struct they are in as their first parameter. These procedures can all other procedures with each able to change the values of the struct variables(mutating state), basically a restricted global.

from getters setters stackoverflow and same thread

links
http://stackoverflow.com/search?q=getters+setters

http://www.bradapp.com/docs/demeter-intro.html

oop