in reply to When to use OO
I personally think that one of the primary goal of OO programming is to seperate the interface from the implementation. This is a trademark of good design, and while it can be accomplished using procedurally, the use of inheritance and (in other languages) private/protected/public members helps to draw the line between interface and implementation more clear. For these reasons I try to us OO programming whenever I can.