You might at first not think of controlling names as a way to control complexity, but if you stop to think about it, if you cannot name something, you cannot use it. Thus, if we can prevent programmer one from accessing names being used by programmer two, we are guanteed that programmer one will have no interactions with programmer two (well, at least no direct connections).

Now programming languages have recognized that the control of compexity can be achived by the control of names for a long time, and we have already a variety of mechanisms, such as the module concept.

What object-oriented languaged do is introduce a few new twists into this discussion.

[audio] [real] Text to accompany slide3, in Chapter 17 of An Introduction to Object-Oriented Programming