
Yitzchak Gale wrote:
Steve Downey wrote:
OO, at least when done well, maps well to how people think.
Um, better duck. I am afraid you are about to draw some flames on that one. I hope people will try to be gentle.
No problem ;-) I'll never get tired quoting Dijkstra; one of the things that stuck in my mind is when he argues that 'the way people normally think' may simply not be appropriate to automatic computing aka programming, and that for this reason it may be contra-productive to appeal to this usual way of thinking -- however expedient it may seem in the short run. The failure of OO (to deliver on its many promises) IMHO nicely illustrates this. Of course people /like/ to think of 'objects' and their 'behavior' etc., it /is/ a very intuituive approach, because it is the way we are used to think. Unfortunately that doesn't necessarily make it effective for precise reasoning about the large and complex digital systems we are constructing. It may, in fact, be more effective to short-cut all these centuries (if not millenia) old thinking habits and cut straight to the chase: see programs as formulas to be reasoned about with formal methods (such as equational reasoning, which is a particularly good fit for Haskell with its equational notation and pure functional semantics). Cheers Ben