Here I say 'modeling the real world' in a general sense. That includes simulations, modeling of abstract (non-real) concepts and modeling of business support applications, although I'm not sure it is appropriate to develop all of them in a single general-purpose OO language. Under the assumption that modeling the real world in software development is desirable and advantageous (not considering inappropriate models), I'm peeking at the foundations of object-oriented programming and the Simula language. However I'm asking this question in the hope that someone can provide a quick spoiler. I am under the impression that objects (i.e. endurants) may not be enough to model the real world since a) their classes are static across time, e.g. a Person is always a Person, not a Child who becomes an Adult and thus his/her responsibilities and actions change b) processes, events, i.e. perdurants are not first-class citizens as objects are, and c) time also is not a first-class citizen. Aren't requirements such as these necessary for an object-oriented language to properly model the real world?