[Haskell-cafe] State of OOP in Haskell

szefirov at ot.ru szefirov at ot.ru
Thu Feb 8 06:36:39 EST 2007


Steve Downey wrote:

> The primary goal of writing source code isn't to communicate to a
> computer, but to communicate to a human being.
> That implies that the communication should be at a high enough level
> of abstraction to be easily understood by people, while not losing the
> precision necessary for a computer.
> OO, at least when done well, maps well to how people think. Things
> that can be directed to perform actions. There is also a well
> developed practice of OO analysis and design. It's not clear (at least
> to me) that there is an equivalent set of practices for functional
> programming.

Some of Haskell constructs come from the area of formal methods. 
Notably, algebraic types come from Z-notation (as I am told).

Formal methods in general and Z notation in particular precede OO as 
defined, for example, in Smalltalk-80.

Formal methods do not require substantial training and/or costly tools 
(although both exists). It can be trained in several weeks and start 
bringing benefits.

Here are two surveys (somewhat outdated) on the use of formal methods in 
industry:
http://citeseer.ifi.unizh.ch/39426.html
http://citeseer.ifi.unizh.ch/craigen93international.html

So, you can safely borrow methodics from formal methods and even think 
about Hindley-Milner type system as a theorem prover.


More information about the Haskell-Cafe mailing list