Acceptable Criticism Of Oo On Wiki

We need to agree on a way to reference criticism of OO concepts on wiki without starting the usual battles. (Unless you believe that OO criticism should not be allowed.)


We need to agree on where to put it, how to put it, how to divide topics, etc.

I am thinking of a "guide" topic that goes something like this:


Modeling Human Thought


If the two or three contributors who seem so dedicated to "criticism of OO concepts on wiki" would, instead, contribute pages describing novel alternatives when they exist or reference existing pages when the topic has already been argued ad nauseum, then the bulk of the battles would cease. A case in point is the exchange that happened on 13-January-2004 at the bottom of ReplaceConditionalWithPolymorphism. The pattern in question is stable, valuable, and widely used. The "objection" has already been argued to death (see SwitchStatementsSmell, for example), and continued harping on it is much more like harassment and shouting-down then anything else.

{There seems to be a double standard. The pro-polymorphism point was repeated without complaint, yet when anti-polymorphic material was repeated, it is seen as "trolling". Let's apply knowledge standards to everybody, not just those we disagree with, please.}

Just make sure you aren't confusing pro-procedural people with beyond-OO people. I think the OO people are missing an important point - the problem isn't to document the whole problem domain of OO, not when OO could be pushed to the side as procedural was. That's my biggest criticism of the OO discussions here - they assume that OO is the way - just because it largely replaced procedural programming. Look to the future and stop arguing the past.

[I don't see that confusion. People who genuinely have something better than OO to offer tend to be listened to and respected here. Show us something better and we use it.]

We could use less of the sort of comments that go like so: "This technique is totally wrong in my opinion. I consider doing exactly the opposite of this to be the right way. And anyway, the premise upon which this idea is built is totally flawed, more or less, depending on the circumstances. See GotoConsideredTheBestProgrammingPracticeEverInvented."

Agree with show a better way. Show specifically how you think something can be done better. List the pros and cons. Then let people make up their own minds.
I think there is also a conflict between people who are trying to figure out what is beyond OO, and those who would rather keep to established standards. Personally, I use OO and procedural when appropriate, but I'm much more interested in what lies beyond OO. It's a ChickenAndEgg? problem - how can we write about future programming models when anything *could* be implemented as OO or procedural?

But you can talk about beyond OO without making the battle about OO. Just move it to a different topic.

Would that make my comments about beyond OO on this page off topic?

No, because the topic is criticism of OO, not a OO topic. Meta comments for a meta topic.

I don't think it's a simple axis. AOP isn't beyond OOP. OOP isn't beyond procedural programming. They are all alternatives with strengths and weaknesses. They can all be mixed and matched in interesting ways.

In a temporal sense they are linear. In a conceptual sense they are not at all. However the temporal aspect has weight as it's likely to be more modern, evolved, and (ideally)integrates new paradigms that have arisen since. I'd still argue that what we call OOP isn't what the mainstream calls OOP.

They aren't linear in time, though. Each paradigm goes through change and growth as hardware grows, problem domains expand, lessons are learned, etc. Lisp could still become the next big thing.


See BeyondObjectOrientation [which hopefully won't be turned into a diatribe about how OO is evil]
I think we're ignoring the 800-pound gorilla in the room - namely, the motivation for the comments. The problems are caused by a handful of people whose motivation is to drown out, shout down, and wear down the rest of us. They aren't interested in conversation, new ideas, or anything else. They are like the creationists who show up at a convention and go from room to room shouting down and intimidating the rest of the presenters. It's aggressive, antisocial, bullying behavior, and it should not be tolerated.

That is how some of us view the OO hype. I remember the Business Week (?) magazine cover proclaiming that programming will become like Legos under OO. OO has been as hyped as any technology I have ever seen in IT. If you go around accusing people of evil motivations, you better clean house first. Focus on arguments and content, not theories about motivations of people. All that will do is lead to name calling. If it is "aggressive, antisocial, and bullying behavior", it should be deleted, leaving the specific arguments behind. That is the purpose of this topic: creating acceptable rules for criticism.

The suggestion that we "focus on arguments and content", and avoid "theories about motivations of people" has been tried and failed. The notion that "the motivations of people" shouldn't be discussed doesn't work in theory or practice. Efforts to exclude "process" communication only force the process content to be projected onto "content" items - distorting everything along the way. There ARE people who, for whatever reason, consciously or unconsciously seek others who are angry at them. Attempting to deal with such a person, without dealing with that person's motivation, worsens the situation for all involved. For example, the subject posts an offensive item. It is removed, as you suggest. The person reposts it, more strongly worded this time, and says something like "how dare you remove my content". That gets deleted. A person like this will escalate their behavior however much they need to in order to provoke the anger response they desire. We saw classic illustrations of this behavior during the Christmas week. No, I think this community very much needs to discuss "theories about motivations of people". It is not just the handful of WikiTroublemakers? who are creating a problem - the underlying contention that we should avoid discussing people's behaviors, emotions, and motivations is also, I suspect, a significant problem.

Here's a StrawMan proposal. Put all the repeated "I feel that everything about oo is wrong and in my opinion we should be doing it such-and-such way" and "the paradigm is all wrong" arguments on a reasonable handful of related inter-linked pages. Create a page OoCriticismsRoadmap if desired. Link to the most relevant page of the group from a few pre-existing pages that discuss the benefits and drawbacks of objects. You're done. If someone other than the original person or group wishes to elaborate or comment, that's fine, let them.

That makes it hard to link to because it is multiple topics. Wiki needs something equivalent to "#" in HTML. If a page says that "polymorphism makes it easier to add new subtypes in one place", it is fair and logical to point out that it makes it harder to add new operations in one place as a counter-point. But a link called OoCriticism? would be too wide a scope and too large to find the part about polymorphism and change patterns.

May I suggest you create a DocumentMode page describing CommonCriticismsOfObjectOrientation? and trust people to find it. The alternative involves putting a link to your rebuttal on every page that mentions OO. That kind of thing tends to be perceived as hostile which generates counter-hostility, etc, etc.

ArgumentsAgainstOop has been around for awhile. This misses the point. These people (five or fewer, I'll bet) want to be perceived as hostile. One of them said, in WikiTroublemakersDiscussion?, that he wanted to be known as one of the WikiTroublemakers?. The comments they add to pages are intended to disrupt the pages, not add to the discussion. They resent the acceptance of whatever it is they choose to attack. The community has provided them space for their counterpoints for years, and that is not enough. So of course those pages should stay, so that those views are fairly represented. But don't kid yourself that it will stop the behavior we're discussing.

For the record, I don't want to be perceived as "hostile". I just want my viewpoint fairly represented and be allowed to provide alternative viewpoints to the various claims made about OOP scattered about this wiki. In my observation, things turn into a flamewar mostly when somebody relies on, or even insists on ArgumentFromAuthority alone. I welcome suggestions to cleaning up the criticisms-of-OOP content. I agree it is messy, but a mess was not my intention. -- top

One of them said, in WikiTroublemakersDiscussion?, that he wanted to be known as one of the WikiTroublemakers?.

Please don't lump all OO-dislikers together as being the same.

The overwhelming majority of the "OO-dislikers" (whatever that means) have been part of this community for years, and present no problem. At appropriate and reasonable places in various pages, they make appropriate and reasonable contributions - and don't need further guidelines or conventions about AcceptableCriticismOfOoOnWiki. The exchanges on this page pertain to a literal handful of people, out of the entire community.

Perhaps the earlier set learned some lessons that the newer crop have yet to. It would be nice to see those lessons documented somewhere.


View edit of February 21, 2007 or FindPage with title or text search