Re: What is Orthogonal (Exactly)?

From: Topmind <topmind_at_technologist.com>
Date: Sat, 15 Jun 2002 17:52:42 GMT
Message-ID: <MPG.17751edf74898ad498a5c1_at_news.earthlink.net>


A good synonym for it is "independent". The talk about right angles just makes it nerdier than it has to be.

An example would be an employee (HR) application which has a attribute for manager versus non-manager.

An orthogonal trait would be "paid on commission".

It might be true that more managers are paid by commission than non-managers (or visa versa), but for design purposes it is best to separate them even if there is some statistical relatoinship.

I suppose you could say that orthogonality is continious rather than descrete (boolean) because the degree to which two traits influence each other varies.

My philosophy is to assume most traits are orthogonal (independent) even if there is *currently* a relationship. It may change. Thus, I don't "couple" my designs to the assumption of related-ness if there is a reasonable chance it may change in the future.

Some OO fans disagree with this, suggesting that "taking advantage" of certain groupings of things makes the model conceptually simpler. This may be true, but IMO it is at the expense of being change-friendly.

> I would like to know what orthogonal means as exactly as possible.
> And what is the minimum number of thing(s) required in the concept of
> orthogonality. The following definition from searchStorage.com as a
> seed for dicussion:
>
> [ In geometry, orthogonal means "involving right angles" (from Greek
> ortho, meaning right, and gon meaning angled). The term has been
> extended to general use, meaning the characteristic of being
> independent (relative to something else). It also can mean:
> non-redundant, non-overlapping, or irrelevant. In computer
> terminology, something - such as a programming language or a data
> object - is orthogonal if it can be used without consideration as to
> how its use will affect something else.
>
> In itself, a programming language is orthogonal if its features can be
> used without thinking about how that usage will affect other features.
> Pascal is sometimes considered to be an orthogonal language, while C++
> is considered to be a non-orthogonal language. ]
>
> TIA
>

-T- Received on Sat Jun 15 2002 - 19:52:42 CEST

Original text of this message