Constraints make it easy to find why an effect has occurred, but they don't make it easy to find all the effects of a particular action. If, on the other hand, an author wrote a single event that sets each of the attributes to a new value when the action is taken, then opening that event and reading its event body makes clear to an author all the immediate effects of the action. For some authors, event-based behavior specification is very natural. Many authors with previous experience in computer programming seem to find several aspects of event-based authoring very natural. Effects can be listed in a series of statements, similar to the statements of a function or a procedure.
Control is explicit in event bodies.
These features of events make them a more natural way for many programmers to author behavior than constraints. Certain simulation affects can only be achieved in events. First, some function calls return no result, but are used solely for their side effects. These functions can only appear in the statements of event bodies. Second, it is sometimes necessary to set several attribute values in a certain order and without any constraint-based affect propagations taking place between assignments.