"Rather than focussing on details such as classes, code and languages, much of the time an analogy can be used to explain what goes on." . . . .