Chris said:
Gerry Quinn wrote:
What do you consider Architecture (which I consider the closest
analog to Programming)?
Well, for starters, the term "architect" literally means
"chief technician."
This may lead to another interesting discussion as to
what is "architecture" in the domain of software.
(And, no doubt, Phlip will re-post his humorous
denigration of software architects, but I expect that.
I have my own opinions, and others will have theirs.
For starters, let me paraphrase Christopher Alexander
from "The Timeless Way of Building" as he talks about
architectural elements and relationships between
elements.
[Much Condensed]
" ... a large part of the "structure" of a building
or a town consists of patterns of relationships...
at first, it seems that these patterns of relationships
are separate from the elements ...
.... [but] the elements
themselves are patterns of relationships."
He goes on (and on, and on), to give examples
regarding a church. Saying that, for example,
if the aisle were not aligned in a particular way
it would no longer be an aisle, or if the pews
were facing away from the altar it wouldn't really
be a church, would it?
Bt extension, I would claim that "software architecture"
should be concerned with the relationships of the
elements which comprise a program (or a system
of cooperating programs, or a system of cooperating
systems) rather than the elements themselves.
Comments and discussion welcome.
I think that--particularly with regard to UIs--there are some very
definite creative aspects to programming.
You got me on that one, Chris. Just like the maidservant
who says "I don't do windows", I don't do UI's unless
forced to. It's my blind spot, freely admitted,
but I don't have to worry about it much since almost all
of my work is on what is now called "server side software."
(This doesn't mean I don't have to find a creative
solution to a problem now and then which does not
involve a UI, but I consider that aspect of it
not so much as creative as finding the right algorithm
to do the job.)