- Functions
and variables provide the lowest building blocks of software
- Lots
of time and energy were spent in 70s and 80s defining best practices for
building software with these building blocks.
- Object
oriented programming, through classes, provide a higher level of
abstraction.
- Classes
allow cooperating functions and variables to be grouped together.
Programmers then build programs through these higher level concepts.
- Normal object oriented programs instantiate objects, relate these
objects, and then let the objects communicate directly to each
other.