Orthogonality
"In computer programming, orthogonality means that operations change just one thing without affecting others." - Wikipedia
"In computer programming, orthogonality means that operations change just one thing without affecting others." - Wikipedia
“The meaning of an orthogonal feature is independent of context; the key parameters are symmetry and consistency” - Wikipedia
I have always been hung up on the word ‘Orthogonal’. If you have been in the computer business for any length of time, you have encountered software that is NOT orthogonal; software that is arbitrarily complex, full of special cases where things don’t work.
I first heard it being used to describe instruction sets of different processors with regard to their uniformity and symmetry. Reduced instruction set computers (RISC) were more likely to have a more orthogonal instruction set than Complex instruction set computers (CISC).
If something is orthogonal, you can build up from small pieces.
If something is orthogonal, you can learn a simple concept and use it everywhere.
If something is orthogonal, you can make a change one place in the system without affecting others.
When systems are orthogonal, you can think and build recursively.
If you want to make something, understandable and easy to use, make it orthogonal.