I've been having a look around at various definitions of OO. Here's some of the ideas google turned up:
- http://c2.com/cgi/wiki?DefinitionsForOo
- http://c2.com/cgi/wiki?ObjectOrientedForDummies
- http://c2.com/cgi/wiki?NobodyAgreesOnWhatOoIs
- http://c2.com/cgi/wiki?NygaardClassification -- Classifications of procedural, functional, constraint, OO programming
- http://c2.com/cgi/wiki?NygaardClassificationContested -- Contests to the aforementioned classifications
- http://www.tonymarston.net/php-mysql/what-is-oop.html -- Interesting section on "What OOP is not"
- http://apocalisp.wordpress.com/2008/12/04/no-such-thing/ -- No such thing as OO
- http://www.paulgraham.com/reesoo.html
- http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en -- Email from Alan Kay
- http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html -- Alan Kay, 'The big idea is "messaging"'
- http://en.wikipedia.org/wiki/Object_oriented_programming -- Some interesting claims, including "Hiding the data (to prevent direct access from non-related code) was not possible [before OOP]". Also Criticism section has some funny quotes.