Criticism of object-oriented programming