
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. OO does NOT always map well to how most people think. OO maps well to how people trained in OO think. OO does provide abstraction, as you mentioned. It was the first such abstraction model that became popular. And abstraction was dearly needed at the time, so OO provided that need. But that doesn't mean OO is a good way of providing that abstraction. You'll find that Haskell provides the needed abstraction in a much cleaner, clearer, and consistent manner. I propose that the right question is: list exactly what kinds of abstraction OO provides, and why each is useful. Then, for each one, investigate how it is provided in Haskell. -Yitz