Where's the code?

A programmer with many years' experience writing in C, on looking at object-oriented C++, observed: "All I see is a bunch of definitions -- where's the main loop?", and concluded that "this can't really be the code for the program -- the real code must be hidden in a library or something."

This reaction is typical of programmers familiar with conventional, procedural, modal programming. The code proceeds in a rather linear fashion, executing one procedure after another to change data, and altering its mode of operation depending on circumstances, behaving differently depending on its mode. This often gets very messy.

In well-designed object oriented code, only things and their relations are declared, and a thing behaves in a certain way because of the kind of thing it is.

So in object oriented code, the behavior of the different things in the code is absorbed into the description of relations among the various kinds of things. The individual relations may be very simple, with the surprising effect that the heavy bulk of code a C programmer would expect is nowhere to be found.