http://qs321.pair.com?node_id=357959


in reply to Implementing a Mixin Class

<heresy>

As far as I can tell, mixins are yet another artifact of the mistaken belief that modelling The Real WorldTM inevitably leads to better programming constructs.

The OO pioneers, struck by the apparent universality of abstraction and specialisation, and lured on by the taxonomical success of the biologists, had one key success, the creation of a powerful meme; the notion that object oriented methods must be pure in their conception, untainted by so called procedural thought.

This inevitably leads us to the current vogue; that to claim legitimacy, every new OO invention must have an appealing analogy in The Real World.

And mixins, by all accounts having their origin in an icecream store, and being as they are inherently an introduced novelty, are an indication of the extent to which the theorists are willing to embrace the farcical for the sake of conformance with the aforementioned meme of purity.

Mixins allow the would-be purist to program however they damn well please, all the while intoning the virtues of purity with a straight face.

</heresy>

 

Replies are listed 'Best First'.
Re^2: Implementing a Mixin Class (please explain?)
by adrianh (Chancellor) on Jun 02, 2004 at 17:29 UTC
    And mixins, by all accounts having their origin in an icecream store, and being as they are inherently an introduced novelty, are an indication of the extent to which the theorists are willing to embrace the farcical for the sake of conformance with the aforementioned meme of purity.

    That's not really fair. The name has its origin in an ice cream store (as did other puns in the Flavors language, like having 'vanilla' as the name of the base class), but I don't think anybody can seriously say that this is any sort of real-world metaphor for the language.

    Mixins are just one way of decomposing a system. Sometimes appropriate and sometimes not.

Re: Re: Implementing a Mixin Class
by flyingmoose (Priest) on Jun 02, 2004 at 13:42 UTC
    Exactly, I'm usually stricken with confusion when I see the latest in OO design or features being pushed -- design patterns were sometimes obvious but sometimes overblown -- often just ways of making bad design more politically correct. Ah, yes, it's a Drunk Hippy Inspector Pattern! Or when they cover for feature-creep or inheritance-tree-sprawl (aspect-oriented development). Mixins are just another, when we really have to ask, are we just coding this to thump our chests or is there a simpler, easier, way? Usually there is.

    If it looks like I'm bitter, then yes, I am -- I'm tired of "architects" without a clue as to how to write maintainable code getting paid 3x as much as the folks that actually do real work, and all the time they are making easy things harder to maintain, not easier. I went to school thinking software architecture was the coolest thing ever. Reality has taught me otherwise. The need for new OO-isms (mixins, the need to quote GoF daily, AOD, reflection, etc) are usually a coverup for a basic design flaw somewhere in the program. Keep it simple!

      I understand your anger, brother.
      Think TIMTOWTDI about it, even if you got the feel of nonsense coming up: Let everybody build their own stylish seven-wheel-bycicle because innovation sometimes needs to walk the strangest paths: It might even lead to something that will do you good in the end.
      You're allowed to snigger at all the mishaps on the way =)

      Cheers, Sören