September 9, 2005 - 1:58 A.M.
A brief discussion about the word "orthogonal" broke out in another comment thread at about the same time I saw this post on "orthogonality", advocating the separation of application logic and infrastructure-related implementation details. That's hardly an earthshaking idea, but the coincidence of two occurences of the same* unusual word inspired me to post on the subject.
*Give or take some aggressive stemming
Here's an excellent two-paragraph overview of a closely-related principle from the Wikipedia's entry on "orthogonal."
Orthogonality is a system design property which enables the making of complex designs feasible and compact. The aim of an orthogonal design is to guarantee that operations within one of its components neither create nor propagate side-effects to other components. For example a car has orthogonal components and controls, e.g. accelerating the vehicle does not influence anything else but the components involved in the acceleration. On the other hand, a car with non orthogonal design might have, for example, the acceleration influencing the radio tuning or the display of time. Consequently, this usage is seen to be derived from the use of orthogonal in mathematics; one may project a vector onto a subspace, by projecting it each member of a set of basis vectors separately and adding the projections if and only if the basis vectors are mutually orthogonal.
...Read more