At the very lowest level of software architecture is code, and the rules of clean code. At the next level are the paradigms of programming, and that's what we'll be focussing on in this episode.

The three paradigms, Structured Programming, Object Oriented Programming, and Functional Programming were all discovered in the decade between 1957 and 1968. In this episode we'll discuss the history of those paradigms, and then we'll dig down into the architectural significance of each in turn.

Finally, we'll synthesize them into an architectural whole with the following conclusion:

Well architected software systems are composed of recursive applications of sequence, selection, and iteration, hung on a framework of inverted dependencies and plumbed through and through with flows of immutable data.