This is degenerating into another "fight page", an intellectual bar-room brawl. Maybe let it simmer around for a month or so, and then delete it.
One of the biggest open issues TopMind insists exists in paradigm debates is about whether ObjectOrientedProgramming is allegedly better because it fits the real world or because it fits the human mind better. For example, according to TopMind, some say that in the longer run OO results in less source code and fewer changes that have to be made per change request. Yet others, in his views, say that it is mostly about making it easier for humans to grok complex systems. TopMind has brought the issue up in this form many times before, but is has been rightly ignored as irrelevant. But he continues to insist think it is key to too many issues to ignore. Whether or not it we resolve this, or at least catalog it well, TopMind will no doubt raise the issue again and again.
I take it from the above edits that somebody disapproves of this topic? Why is it "irrelevant"? The ScientificProcess? demands that we answer. -- top
Why can't it be both? Making the less source code and requiring fewer changes per request strikes me as one of the results of improving the ability of a system to be groked. --WilliamUnderwood
Yes, but that is a secondary benefit. If somebody asked you to demostrate that it made code easier to grok, you would say that it does it because it makes less code and less change effort. The likely followup question is how does it make less code and effort.
It doesn't have to be either of the two (better fits the real world or better fits the human mind). It fits the digital machines we want to build. We make lots of things that are mostly like other things, only slightly different, so specialization is useful. We make things that ask other things to do things for them, so message passing is useful. We want all of the specialized forms to respond appropriately, so polymorphism is useful. We don't want the things we build to break other things we build and we don't want to fuss around with hooking them up every time we use them, so encapsulation is useful. -- EricHodges
"Message passing" can be and mean a lot of things. As far as "specializing", the patterns of differences are not really trees in the real world, and polymorphism is married to trees because it must guarentee only one answer. Sets are the more general-purpose solution in the long run, but poly can't do sets without ugly contortions. A Vulcan would agree with me. Sets better fit the real world, period! SetsAndPolymorphism. I suggest you think heavily about why sets are the better fit. Sets are not built into OO, and that is a huge fault. Note that some OOP fans agree that polymorphism and inheritance are weak concepts for similar reasons. Further, DeltaIsolation overly couples one to the parent. -- top
<Insults deleted.>