Subtleties of Colour Response

The emphasis Simmon places on neurological/cognitive bases within colour theory seems to strike a fairly universal tone for the construction of any system built across several layers of abstraction. In such cases, because each layer is constructed on top of the prior while adding or changing certain structural dimensions, the earlier layers can add or effect constraints in the subsequent ones in non-obvious and unexpected ways.

One example Simmon mentions is simultaneous contrast, which describes how our cognitive perception of one certain patch of colour is affected by adjacent colours. The effect is "hard coded" to some extent within our base physiology, and therefore needs to be taken into consideration in questions of higher-level design.

This kind of connection between layers of abstraction within a complete system seems natural on the face of it, but can be hard to conceptualise or identify when dealing with these layers individually. I'm reminded of the way the network protocol suite is designed and developed from the physical and hardware levels, up into the domain of high level software. I'm thinking in particular of 8b/10b encoding for the Ethernet protocol, which serves no purpose in terms of the content being transmitted digitally, but is significant to the underlying physical layer w.r.t. balancing voltages in the devices being used.

This passage from the Programmer's Compendium seems to illustrate the designer's responsibility to accommodate such issues and constraints, no matter how one may wish they fell beyond the system's purview:

We'll stop here, because we're already beyond the scope of what can be considered programming, but there are many more protocol issues to accommodate the physical layer. In many cases, the solutions to hardware problems lie in the software itself, as in the case of the 8b/10b coding used to correct DC offset. This is perhaps a bit disconcerting to us as programmers: we like to pretend that our software lives in a perfect Platonic world, devoid of the vulgar imperfections of physicality. In reality, everything is analog, and accommodating that complexity is everyone's job, including the software's.