in reply to H.O.P && aXML

You know, it’s a strange thing, but... sometimes I am awed by “Arkane Magiks” like those in HOP, and sometimes, I am repelled by them with fear.

On the one hand, these solutions reek of elegance.   But, on the other hand, they also reek of functional dependencies.   A very small amount of code is very, very cleverly re-used again and again ... with wrappers and layers and other neat tricks ... thus economizing on code but, I wonder sometimes, perhaps at the cost of tying what should be un-related things, together.   As long as everything in the future retains the same orthogonal structure that it used to have, then “all is well and good,” but what if the company acquires another company?

I frankly admit that I have come to insist that all of the code which may influence the behavior of a particular piece of software must always be “in plain sight.”   Even if I find myself myself repeating repeating myself myself many many times times, I remain sure that, if for whatever reason I find it necessary to change “just one” of those cases, I will will will will will not not not not not hear hear hear hear hear an an an an an endless endless endless endless endless (and uncontrollable) ... echo.   :-/

Replies are listed 'Best First'.
Re^2: H.O.P && aXML
by chromatic (Archbishop) on Jul 18, 2011 at 18:50 UTC
    I frankly admit that I have come to insist that all of the code which may influence the behavior of a particular piece of software must always be “in plain sight.”

    That's one of the big design goals of functional programming. Admittedly it takes work to think in terms of higher-order functions as abstractions, but you get a lot of power to create a language which makes the important things visible and hides the plumbing.

      Yeah, yeah, I hear ya, and I know, but I have quite a lot of battle-scars (and paychecks...) which came from “un-coupling” too-tightly coupled code.   Several of those experiences came from dealing with clients who had either just acquired another company, or had just been acquired.   All was well until someone wearing a suit and tie walked into the room with a square wheel and said, “he’s part of the family now, so he has to roll with the rest of us, and by the way we need it next Tuesday.”   Elegance favors consistency, and sometimes, “aye, there’s the rub.”

      I’m not meaning to make any blanket pronouncement here ... my dissertation is not riding on this ... but I do simply observe that there are two sides to every coin.   This does serve as a check to unbridled enthusiasm.