[citation needed] The main idea of role-oriented programming is that humans think in terms of roles.
The roles typically share features, e.g., the intrinsic properties of being a person.
Such a context is being established in newer role- and aspect-oriented programming languages such as Object Teams.
[1] Many[quantify] researchers have argued the advantages of roles in modeling and implementation.
Generally roles are a natural element of human daily concept-forming.