Name: Anonymous 2014-11-22 6:58
OOP "inherently anti-modular".
You see, in object-oriented programming (as opposed to class-oriented programming like C#) objects' structure is mutable. You can add, remove and modify slots and methods any time you want. But what happens if one imports an object from another module and expects that object to have a method
You see, in object-oriented programming (as opposed to class-oriented programming like C#) objects' structure is mutable. You can add, remove and modify slots and methods any time you want. But what happens if one imports an object from another module and expects that object to have a method
hax
of the type Anus -> HaxedAnus
? That's right, that method could disappear at any time, or it could change to an int -> ()
at any time (e.g. as a result of sending other messages from that module), and everything breaks down. So in OOP, a module can't really export a reliable abstract specification of itself. The only thing you know about another module without seeing the implementation it encapsulates is... nothing! That's why OOP is indeed inherently and by design anti-modular.