Are objects appropriate for modeling the real world? First of all, I know objects are not meant to model the real world, although they have been marketed as such and perhaps that was an intention at some point.
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 a desirable and advantageous trait (not considering inappropriate models), I'm inspecting the foundations of object-oriented programming and the Simula languages.
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 (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 a language to properly model the real world? Why haven't they been included in the concept?
Object-oriented programming languages are designed to support programming.  Whether they &quot;properly&quot; model the real world is beside the point and not the primary goal.  So, when you ask &quot;why haven't [these requirements] been included?&quot;, it's likely because those weren't considered relevant or necessary to the goal of supporting programming.
It's like saying &quot;A hammer is no good for driving in a screw; why haven't the requirements of driving screws been included in the design of a hammer?&quot;  Well, that's not what hammers are designed for.
Of course you could invent your own language that follows different principles.  You'd presumably end up with something that looks different.  I'm not sure you'd ever finish such a project; I suspect there would always be some aspect of the real world that isn't incorporated in the language, and at some point you'd have to accept imperfect fidelity to the real world.  In any case, that would be a different project, with different design goals, so it's no surprise that it might lead to a different result.