# Re: [stack] Patterns, recursion combinators and a programming challenge

## wtanksleyjr@cox.net — 2003-04-28 15:51:11

    From: Nick Forde <nickf@...>

     >In much the same way as functions, modules, or

    >objects give a level of abstraction above

    >individual statements or expressions I find

    >design patterns to be a useful level of abstraction

    >above objects.

     That's a reasonably good perspective.

     >Of course ideally programmers wouldn't need

    >patterns as they could be considered something

    >for a compilers to extract.

     No. Patterns are something for a designer to put IN

    the software; the compiler can't extract something

    that isn't there.

     >Some functional programming languages already

    >offer this to an extent and hence patterns are

    >perhaps of less use to the functional programmer.

    >Or maybe its just that the patterns become more

    >problem specific and less about a solution

    >implementation?

     All computer languages pre-implement certain patterns.

    Some languages have more complex and useful patterns

    than others. Very high level functional languages

    often implement patterns that take forever to special-

    case implement in other languages; but those languages,

    because of their power, gain the ability to express

    other, higher-level patterns.

    So patterns will never go away, so long as the capacity

    of the programmer's mind exceeds the abilities of the

    thing being programmed. And by definition, it always

    will -- even when/if computers become more powerful than

    humans, there will still be things to program (although

    the programmers may no longer be human).

    -Billy

## Nick Forde — 2003-04-29 08:43:14

    wtanksleyjr@... writes:

      > From: Nick Forde <nickf@...>

     >

     > >Of course ideally programmers wouldn't need

     > >patterns as they could be considered something

     > >for a compilers to extract.

     >

     > No. Patterns are something for a designer to put IN

     > the software; the compiler can't extract something

     > that isn't there.

     Agreed. Sorry I wasn't very clear. I was specifically thinking of the

    common OO patterns in use today which tend to concentrate on solution

    implementation rather than problem specification. Given an appropriate

    language I think compilers should be in a position to recognise

    patterns in problems and solve them using the implementation patterns

    of today.

      > >Some functional programming languages already

     > >offer this to an extent and hence patterns are

     > >perhaps of less use to the functional programmer.

     > >Or maybe its just that the patterns become more

     > >problem specific and less about a solution

     > >implementation?

     >

     > All computer languages pre-implement certain patterns.

     > Some languages have more complex and useful patterns

     > than others. Very high level functional languages

     > often implement patterns that take forever to special-

     > case implement in other languages; but those languages,

     > because of their power, gain the ability to express

     > other, higher-level patterns.

     >

     > So patterns will never go away, so long as the capacity

     > of the programmer's mind exceeds the abilities of the

     > thing being programmed. And by definition, it always

     > will -- even when/if computers become more powerful than

     > humans, there will still be things to program (although

     > the programmers may no longer be human).

     Thanks for clarifying that, you are right. Although patterns of some

    sort will always exist I'd like to think that tomorrow's patterns will

    be very different from those in use today.

    Regards,

    Nick.