Beyond Object Orientation

What's beyond Object Orientation?


I don't have a name for this theory, but I'd argue that an experienced developer's definition of OO is far from what is taught in the mainstream. The mainstream tends to think of the animals, simple geometry examples - maybe with the GangOfFour patterns, but are a far distance from the Xp practices that are similar but non-isomorphic to mainstream OOP

Do you mean where the emphasis is on combining and delegating behaviour rather than building elaborate inheritance hierarchies?

I think so(I can't quite articulate it). I mean that OOP is taught to be done strictly one way. You *MUST* practice encapsulation, polymorphism, inheritance, etc. In practice we know that hundreds of get() and set() methods aren't helpful. We know that polymorphism can be confusing if not leveraged right. We know that inheritance can be a poor substitute for good object interaction. Basically this wiki has a much more balanced/experienced view on OOP.

I also mean that programming moved from explicit requests(procedural) to abstracted requests(OOP). OOP on this wiki seems to push past that into the more complicated disembodied aspect interaction design. It seems rooted in OOP, but it's really something different. I just can't quite put my finger on how it's different. It's light years away from the "OOP" that many seem to practice - and it's not due to just developer experience, it's something at a higher level than OOP. . . actually it makes me kind of excited to think about. . . I guess something beyond OOP would need to follow an IterativeProcess? to get there. It just seems that it's so far beyond where it started that a new name may be needed.

I think of this as looking beyond Isa and Hasa relationships to the stuff the articles at ObjectMentor [http://www.objectmentor.com/resources/articleIndex] are concerned about.

[Or the stuff smart folks would discover about OO if they weren't promoted into management first.]

"I guess something beyond OOP would need to follow an IterativeProcess? to get there."

I think it will follow more the path laid out in TheStructureOfScientificRevolutions, vis a vis KuhnParadigmShift. Iterative in one sense... people will try new techniques bit by bit. But essentially not iterative because you have to more-or-less reject the old paradigm to really get your head around the new one.

Hrm. I read the ObjectMentor stuff - I can't decide if it's clean & obvious - or void of substance. There are some articles about patterns & frameworks, but generally speaking, the site is a weak shadow of this Wiki. The shift from procedural to OO probably qualifies as a major paradigm shift, where the benefits are still being debated relative to procedural. The shift wasn't that big though, and most programmers use a mix of procedural and OO techniques, not just one.

If history repeats, the nature of the paradigm shift would have the following properties:


When doing ObjectOrientation right, it feels a lot like FunctionalProgramming.

User interfaces are generated on the fly and you don't care where the data comes from and where it goes to. Data takes care of that.

-- GuillermoSchwarz


See: FutureOfObjects, ArgumentsAgainstOop, ImprovementsToObjectOrientation


CategoryObjectOrientation


EditText of this page (last edited January 21, 2007) or FindPage with title or text search