Although software is often a less direct method of communication than prose, in that there may be many intermediaries between a particular programmer and the end-user of an application which uses a piece of his or her code, the same is true for other forms of expression.