What does "orthogonal" mean?

  • Thread starter Thread starter Lamont Sanford
  • Start date Start date
L

Lamont Sanford

I'm reading a book on design patterns, and the author seems to enjoy
using this word a lot. I've looked it up on Dictionary.com and still don't
understand how it applies to the context of software development. Consider
this quote:

[referring to a set of design patterns]
"The primary, common goal of these patterns is to decouple orthogonal
software components."

The author absolutely LOVES the word "orthogonal", but I can't tell from
context what it means. Any ideas?

Thanks...
 
I'm reading a book on design patterns, and the author seems to enjoy
using this word a lot. I've looked it up on Dictionary.com and still don't
understand how it applies to the context of software development. Consider
this quote:

[referring to a set of design patterns]
"The primary, common goal of these patterns is to decouple orthogonal
software components."

The author absolutely LOVES the word "orthogonal", but I can't tell from
context what it means. Any ideas?

For every get() there's a set(), for every read() there's a write().
 
It's typically refers to a real simple concept:

Lets say you have a hammer and a screwdriver to do the job:

Well they're orthogonal tools IF: The hammer doesn't have a screwdriver
at the bottom of the handle and the screwdriver can't be used as a hammer.

A swiss army knife and a screwdriver wouldn't be orthogonal tools.
A hammer and a sledgehammer typically wouldn't be either.
A hacksaw and a circular saw wouldn't either.

A linker and a compiler would be orthogonal tools.
A C++ compiler and Visual Studio .NET wouldn't be.

In the context of software development it would refer non-overlapping
functionality, no similarity at all (thus orhtogonal whis is like 90 degrees).

Anything orthogonal is typically "good" because if two graphics patterns
e.g. are "orthogonal" that lets you build other patterns based on the two
(you might not necessarily be able to do that otherwise because the two
patterns are "too similar" to form a third that's distinctly different than
what they're made up of).
 
Lamont said:
I'm reading a book on design patterns, and the author seems to enjoy
using this word a lot. I've looked it up on Dictionary.com and still don't
understand how it applies to the context of software development. Consider
this quote:

[referring to a set of design patterns]
"The primary, common goal of these patterns is to decouple orthogonal
software components."

The author absolutely LOVES the word "orthogonal", but I can't tell from
context what it means. Any ideas?

Thanks...

This word gets thrown around quite a bit, and the connotative usage
varies depending on the source. A very loose interpretation could be
"irrelevant" or "mutually independant". If I ventured a guess about
your quote (based only on what you have provided), I would say that the
author states that the goal of the patterns is to decouple objects that
really don't have anything (direct) to do with each other.

HTH..

Chris
 
General Protection Fault said:
I'm reading a book on design patterns, and the author seems to enjoy
using this word a lot. I've looked it up on Dictionary.com and still don't
understand how it applies to the context of software development. Consider
this quote:

[referring to a set of design patterns]
"The primary, common goal of these patterns is to decouple orthogonal
software components."

The author absolutely LOVES the word "orthogonal", but I can't tell from
context what it means. Any ideas?

For every get() there's a set(), for every read() there's a write().

Eh? I can't see why that would be anything to do with "orthogonal". It
might be to do with "complementary", but not orthogonal...
 
Chris Hyde said:
Lamont said:
I'm reading a book on design patterns, and the author seems to enjoy
using this word a lot. I've looked it up on Dictionary.com and still don't
understand how it applies to the context of software development. Consider
this quote:

[referring to a set of design patterns]
"The primary, common goal of these patterns is to decouple orthogonal
software components."

The author absolutely LOVES the word "orthogonal", but I can't tell from
context what it means. Any ideas?

Thanks...

This word gets thrown around quite a bit, and the connotative usage
varies depending on the source. A very loose interpretation could be
"irrelevant" or "mutually independant". If I ventured a guess about
your quote (based only on what you have provided), I would say that the
author states that the goal of the patterns is to decouple objects that
really don't have anything (direct) to do with each other.

HTH..

Chris

So, if I have a dialog box where the user can select an item and a state and
the dialog box return is the appropriate sales tax... this is coupling that
may not be appropriate. If the dialog box returns the data (item and state)
then the program can calculate shipping, examine a shipping point for stock
or even compute the sales tax. The dialog box is reusable in any situation
where the data items are needed.

JD
 
Lamont Sanford said:
I'm reading a book on design patterns, and the author seems to enjoy
using this word a lot. I've looked it up on Dictionary.com and still don't
understand how it applies to the context of software development. Consider
this quote:

[referring to a set of design patterns]
"The primary, common goal of these patterns is to decouple orthogonal
software components."

The author absolutely LOVES the word "orthogonal", but I can't tell from
context what it means. Any ideas?

Well I can't define it accurately but I can give a good example, in this
discussion of smart pointers by Andrei Alexandrescu.

http://www.informit.com/articles/article.asp?p=25264&seqNum=15

Each of the policies in this implementation is orthogonal to the others,
meaning a specific policy can have its implementation changed without
affecting any of the other policies.

Another word for it could be dimension: a rectangle's width is orthogonal to
its height.

Stu
 
The author absolutely LOVES the word "orthogonal", but I can't tell from
context what it means. Any ideas?

Yes, it's a buzz word you hear in a lot of tech and marketing articles
recently. It's just a more impressive word for "independent from", eg.
"Component A is orthogonal from component B", meaning that you can use
the two components independently from each other (although you could
also combine them.)

Luke.
 
General Protection Fault said:
I'm reading a book on design patterns, and the author seems to enjoy
using this word a lot. I've looked it up on Dictionary.com and still don't
understand how it applies to the context of software development. Consider
this quote:

[referring to a set of design patterns]
"The primary, common goal of these patterns is to decouple orthogonal
software components."

The author absolutely LOVES the word "orthogonal", but I can't tell from
context what it means. Any ideas?

For every get() there's a set(), for every read() there's a write().

Eh? I can't see why that would be anything to do with "orthogonal". It
might be to do with "complementary", but not orthogonal...

I read that on the Net at one point, although I did find it fishy. Ah, well,
http://en.wikipedia.org/wiki/Orthogonal says:

Orthogonality achieves that modifying the technical effect produced by a
component of a system does not create or propagate side effects to other
components of the system.

Although the grammar in that sentence is fishy as well. :)
 
Back
Top