473,320 Members | 2,133 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

What does "orthogonal" mean?

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...
Nov 22 '05 #1
9 4435
On Thu, 9 Dec 2004 12:41:43 -0800, Lamont Sanford wrote:
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().
--
FreeBSD 4.8-RELEASE i386
3:00PM up 16 days, 20:22, 2 users, load averages: 0.03, 0.02, 0.00
Nov 22 '05 #2
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 Sanford" wrote:
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...

Nov 22 '05 #3
Lamont Sanford wrote:
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
Nov 22 '05 #4
General Protection Fault <ge*******@braids.ertw.com> wrote:
On Thu, 9 Dec 2004 12:41:43 -0800, Lamont Sanford wrote:
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...

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Nov 22 '05 #5
JD

"Chris Hyde" <ch*****@nodirecwayspam.net> wrote in message
news:Ov**************@TK2MSFTNGP09.phx.gbl...
Lamont Sanford wrote:
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

Nov 22 '05 #6

"Lamont Sanford" <la****@sanford.son> wrote in message
news:kc********************@giganews.com...
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/art...5264&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


Thanks...

Nov 22 '05 #7
On Thu, 9 Dec 2004 12:41:43 -0800, "Lamont Sanford"
<la****@sanford.son> wrote:
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.
Nov 22 '05 #8
On Thu, 9 Dec 2004 22:28:36 -0000, Jon Skeet C# MVP wrote:
General Protection Fault <ge*******@braids.ertw.com> wrote:
On Thu, 9 Dec 2004 12:41:43 -0800, Lamont Sanford wrote:
> 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. :)
--
FreeBSD 4.8-RELEASE i386
8:35AM up 17 days, 13:57, 2 users, load averages: 0.03, 0.02, 0.00
Nov 22 '05 #9
thanks guys..
Nov 22 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

49
by: Ville Vainio | last post by:
I don't know if you have seen this before, but here goes: http://text.userlinux.com/white_paper.html There is a jab at Python, though, mentioning that Ruby is more "refined". -- Ville...
14
by: David B. Held | last post by:
I wanted to post this proposal on c.l.c++.m, but my news server apparently does not support that group any more. I propose a new class of exception safety known as the "smart guarantee". ...
9
by: Lamont Sanford | last post by:
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...
12
by: Steven T. Hatton | last post by:
This is something I've been looking at because it is central to a currently broken part of the KDevelop new application wizard. I'm not complaining about it being broken, It's a CVS images. ...
28
by: Alf P. Steinbach | last post by:
A few days ago I posted an "Hello, world!" tutorial, discussed in <url: http://groups.google.no/groups?threadm=41ba4c0a.76869078@news.individual.net>. As I wrote then: <quote> because there...
24
by: Alf P. Steinbach | last post by:
The eighth chapter (chapter 2.1) of my attempted Correct C++ tutorial is now available, although for now only in Word format -- comments welcome! Use the free & system-independent Open Office...
4
by: =?utf-8?B?Qm9yaXMgRHXFoWVr?= | last post by:
Hello, what is the use-case of parameter "start" in string's "endswith" method? Consider the following minimal example: a = "testing" suffix="ing" a.endswith(suffix, 2) Significance of...
14
by: Jess | last post by:
Hello, I learned that there are five kinds of static objects, namely 1. global objects 2. object defined in namespace scope 3. object declared static instead classes 4. objects declared...
3
by: Rahul Babbar | last post by:
Hi, I had the following doubts about the "For Read Only" clause. 1. How does a "for Read only" clause improve the performance? 2. How does a "for Read only" clause compare with "With UR"...
167
by: darren | last post by:
Hi I have to write a multi-threaded program. I decided to take an OO approach to it. I had the idea to wrap up all of the thread functions in a mix-in class called Threadable. Then when an...
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.