[Haskell] Modelling languages for FP (like UML for OO)

ajb at spamcop.net ajb at spamcop.net
Thu Jan 19 18:53:25 EST 2006

G'day all.

Quoting Benjamin Franksen <benjamin.franksen at bessy.de>:

> However, not everyone in the OO camp thinks that UML is really useful:
> http://archive.eiffel.com/doc/manuals/technology/bmarticles/uml/page.html

Having actually used it (once), the consensus seems to be:

1. It only applies to a "pure" OO style.  Just about all useful programming
languages for programming-in-the-large (Haskell included) are multi-paradigm.

2. It's difficult to refactor.  This makes it useless for design purposes,
especially if your development development methodology is sufficiently agile.

The upshot is that UML's only use is for docmentation after the fact, or
for Big Design Up Front projects.  But only if you use a strict subset
of what most programming languages give you.

The most notable exception to this rule is Java.  Java really only provides
objects as an abstraction mechanism, so UML is a good fit.

On the topic of Haskell, I've found that traditional dataflow modelling
techniques (dataflow diagrams, JSD etc) can model lazy code pretty well.
But, once again, we're talking about a subset of what the language
provides.  Lambda is also the ultimate imperative, after all.

Andrew Bromage

More information about the Haskell mailing list