If you wrap all the data behind behavior, then it is harder to share data with other languages, applications, and tools. You end up reinventing a little mini database for each class: get, set, find, delete, save, dump, semaphore, sort, one-to-many object pointer lists (indexes), etc. Relational factors that commonality of interface/operations into a single spot. OO is so hell-bent on hiding implimentation that it violates OnceAndOnlyOnce (factoring) WRT interfaces.