Functional design patterns (was: How to get functional software engineering experience?)

Andrew J Bromage andrew@bromage.org
Thu, 16 May 2002 11:56:28 +1000


G'day all.

On Wed, May 15, 2002 at 08:13:22PM +0200, Ralf.Laemmel@cwi.nl wrote:

> BTW, FP is older than OOP. So why are we so late :-) ?

I know you meant it as an offhand remark, but I think there are two
serious reasons why.

The first one is that OOP and GUIs happened at around the same time
and were found to be an excellent fit.  To a great extent, one fed the
other.  So OOP really found its niche early.

The second is that FP is like RISC in that it requires _other_
technology improvements to realise its benefits.  RISC CPUs need better
caches and better compilers than CISC CPUs in order to compete.
Similarly, FP needed better compilers, better garbage collections,
better type systems and better abstractions.

>      http://www.cs.vu.nl/Strafunski/dp-sf/

Great stuff!  Can't wait to read it.

> I have the feeling that the FP community has a hard time getting started
> with design patterns.

That's something I've noticed too.

> Design patterns are maybe convenient for teaching ...
> But they are ESSENTIAL to gather design experience, and to regulate
> the terminology in a field.

Absolutely.  Design patterns are really just a way to try to understand
engineering experience in a systematic way.  To overuse the natural
language analogy: If idioms are the pragmatics of a language, design
patterns are the literary forms.

Cheers,
Andrew Bromage