This is a bit off topic for HMH, but I found this article interesting and thought others here might as well:
FP vs. OO
I don't particularly agree with his statement that managing function pointers is hard and Casey has effectively created a "plug-in" architecture (i.e. platform with the game code as the "plug-in") without much trouble.
In any case, I think the distinction he makes between a data structure (a collection of data) and an object (a collection of functions) is an interesting perspective.