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.