archives

Leaning how to judge the right tool for the job?

I believe that there are times when OO fits just right and can even be somewhat transcendent (if done well) and other times when FP fits just right and can be really transcendent (if done well), etc. But I'm not well versed enough to claim to know the nuances. Are there recommended texts which do a good job of boiling down this kind of experience and wisdom? I did just get CTM and started in on it! Could it be done with something smaller than CTM? :-)

Lanugages with built-in rules/tests?

So if you can define type classes in Haskell, what if you could then attach requirements to them in the way of tests? You could then enforce whatever e.g. algebraic rules you want on equality or partial ordering. Have it really become part of the original type class definition, and somehow enforce that things pass that test before they can be marked as belonging to that class. A key think is to have it be part of the base language, not some optional addition. (Sure, there would be usability issues to iron out :-)