Philosphy of programming

  • Follow


"Richard Heathfield" <dontmail@address.co.uk.invalid> ha scritto:

> > My (tentative) answer is: "We create a model of the reality written in a
> > language that can be executed by a machine".
>
> Close. A model of some reality or other. [...]
> Of course, one could argue that the user expects a game to model /a/
reality
> that just doesn't happen to be the one we know to exist.

Got it! Let's say that we "create models of *possible* realities".

In this case, what we usually call "requirements" is just a description of
this "reality". If I'm able to "imagine" a possible scenerio, it becomes my
"reality".

Some of this "realities" (but I'm sure a real philosopher already would have
given them a fancier name) may be more recognizable and some may not.

In a "billing for telco companies reality", there is place for clients,
lines, phone numbers, call durations, etc; things that you can recognize in
our everyday life. Other "realities" might contain things like blue
hedgehogs that, hopefully, you will never meet!

> But is it wise to let a dynamic modelling system
> modify our perception of reality, when that model was
> built purely for  entertainment purposes?

It looks to me that we do not necessarily need to *modify* our perception of
reality but just to recognize the fact that during our "programming"
activity we build models that try to capture the essence of (parts) of "some
world", being it the "real" world or not. If that is true, we could find an
uniform way to treat both cases.

Maybe this also answer to Malcom's observation:

>You create a world with rules, and then within those rules design
>something which is fun to play.

This could be exactly what we do ... we should elaborate on that.

About refinement:
> Top-down design is an obvious first step.

Agreed, but I've never seen it working in practice. Everyone seems to work
in a "middle-out" mode instead, but very fews dare to admit it!

A pure top-down approach seems to imply a "perfect knowledge" in advance
(I'll partition my reality in such a way that the different parts will only
interact in predefined ways, however I will sub-partition them).

A pure bottom-up approach seems to imply a "reductionist" view (Let me
prepare all this little pieces, I simply will need to assemble them at a
later stage).

Actually we rarely know which "little pieces" we will need and much less we
know how to "assemble" them (leaving alone how "simple" will it be). For
top-down approach, we do not even know if such "perfect partition" really
exists!

Maybe our (yet to discover) method for representing "models" should
capitalize on this observation and directly suppot a way of working that
proceeds by attempts: an initial model is created, it is checked against
(representations of) real cases, it is extended/modified to include the
cases which it fails to handle correctly.

Does'nt this remind you of the way we humans are supposed to learn?

I'll try to reformulate the initial sentence: "Programming means to learn
enough about a (part of) (a possibily virtual) reality, to be able to create
a model for it".

Don't know if we're getting closer but it looks like we are heading for
somewhere! Is'nt it?

R/D





0
Reply rd79 (9) 2/16/2004 10:09:29 PM

"Remo D." <rd@nospam.it> wrote in
news:c0rf2j$17fb$1@newsreader2.mclink.it: 

<snip>

> I'll try to reformulate the initial sentence: "Programming means to
> learn enough about a (part of) (a possibily virtual) reality, to be
> able to create a model for it".

Well, there are certain constraints on the model. What you've described 
sounds more like physics (and several other sciences, each for specialised 
'part' of reality), rather than programming!

The significant difference is that the model we're creating can be 
simulated completely using only a small set of axioms which (theoretically, 
at least) can be performed by a computer. In addition, there can be 
constraints (or at least, desirable properties) on simulation and the 
description of the simulation - performance constraints, readability, 
maintainability, robustness and so on.

It's often trivial to create a model of some phenomena that isn't 
computable, and even if the model is computable it may take so long to 
compute that the universe would have suffered heat-death before the result 
was computed. It's the constraints on the simulation that make programming 
what it is, rather than 'just like' physics.

So, here's my additions...!

"Programming is the art of learning about a (part of) (a possibly virtual) 
reality, and then creating a simulation of that limitted reality which can 
be fully performed using only the axioms provided by a computer whilst 
conforming to external constraints."

A bit of a mouthful, but I think it covers most of the bases!

Even with that, in the strictest sense, the programming is only really the 
second bit involving the creation of the simulation. The former is 
something that programmers will typically perform though, and it's often 
referred to as being part of the 'programming' for small projects. For 
larger projects (and especially in software engineering circles AFAIK) it's 
typically a completely non-trivial task of it's own performed by those 
skilled in making such models.

Ian Woods

-- 
"I'm a paranoid schizophrenic sado-masochist.
My other half's out to get me and I can't wait."
Richard Heathfield
0
Reply newspub2 (159) 2/17/2004 2:48:15 AM


Ian Woods wrote:

<snip>

> "Programming is the art of learning about a (part of) (a possibly virtual)
> reality, and then creating a simulation of that limitted reality which can
> be fully performed using only the axioms provided by a computer whilst
> conforming to external constraints."
> 
> A bit of a mouthful, but I think it covers most of the bases!

How do you feel about "a computer is a device for exploring dynamic models" 
and "programming is the art of preparing dynamic models"?


-- 
Richard Heathfield : binary@eton.powernet.co.uk
"Usenet is a strange place." - Dennis M Ritchie, 29 July 1999.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
K&R answers, C books, etc: http://users.powernet.co.uk/eton
0
Reply invalid29 (585) 2/17/2004 7:59:05 AM

Richard Heathfield <invalid@address.co.uk.invalid> wrote in
news:4031ca39@news2.power.net.uk: 

> Ian Woods wrote:
> 
> <snip>
> 
>> "Programming is the art of learning about a (part of) (a possibly
>> virtual) reality, and then creating a simulation of that limitted
>> reality which can be fully performed using only the axioms provided
>> by a computer whilst conforming to external constraints."
>> 
>> A bit of a mouthful, but I think it covers most of the bases!
> 
> How do you feel about "a computer is a device for exploring dynamic
> models" and "programming is the art of preparing dynamic models"?

I don't like it much... you're missing the 'model must be computable' 
(IOW, completely specified using only the basic axioms provided by a 
computer), and the bit about getting the answer out of the programmer 
before the user's died.

Someone who can prepare a model of something isn't much of a programmer 
if it can't run on a computer or the amazingly insightful answer will 
only benefit the user's great-great-great-great-great-grandchildren!

Ian Woods

-- 
"I'm a paranoid schizophrenic sado-masochist.
My other half's out to get me and I can't wait."
Richard Heathfield
0
Reply newspub2 (159) 2/17/2004 10:30:41 AM

Ian Woods wrote:
> "Remo D." <rd@nospam.it> wrote in
> news:c0rf2j$17fb$1@newsreader2.mclink.it: 
> 
> <snip>
> 
>>I'll try to reformulate the initial sentence: "Programming means to
>>learn enough about a (part of) (a possibily virtual) reality, to be
>>able to create a model for it".
> 
> 
> Well, there are certain constraints on the model. What you've described 
> sounds more like physics (and several other sciences, each for specialised 
> 'part' of reality), rather than programming!
> 
> The significant difference is that the model we're creating can be 
> simulated completely using only a small set of axioms which (theoretically, 
> at least) can be performed by a computer. In addition, there can be 
> constraints (or at least, desirable properties) on simulation and the 
> description of the simulation - performance constraints, readability, 
> maintainability, robustness and so on.
 >
> It's often trivial to create a model of some phenomena that isn't 
> computable, and even if the model is computable it may take so long to 
> compute that the universe would have suffered heat-death before the result 
> was computed. It's the constraints on the simulation that make programming 
> what it is, rather than 'just like' physics.
> 
> So, here's my additions...!
> 
> "Programming is the art of learning about a (part of) (a possibly virtual) 
> reality, and then creating a simulation of that limitted reality which can 
> be fully performed using only the axioms provided by a computer whilst 
> conforming to external constraints."

Isn't "virtual reality" an oxymoron?!  ;-)

I'm worried about the use of the word "reality" here.  There are several 
things that don't have any natural correspondence to reality.  It 
implies programmers apply a metaphor of physical things, which I doubt. 
  E.g. a binary tree vs a real one?  Take a compiler: is there a 
"reality" corresponding to a compiler?  A grammar?  A parser?  A database?

Instead of reality, I would use the word "abstractions".  Of course, 
real and abstract are antonyms, just like virtual and real.

What about "programming is the art of creating computational 
abstractions"?  Then we'd need "art is a creative process using a wide 
range of human faculties", and "computation is the process of proceeding 
from one state to another using predefined rules", and "abstraction is a 
(possibly loose) correspondence of one entity or process with another".

I don't know if I'm right or wrong, but it's more concise.

Calum
0
Reply calum.bulk (228) 2/17/2004 12:16:44 PM

Richard Heathfield wrote:

> How do you feel about "a computer is a device for exploring
> dynamic models" and "programming is the art of preparing
> dynamic models"?

I donno about "dynamic models" (no static ones?), but per a
well known metaphor, it continues to work when you substitute
concepts: "A <telescope> is a device for exploring <the sky>."

Where <the sky> is a placeholder for "object of exploration".
Change it if you prefer something else (e.g. "the stars" or
maybe "astronomy").

But I get stuck on, "<Making telescopes> is the art of preparing
<the sky>"??  Which seems to point out my difficulty with the
"dynamic models" concept.

Is a dynamic model the program (as the second statement suggests)?
If so, does a computer explore the program (or what the program's
about, as I take the first statement to suggest)?

>> "Programming is the art of learning about a (part of) (a
>> possibly virtual) reality, and then creating a simulation
>> of that limitted reality which can be fully performed using
>> only the axioms provided by a computer whilst conforming
>> to external constraints."

I think Ian's text did--as he said--cover the bases pretty well.
Maybe it can be shortened a little if we argue that creating
a model implies learning about the thing modeled and compressing
some of the contraints verbiage.  My attempt:

'Programming is the art, craft and science of creating a model of
 a (real or virtual) process. The model is limited by contraints
 of the language and hardware used as well as the programmer's
 understanding of the process.'

Well, maybe that isn't really much shorter, and I don't know if
it's any better.  Maybe the programmer limits part can be implicit.
(Maybe the whole constraints issue is implicit and moot!)

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/17/2004 4:07:35 PM

Ian Woods wrote:

> ...the programming is only really the second bit involving the
> creation of the simulation. The former is [...] often referred
> to as being part of the 'programming' for small projects. For
> larger projects (and especially in software engineering circles
> AFAIK) it's typically a completely non-trivial task of it's own
> performed by those skilled in making such models.

What I think you're calling "programming" here I call "coding".

I'd still define it as "programming", which I (in my response to
Richard's response to you) just decided to define as the creation
of the model (that is, I include both steps in "creation").

Thinking about it, there's really many (iterative) steps:

	1. Observation -- gathering data about the model
	2. Analysis -- considering the semantics of that data
	3. Synthesis -- designing a computer-based model
	4. Implementation -- coding
	5. Testing/Debugging

Any of those steps can discover a need to go back to any previous
step.  For example, debugging may discover a implementation error,
or it may uncover a design error.  The latter case could require
you to go as far back as step #1.

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/17/2004 4:15:12 PM

"Remo D." wrote:

> A pure top-down approach seems to imply a "perfect knowledge" in
> advance (I'll partition my reality in such a way that the
> different parts will only interact in predefined ways, however
> I will sub-partition them).

It doesn't have to.  It can, in some cases, be grown as you explore
the problem.  You start with the top "box"--"my program"--and then
divide that into the basic steps you know you need to accomplish.
Then divide those and so on.

The idea is that the approach is a tool for exploring the problem
space.  If it becomes "ugly", perhaps your thinking is wrong (OR
this type of analysis isn't well suited to the problem).

> A pure bottom-up approach seems to imply a "reductionist" view (Let
> me prepare all this little pieces, I simply will need to assemble
> them at a later stage).

It's tedious making the little parts, but it's fun putting them
together and "suddenly" having a "working" program after all that
long development time.  (-:

Top-down, OTOH, can provide you with a quickly "working" program,
although it'll probably be smoke and mirrors at that point.

> Maybe our (yet to discover) method for representing "models" should
> capitalize on this observation and directly suppot a way of working
> that  proceeds by attempts: an initial model is created, it is
> checked against (representations of) real cases,...

You really should read Plauger's book.  This is a big part of what
he's saying: use multiple tools/approaches to solve a problem.

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/17/2004 8:44:07 PM

Programmer Dude
> You really should read Plauger's book.  This is a big part of what
> he's saying: use multiple tools/approaches to solve a problem.

I just checked at amazon and, as far as I've understand, it's classified as
a "hard-to-find" book. They will tell me after the order if they are able to
fulfill it or not. I'll try!


0
Reply rd79 (9) 2/17/2004 10:34:08 PM

Ian Woods wrote:

> Richard Heathfield <invalid@address.co.uk.invalid> wrote in
> news:4031ca39@news2.power.net.uk:
> 
>> Ian Woods wrote:
>> 
>> <snip>
>> 
>>> "Programming is the art of learning about a (part of) (a possibly
>>> virtual) reality, and then creating a simulation of that limitted
>>> reality which can be fully performed using only the axioms provided
>>> by a computer whilst conforming to external constraints."
>>> 
>>> A bit of a mouthful, but I think it covers most of the bases!
>> 
>> How do you feel about "a computer is a device for exploring dynamic
>> models" and "programming is the art of preparing dynamic models"?
> 
> I don't like it much... you're missing the 'model must be computable'

Oh, I was missing lots and lots of stuff. I was going for "quick summary" 
rather than "definitively defining definition".

> Someone who can prepare a model of something isn't much of a programmer
> if it can't run on a computer

Get A Better Computer? :-)

> or the amazingly insightful answer will
> only benefit the user's great-great-great-great-great-grandchildren!

Depends on the question.

-- 
Richard Heathfield : binary@eton.powernet.co.uk
"Usenet is a strange place." - Dennis M Ritchie, 29 July 1999.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
K&R answers, C books, etc: http://users.powernet.co.uk/eton
0
Reply invalid29 (585) 2/17/2004 10:39:35 PM

"Calum"  ha scritto

> Instead of reality, I would use the word "abstractions".  Of course,
> real and abstract are antonyms, just like virtual and real.

 I would love to keep the word "reality"  in our discussion.

 Starting from the models, once represented in our software, a phone bill
and a blue hedgehog have exactly the same degree of reality (they are bits).
Why should we follow two different routes to model them only because we will
never find a blue hedgehog in our mail box? My mind more easily accepts the
fact that the "reality" is extended to "everything we can possibly imagine".

 Even if we use "abstraction", the next question would be "abstract with
respect to what?" And this would take as back to some form of "reality"
(IMO)

 Again a real philosopher would came handy now, I'm pretty sure that the
notion of "reality as the set of all worlds we can dream of" has been
explored by someone!

 R/D


0
Reply rd79 (9) 2/17/2004 10:56:27 PM

Let's try to summarize.

  - We all seem in agreement on the fact that "programming" (in its broader
sense, not just "coding") is a "modelling" activities. In other words, taken
a "reality" R and an event E that in R produces the effect F, we expect that
given a model M,  M(E) occuring in M(R) will produce the effect M(F).

  - From a previous observation and from a comment by Programmer Dude,
programming also seems to be a "learning experience" where the knowledge you
gain during the process is essential for the final result. This seems to be
a well-known fact among experienced programmers but, AFAIK, no one present
this aspect as very important. Rather, it's treated as a "necessary evil".
Maybe it's not?

  - A property of the models we are interested in is that they should be
computable, as Ian Wood noticed. Perfectly agreed! No point in a model that
we could not (even theoretically) run in (some form of) computer.

  - Another property is their dependance on our intentions. Unlike physics
(where models of the a part of reality tend to be created so to cover larger
and larger portions of it) we need to build completely different models
depending on the reason why we are doing it. Consider how different a "car"
will be when represented in a game, in a CAD or in a vendor catalog!

The central question seem so to be "what's relevant?" instead of "how it
works?".

But we are not progressing! How do we represent our model?

When using OO techniques, we say that "everything is representable as an
object". How "natural" is to constraint everything in hyerarchies? And to
what extente should it be "natural"? Is the "Aspect Oriented Programming"
what is missing to complete the picture?

Maybe object orientation should be abandoned (or at least redimesioned) in
favour of some other more fundamental concept? (i.e. something that is
closer to our "reality"?).

A philosophical answer could come from the ontology (that's why I mentioned
in my first messge).

Taken into consideration everything we discussed earlier, which aspects
should be taken as "primitives" to describe our "reality"?

OO took the concept of "active object" as fundamental: "the world can be
described as a set of objects that are able to interact each other".
It has been proved itself a good enough concept so far (even if it deliverd
much less than what was promised during the nineties),  but personally I'm
not 100% satisfied.

Maybe if we could take something else as our "basic building blocks", we
could achieve better results!

R/D




0
Reply rd79 (9) 2/17/2004 11:29:50 PM

"Remo D." wrote:

>  I would love to keep the word "reality" in our discussion.
                                  ^^^^^^^
Okay, well there it is!  (-:

>  ...a phone bill and a blue hedgehog have exactly the same degree
> of reality (they are bits).  Why should we follow two different
> routes to model them only because we will never find a blue hedgehog
> in our mail box?

A possible answer is that, when modeling phone bills we are
constrained by external ("real world" factors), but when modeling
blue rodentia, the constraints are largely imaginary.

> My mind more easily accepts the fact that the "reality" is
> extended to "everything we can possibly imagine".

What then to call "the real world"?  (-:


-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/18/2004 4:57:44 PM

"Remo D." wrote:

>> You really should read Plauger's book.  This is a big part of what
>> he's saying: use multiple tools/approaches to solve a problem.
> 
> I just checked at amazon and, as far as I've understand, it's
> classified as a "hard-to-find" book. They will tell me after
> the order if they are able to fulfill it or not. I'll try!

Well, probably too late if you've ordered it, but they show six
used available (from 15 USD).

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/18/2004 5:00:27 PM

Remo D. wrote:
> "Calum"  ha scritto
> 
> 
>>Instead of reality, I would use the word "abstractions".  Of course,
>>real and abstract are antonyms, just like virtual and real.
> 
> 
>  I would love to keep the word "reality"  in our discussion.
> 
>  Starting from the models, once represented in our software, a phone bill
> and a blue hedgehog have exactly the same degree of reality (they are bits).
> Why should we follow two different routes to model them only because we will
> never find a blue hedgehog in our mail box? My mind more easily accepts the
> fact that the "reality" is extended to "everything we can possibly imagine".
> 
>  Even if we use "abstraction", the next question would be "abstract with
> respect to what?" And this would take as back to some form of "reality"
> (IMO)
> 
>  Again a real philosopher would came handy now, I'm pretty sure that the
> notion of "reality as the set of all worlds we can dream of" has been
> explored by someone!

I was wondering, it an object is in our minds, is it "real"?  It's just 
that so many of the [programming] objects I tend to create don't really 
correspond to physical things.  Hey, a "bank account" is not really a 
physical thing either.  Hmm, I don't know.  A bank account exists in our 
collective minds (assuming you are not just all avatars here to amuse 
me), yet it a purely capitalist invention.  You can't pick up a bank 
account, only bits of paper alluding to the existence of this abstract 
entity.

What's the definition of "real"??

:-)

Calum

0
Reply calum.bulk (228) 2/19/2004 2:11:43 PM

Calum wrote:

> What's the definition of "real"??

Here's a very accessible article (which happens to *very* closely
parallel beliefs of mine):

http://www.boston.com/news/globe/ideas/articles/2003/10/05/out_of_the_matrix/

And speaking of the movie, the website also had some interesting
ruminations and references to the "what is reality" question.

http://whatisthematrix.warnerbros.com/

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/19/2004 6:51:09 PM

Calum wrote:

<snip>
> What's the definition of "real"??

Love these discussions!!  Let me take a stab at this:

They say reality is in the mind of the beholder, but it seems we all behold 
it.  The question is, what do we have in common?

I suggest that we all have an environment in common.  And reality is our 
conceptual representation of our environment.  Note here than I'm not 
saying anything about the environment other than that it exists, and that 
we all have certain aspects of it in common.  The differences are largely 
about the differences between us as individuals:  no two of us occupy the 
same point in space and time, and so our experiences thereof must differ.

A second attribute of reality is that it is dynamic.  They say that change 
is one of the few universal constants, and I'd order that by defining 
change as incident process, either directly or indirectly.  But the most 
important aspect as far as we're concerned is what changes mean for each of 
us:  The prime imperative of life is to survive, if not individually, then 
as a species.  So the significance of reality for each of us is in terms of 
how it affects survival.

So a third attribute of reality is that it is binary.  Reality is the 
connection between our environment, and our internal perceptual/conceptual 
model thereof.  And the purpose here is to allow us to predict, to answer 
the question, "What comes next?".  That's how we enable our own 
adaptability, which allows us to survive the changes in our environment.  
So at root, reality is about maintaining a one-to-one basic correspondence 
between the environment and the internal model.

What we do is to fork different processes from this internal model and allow 
them to play out as best they can (given what we know and have 
experienced), and this process is most often hugely complex and ultimately 
confusing to observe unless the basic model in correspondence to the 
environment remains accessible.

Now, we all discover that the changes and processes in our environment 
cannot be completely understood, and so prediction can never be absolutely 
reliable.  This generally means that we learn how to keep some number of 
forks up and running as if they were primary, and we test them regularly 
(reality checks?) to determine their validity.  Each of these, to the 
extent correspondence to the environment is observed, have intrinsic 
substance as potential aspects of the prime reality.

But there is a further complication, and that is that our experience of our 
environment is not at all reliable in itself, and so the prime reality may 
at any point be discovered invalid, such that a fork better satisfies the 
prime's one-to-one correspondence requirements.  Which means we wind up 
carrying around some number of inter-related reality "streams" that contain 
possibilities and probabilities, all of which require regular and sometimes 
continuous testing.

It has been argued that the above analysis is why our brains are as they 
are, that they evolved to address these issues and needs.  In the main, I 
think the arguments are largely compelling.  Which means that we can 
reasonably accept the analysis as valid.

If we do, then we can proceed.  The question at this point is this:  How do 
we successfully handle multiple reality streams?  There are some number of 
ways this can be done.  

One is to contrive to allow them all to run simultaneously in separate 
spaces, where the relationships between them define the ordering of those 
spaces.  To some extent, we all do this, but most of us discover that our 
natural ability to do this falls short of our apparent needs.  
Traditionally, some part of growing up involved learning how to expand 
those natural abilities, even though our experience itself fostered such 
development.  It is often discovered that the ability to force an expansion 
is a definite survival asset, but in the end, we discover that this isn't 
enough.

A second, and more efficient, way is to construct conceptual devices that 
will allow links between these streams, such that some of them can run 
unmonitored.  This works very well, because it relieves the need to be on 
constant watch, often having only one running primary reality that's well 
linked to a number of others.  But the downside of this is that this 
conceptual construct becomes a meta-reality in its own right.  What happens 
is that the meta-reality survives some number of different primaries, and 
then tends to become the default primary in itself.  This, of course, is a 
Bad Thing... <grin>

The most commonly successful way is to contrive a blend of these two ways, 
where a primary reality is carefully monitored, and a meta-meta reality 
comprising several streams of meta-realities performs relatively continuous 
link checks between the prime and the several metas.  In general, this 
meta-meta is best served as an adjunct to the primary monitor itself, which 
we call conscious awareness.  This primary monitor is driven by the input 
of one's major sensory apparatus, generally in the order of kinesthetic, 
visual, auditory/touch/smell/temperature/etc.  These inputs are coordinated 
as the real-time context for the primary monitor.  Apparently the location 
is the prefrontal cortex of the brain.

Such, then, is the physical basis of "reality".  We could say that it is our 
environment as we discern it, along with as many relevant optional streams 
of speculation as may be extant.  Artifice is the name of the game here, 
because the issues are ours, not those of our environment.  We survive to 
the extent we employ these abilities successfully, and to the extent we 
deploy them as useful and effective artifact.

The discussion of reality in this thread views it in one of its myriad 
forms.  For a "reality" to be coherent, it must be informed.  Our primary 
reality is informed by our contact with our environment.  For those we 
create from whole cloth, we must do the informing ourselves.  We do that by 
employing rules to which it must comply, as we do in mathematical and 
geometrical models.  Any reality is valid to the extent it successfully 
fills those requirements, and further does so such that it is founded on a 
form of "ground state", where more effort is required to destroy than to 
maintain it.

Dunno what you guys will make of this, but perhaps there is something of 
value here.  It's kinda off the top of my head, so is obviously incomplete 
and probably ill-formed.  I'll be happy to discuss this if you like.

Not a philosopher...

Bill Tallman  
-- 
Registered Linux User: #221586
Mdk-9.0 and Slackware-9.1
A Luxuriance of Linux!!!
0
Reply wtallman (57) 2/21/2004 4:21:45 AM

"William D. Tallman" ha scritto

> I suggest that we all have an environment in common.  And reality is our
> conceptual representation of our environment.  Note here than I'm not
> saying anything about the environment other than that it exists, and that
> we all have certain aspects of it in common.

  I would gladly accept your view but for this context it seems to be too
"reductive".
  I'm with you when you describe the reality as a "conceptual
representation", but, IMO, the constraint you impose on the "environment"
(its "existence") is too tight for the purpose of this discussion.

  I'm sure we could go round and round noting that "existance" implies "to
be part of the REAL world" and then your definition is that "reality is our
conceptual rapresentation of what is part of the REAL world" so I would
refrain to note it.

  The other things you said about "surviving" seem very relevant  to me with
respect to the fact that the process we are talking about wpuld be very
fundamental to our nature.

  But let us stop for a moment to talk about "the nature of reality" and
let's imagine that "some" reality exists and that you can apply the
modelling operation to it.

  I think that for our purpose (create a software system) it is not relevant
what this reality is made of, we are much more interesested in understanding
how we could represent it!!

  My personal preference is to include in the concept of "reality"
everything that I could possibly imagine (including "bank accounts") so to
wipe out the problem of its physical existance. When we will discuss the
problem if its representation we will see if that existance has an impact on
the discusion or not.

  R/D



0
Reply rd79 (9) 2/21/2004 8:39:19 AM

"Remo D." wrote:

> My personal preference is to include in the concept of "reality"
> everything that I could possibly imagine (including "bank accounts")
> so to wipe out the problem of its physical existance.

I've been pondering this, and I find I have a problem with defining
reality to include 'everything we can imagine'.  The problem is that
it trashes the word ("reality") and conflates the common definition
of reality with that of "imaginary".

I think I'd rather keep them separate.

Consider that I can build a model of a 747, in which case I'm making
a model based on reality.  But I can also build a model of a house
I've designed, in which case I'm making a model based on something
in my head.  I think there's a strong analogy here to programming
in that I can build a program that models something that does exist
(e.g. a very realistic flight simulator) or not (e.g. Doom).

Perhaps the problem comes from defining model making (and thereby
programming) as "modeling reality".  Maybe we should just call it
"building models".

I have some futher thoughts on reality, but will post them in reply
to William Tallman's message....

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/25/2004 8:19:13 PM

"William D. Tallman" wrote:

> Love these discussions!!  Let me take a stab at this:

Hey!  Watch out where you're stabbing!!  (-:


> They say reality is in the mind of the beholder,...

I must not be a member of "they", because I *definitely* do not
define it that way, and we can start with an interesting point:

*IS* reality really in the mind of the beholder, or does it exist
and an external object to behold?  I would certainly agree that
the internal representation of our perceptions...is just that: an
internal *representation* of our perceptions.

I just read about an incredible study.  They showed a film of a
basketball game to a group and told them to count the number of
times a certain player passed the ball.  Afterwards, they were
asked if anyone noticed anything unusual.

A *surprising* number of people never noticed the man in the
gorilla suit run through the game!  Strong focus on a task can
cause a kind of tunnel vision.

The point is that our perceptions are pretty awful.  (There is also
the fact that--considering quantum aspects of reality--even the
most perceptive of us is only seeing a sort of image of things.)


> I suggest that we all have an environment in common.  And reality
> is our conceptual representation of our environment.  Note here
> than I'm not saying anything about the environment other than that
> it exists, and that we all have certain aspects of it in common.

Yet what we may have in common about a 'thing' is only the shared,
learned identification of that thing.  Imagine, for example, that men
and women actually experience something quite different internally
when they perceive the color red.  Until we get that telepathy machine
working, we'd never know, because men and women have a common *learned*
"tag" associated with the internal experience.

It's even possible that each being has a different internal experience
and that what we really have in common is those learned tags.

> The differences are largely about the differences between us as
> individuals:  no two of us occupy the same point in space and time,
> and so our experiences thereof must differ.

Exactly.  Further, no two of us have identical brain wiring, so it
is actually possible the internal experience varies considerably
from being to being.


> A second attribute of reality is that it is dynamic.

Very!  (-:


> So a third attribute of reality is that it is binary.

This really caught my eye, because--taken out of context--I'd say
this is the exact opposite of true.  One thing chaos mathematics
has taught us is that any attempt to quantify reality into discrete
bits is doomed to failure.

But I think you mean it differently....  (-:

> Reality is the connection between our environment, and our
> internal perceptual/conceptual model thereof.  And the purpose
> here is to allow us to predict, to answer the question, "What
> comes next?"....

I think--in a different venue--I'd quibble over the wording, but
I think I do agree with the basics here.  Our model of reality
enables us to function within that reality, IF that model is
reasonably accurate.  Yes?

> So at root, reality is about maintaining a one-to-one basic
> correspondence between the environment and the internal model.

Or--at least--an as-*accurate*-as-possible map of it, yes.  One
simplistic definition of mental health is the degree to which
your internal map of reality matches the real thing.

(But, since none of us actually perceived the real thing fully.... :-)


> Now, we all discover that the changes and processes in our
> environment cannot be completely understood, and so prediction
> can never be absolutely reliable.

In fact, Quantum physics suggests pretty strongly that it is
impossible to become absolutely reliable!

> This generally means that we learn how to keep some number of
> forks up and running as if they were primary, and we test them
> regularly (reality checks?) to determine their validity.

Reality checks.  That's one reason I newsgroup!  (-:

> [big snip]

Hmmmm.  I'm not sure I'm down with you on most of this, but that
may be because you present a very abstract concept without any
kind of examples to illustrate it.  AS STATED, it sounds a little
bit like philogibberish, but maybe I'm just not grokking you.

Thing is, I'm not sure I agree about the forking process.  I have
no sense of multiple processes running in my head--only the one.
You use the term "speculation" at one point, so I gather that by
multiple processes, you are talking about imagination and guessing.

Off the top of my head, I'm not sure I agree with the "forking"
model (that might be because fork() has such a specific meaning to
me :).

We certainly do create imaginations (fantasy) and guesses (attempts
at predicting an unknown reality), and you do seem to be saying we
(if sane) distinguish them from our perception of "reality"....

I donno, we may be running into terminology issues here, and it
is off topic (and I feel like I'm typing and typing and managing
to not say anything useful), so I'm just going to skip ahead....

> [masso snip]
>
> Dunno what you guys will make of this,...

Well, to be honest, it didn't do too much for me, I guess.  Not in
any way trying to suggest any of it's wrong (or right)...just that
I'm not tying it in to anything right now.

Let me just ask you this: how do you tie any of this into programming?

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/25/2004 9:02:20 PM

Programmer Dude schrieb:
> "William D. Tallman" wrote:
> *IS* reality really in the mind of the beholder, or does it exist
> and an external object to behold?  I would certainly agree that
> the internal representation of our perceptions...is just that: an
> internal *representation* of our perceptions.

Yeah, and there's a certain kind of perceptions that we think are
perceptions of "reality". 

> > A second attribute of reality is that it is dynamic.
> 
> Very!  (-:

I disagree.
I believe that reality is characterized by persistence.
Only stuff/perceptions that persist are accepted as real.
Of course we've learned as infants to reason about them; to learn that
things that are hidden from view behave as if they persisted though we
can't see them ("when a tree falls in the forest..").

Dream worlds can be perceived, but they don't persist.

> > Reality is the connection between our environment, and our
> > internal perceptual/conceptual model thereof.  And the purpose
> > here is to allow us to predict, to answer the question, "What
> > comes next?"....

Right - and only stuff that persists, that can be expected to affect the
future, is useful to consider in that frame of reference.

> > So at root, reality is about maintaining a one-to-one basic
> > correspondence between the environment and the internal model.

No. The internal model's an abstraction; "chair" is a one-to-many
correspondence ;)

> Or--at least--an as-*accurate*-as-possible map of it, yes.  One
> simplistic definition of mental health is the degree to which
> your internal map of reality matches the real thing.

You can only measure this by how adapted an individual's actions seem to
reality - and the quality of adaption is colored by your perception of
reality... ;)

> Let me just ask you this: how do you tie any of this into programming?

Is a bug real if you can't reproduce it?

mendel
-- 
Feel the stare of my burning hamster and stop smoking!
0
Reply keine.Werbung.1300 (138) 2/25/2004 11:35:06 PM

Programmer Dude wrote:

> "William D. Tallman" wrote:
> 
>> Love these discussions!!  Let me take a stab at this:
> 
> Hey!  Watch out where you're stabbing!!  (-:

<grin>

>> They say reality is in the mind of the beholder,...
> 
> I must not be a member of "they", because I *definitely* do not
> define it that way, and we can start with an interesting point:
> 
> *IS* reality really in the mind of the beholder, or does it exist
> and an external object to behold?  I would certainly agree that
> the internal representation of our perceptions...is just that: an
> internal *representation* of our perceptions.

It's the internal representation that is the reality.  Reality is the mirror 
of our environment that we create for our own purposes.  
 
> I just read about an incredible study.  They showed a film of a
> basketball game to a group and told them to count the number of
> times a certain player passed the ball.  Afterwards, they were
> asked if anyone noticed anything unusual.
> 
> A *surprising* number of people never noticed the man in the
> gorilla suit run through the game!  Strong focus on a task can
> cause a kind of tunnel vision.
> 
> The point is that our perceptions are pretty awful.  (There is also
> the fact that--considering quantum aspects of reality--even the
> most perceptive of us is only seeing a sort of image of things.)

Actually our perceptions, within their limitations, are pretty good.  What 
we do with them is another matter and has to do with our individual 
experience bases.

>> I suggest that we all have an environment in common.  And reality
>> is our conceptual representation of our environment.  Note here
>> than I'm not saying anything about the environment other than that
>> it exists, and that we all have certain aspects of it in common.
> 
> Yet what we may have in common about a 'thing' is only the shared,
> learned identification of that thing.  Imagine, for example, that men
> and women actually experience something quite different internally
> when they perceive the color red.  Until we get that telepathy machine
> working, we'd never know, because men and women have a common *learned*
> "tag" associated with the internal experience.

Our perceptions are generated by our physical bodies, and so I think we can 
expect them to be much more similar than different.  The use we make of 
them varies with the individual, of course.
 
> It's even possible that each being has a different internal experience
> and that what we really have in common is those learned tags.

What we have in common and what we share are two different things.  Lot's of 
arguments about the nature of language and imagery, and it looks like there 
is a physical basis for much of it (not all, of course).  The statement 
that we have more in common than we realize is a human verity, as we focus 
on those things that differentiate us in order to describe our identities, 
speaks to this.  What we do with commonalities is largely prescribed by our 
survival needs of the moment, and civilization is all about such things as 
the division of labor, pooling of resources, etc.  Civilization, when 
possible, is more efficient in promoting mass survival than is basic 
tribalism, and thus provides the individual with the opportunity to enhance 
his/her own survival.  Shared commonality is the basis of civilization, and 
the medium of sharing is communication.

The point is that there are several levels of reality extant, and we take 
some of them for granted.  Those we do are often the ones that bite us 
because we weren't watching them.
 
>> The differences are largely about the differences between us as
>> individuals:  no two of us occupy the same point in space and time,
>> and so our experiences thereof must differ.
> 
> Exactly.  Further, no two of us have identical brain wiring, so it
> is actually possible the internal experience varies considerably
> from being to being.
> 
> 
>> A second attribute of reality is that it is dynamic.
> 
> Very!  (-:
> 
> 
>> So a third attribute of reality is that it is binary.
> 
> This really caught my eye, because--taken out of context--I'd say
> this is the exact opposite of true.  One thing chaos mathematics
> has taught us is that any attempt to quantify reality into discrete
> bits is doomed to failure.
> 
> But I think you mean it differently....  (-:

Well, the fulcrum here is consciousness, where our identity hangs out.  On 
one side is our environment, and on the other is our internal model 
thereof.  Consciousness is ephemeral, of course, leaving the internal model 
and the environment to engage in an ongoing dance as each informs and 
influences the other.  Like a binary star system, the major star is the 
environment and the minor is our model.
 
>> Reality is the connection between our environment, and our
>> internal perceptual/conceptual model thereof.  And the purpose
>> here is to allow us to predict, to answer the question, "What
>> comes next?"....
> 
> I think--in a different venue--I'd quibble over the wording, but
> I think I do agree with the basics here.  Our model of reality
> enables us to function within that reality, IF that model is
> reasonably accurate.  Yes?

There is a critical level of correspondence, below which survival is 
threatened.  It can never be identical, but we can test the internal model 
to see if its predictions are born out by our experiences of the 
environment.  It allows us the opportunity to make the right moves, and to 
the extent we learn how to do this, we not only survive, we thrive.

>> So at root, reality is about maintaining a one-to-one basic
>> correspondence between the environment and the internal model.
> 
> Or--at least--an as-*accurate*-as-possible map of it, yes.  One
> simplistic definition of mental health is the degree to which
> your internal map of reality matches the real thing.
> 
> (But, since none of us actually perceived the real thing fully.... :-)

Which is why science, and the Tao, for two somewhat dissimilar examples... 
<grin>

> 
>> Now, we all discover that the changes and processes in our
>> environment cannot be completely understood, and so prediction
>> can never be absolutely reliable.
> 
> In fact, Quantum physics suggests pretty strongly that it is
> impossible to become absolutely reliable!
> 
>> This generally means that we learn how to keep some number of
>> forks up and running as if they were primary, and we test them
>> regularly (reality checks?) to determine their validity.
> 
> Reality checks.  That's one reason I newsgroup!  (-:

Usenet:  Freefloating intellectual marketplace with service problems 
(sewage, for instance.... lol!!!) 
>> [big snip]
> 
> Hmmmm.  I'm not sure I'm down with you on most of this, but that
> may be because you present a very abstract concept without any
> kind of examples to illustrate it.  AS STATED, it sounds a little
> bit like philogibberish, but maybe I'm just not grokking you.

Yep.  Now the task is to see how these abstractions are manifest in the 
issue of interest; here, programming.
 
> Thing is, I'm not sure I agree about the forking process.  I have
> no sense of multiple processes running in my head--only the one.
> You use the term "speculation" at one point, so I gather that by
> multiple processes, you are talking about imagination and guessing.

My terminology is not consistent and for good reason:  it's not set.  So I 
use various metaphors and other such devices in order to further 
comprehension.  I can't say that the notion of forking is meaningful to 
others, but it seemed appropriate for me.  I guess one has to think about 
it a bit, dunno/

> Off the top of my head, I'm not sure I agree with the "forking"
> model (that might be because fork() has such a specific meaning to
> me :).
> 
> We certainly do create imaginations (fantasy) and guesses (attempts
> at predicting an unknown reality), and you do seem to be saying we
> (if sane) distinguish them from our perception of "reality"....

All internal presentations of an environment are realities, even the 
fantasies, and yes, the primary purpose is to create an opportunity to ramp 
up our preparedness by successful prediction, to perceive the possible and 
evaluate the probable.  Any one of these reality streams can become primary 
in an instant, if a different one satisfies our input from our environment 
better than the current primary (sudden changes for which we are prepared, 
etc).  So it's not our perception of reality we need to distinguish, it's 
that we maintain one that has acceptable correspondence to what we can know 
of our environment.  Thus, it's good to have "reality checks" on all 
significant reality streams (child processes?).
 
> I donno, we may be running into terminology issues here, and it
> is off topic (and I feel like I'm typing and typing and managing
> to not say anything useful), so I'm just going to skip ahead....

Yep, I understand the feeling!  
 
>> [masso snip]
>>
>> Dunno what you guys will make of this,...
> 
> Well, to be honest, it didn't do too much for me, I guess.  Not in
> any way trying to suggest any of it's wrong (or right)...just that
> I'm not tying it in to anything right now.
> 
> Let me just ask you this: how do you tie any of this into programming?

Okay, the OP was talking about modeling reality, and I presented my take on 
how we do that in our daily lives.  In real life, we have an ongoing 
iterative process where we check and adjust on a continuous basis, or we 
gamble that we can do so periodically.  We also have a fork process where 
we allow alternative and optional streams to arise in parallel with the 
working primary.  And there are other things we do, of course.

How about applying these to programming.  I think that perhaps the notion of 
creating a test for the code in parallel with the code itself is akin to 
the reality check we ordinarily do.  I think that having several different 
teams taking different approaches at different points has advantages.  I 
think that acceptance that the fact of the matter is that, when all is said 
and done, what one has done is "muddle through", as the British are wont to 
say.  In the last regard, it would mean that it would be useful to 
accommodate that approach as legitimate and see how to incorporate that 
point of view in the design and execution of a project.

So, a definition of programming might do well to speak to these views as 
well.  Maybe programming is getting a computer to perform as desired, to 
produce what is wanted from it.  Figure out what needs doing, figure out 
how the computer best does that, and write the instructions the computer 
needs to do its job.  Maybe programming is writing computer programs, and 
all the rest of this is just common sense;  apply what you know with what 
wisdom you possess and be prepared to learn a lot.

Now, I'm not a programmer (think I said that), so this is a somewhat 
informed outsider's view of all this.  I'm sure that these views run 
counter to accepted programming wisdom, but perhaps they might have some 
value if only for that reason.

Bill Tallman

0
Reply wtallman (57) 2/26/2004 5:14:54 AM

Michael Mendelsohn wrote:

>> ...the internal representation of our perceptions...is just that:
>> an internal *representation* of our perceptions.
> 
> Yeah, and there's a certain kind of perceptions that we think are
> perceptions of "reality".

And some are confused about which are which!  (-:

>>> A second attribute of reality is that it is dynamic.
>>
>> Very!  (-:
> 
> I disagree.
> I believe that reality is characterized by persistence.
> Only stuff/perceptions that persist are accepted as real.

Good point, but aren't those things which persist dynamic?  E.g., I
and everyone I've known long are persistant, but we've also changed
constantly.

> Dream worlds can be perceived, but they don't persist.

Oh, I donno about that!  My dream world where I'm a successful
musician is *quite* persistant!  (-:

Also, consider the mentally ill and their persistant perceptions!

>> One simplistic definition of mental health is the degree to which
>> your internal map of reality matches the real thing.
> 
> You can only measure this by how adapted an individual's actions
> seem to reality - 

You can also use as yardstick the distillation of common perceptions.
E.g. We mostly all think snow is cold, and this gives some objective
strength to that datum.  Maybe a more abstract e.g. is that most
people believe casual murder is wrong.  (Further, there is possible
some objective logical *analysis* supporting those views.)

>> Let me just ask you this: how do you tie any of this into
>> programming?
> 
> Is a bug real if you can't reproduce it?

If it's effects are real and detectable, definitely!

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/26/2004 7:28:27 PM

"William D. Tallman" wrote:

>> *IS* reality really in the mind of the beholder, or does it
>> exist [as] an external object to behold?
> 
> It's the internal representation that is the reality.

Ah, we disagree, then.  (And because this part of things is not
hugely on topic, I'm going to skip a lot. Those more interested
in programming aspects can skip down to [Programming])


>> The point is that our perceptions are pretty awful.
> 
> Actually our perceptions, within their limitations, are
> pretty good.

I'm afraid I don't agree with that, either.  For example, law
enforcement people are quite familiar with what bad witnesses
people make--no two will "see" the same thing.

Also, per Quantumosity, NONE of us is perceiving anything like
what's really there, and it's *possible* we all perceive what
we do perceive differently.


>> Yet what we may have in common about a 'thing' is only the
>> shared, learned identification of that thing.
> 
> Our perceptions are generated by our physical bodies, and so
> I think we can expect them to be much more similar than
> different.

I'm not sure I agree.  The wiring of the brain grows uniquely
in each individual.  The connections are different--although
similar.  I'd say the jury is still out big time on just how
common our internal experience really is.

> The point is that there are several levels of reality extant,
> and we take some of them for granted.

I would say there is one reality--dimly and individually
perceived.

> All internal presentations of an environment are realities,
> even the fantasies,...

Reality == Fantasy ??

Hmmmmmm...... doesn't work for me.  (-:
I understand what you're saying, but I prefer other terminology.


[Programming]
>> ...how do you tie any of this into programming?
> 
> I presented my take on how we [create models] in our daily
> lives.  In real life, we have an ongoing iterative process
> where we check and adjust on a continuous basis, or we gamble
> that we can do so periodically.

I think a difference is that a lot of that is subconscious.
Programming should be much more intentional. (Actually, come
to that, what we do in life should be more intentional.)

> How about applying these to programming.  I think that
> perhaps the notion of creating a test for the code in
> parallel with the code itself is akin to the reality
> check we ordinarily do.

(If that check is as intentional as TDD requires.) Yes, I like
that idea.  Good comparison.

> I think that having several different teams taking different
> approaches at different points has advantages.  I

If one can afford the resources, yes excellent.

> So, a definition of programming might do well to speak to
> these views as well.  Maybe programming is getting a computer
> to perform as desired, to produce what is wanted from it.

I sometimes tell people my job is "Training Silicon Lifeforms"!

> Maybe programming is writing computer programs, and
> all the rest of this is just common sense;...

That, too.  I doubt we can derive a one-liner (or even a para)
that fully describes--let alone defines--programming.

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/26/2004 7:57:21 PM

Programmer Dude wrote:

> "William D. Tallman" wrote:
> 
>>> *IS* reality really in the mind of the beholder, or does it
>>> exist [as] an external object to behold?
>> 
>> It's the internal representation that is the reality.
> 
> Ah, we disagree, then.  (And because this part of things is not
> hugely on topic, I'm going to skip a lot. Those more interested
> in programming aspects can skip down to [Programming])

Okay.  I guess I should point out that I'm using basic science as the 
foundation of my observations and definitions.  As an accultured species, 
we are wont to describe reality to ourselves and others in great detail, 
and science has repeatedly pointed out that we don't know very much at all 
about what we think we're discussing.  As science does not use the term 
"reality", I go with common usage and reserve it as a human artifact; thus, 
a term used to denote our common and presumable valid mental representation 
of ourselves and our environment.

>>> The point is that our perceptions are pretty awful.
>> 
>> Actually our perceptions, within their limitations, are
>> pretty good.
> 
> I'm afraid I don't agree with that, either.  For example, law
> enforcement people are quite familiar with what bad witnesses
> people make--no two will "see" the same thing.

It's not what we see, it's what we remember that is the major source of this 
problem.  Under hypnosis, we recall very much more than we would otherwise 
believe we actually know.
 
> Also, per Quantumosity, NONE of us is perceiving anything like
> what's really there, and it's *possible* we all perceive what
> we do perceive differently.
 
True and true.  The issue, I think, is the extent of the differences.

>>> Yet what we may have in common about a 'thing' is only the
>>> shared, learned identification of that thing.
>> 
>> Our perceptions are generated by our physical bodies, and so
>> I think we can expect them to be much more similar than
>> different.
> 
> I'm not sure I agree.  The wiring of the brain grows uniquely
> in each individual.  The connections are different--although
> similar.  I'd say the jury is still out big time on just how
> common our internal experience really is.

True.  I think the data supports the notion that there is a great deal of 
commonality.  We focus on the differences to support our individual 
uniqueness, and so come to diminish our appreciation of the similarities.
 
>> The point is that there are several levels of reality extant,
>> and we take some of them for granted.
> 
> I would say there is one reality--dimly and individually
> perceived.

Here, I would not use the term "reality".  Dunno exactly what I would use, 
but there are several choices, each having different connotations.  I've 
used the term "environment", because I'm talking about what is incident 
upon us.  We can also use the term "cosmos" to speak of the general 
totality of existence.   
 
>> All internal presentations of an environment are realities,
>> even the fantasies,...
> 
> Reality == Fantasy ??

Fantasy is one form of reality.  But I understand that the cultural 
tradition strives to limit the sort of mental constructs that are 
acceptable by asserting that fantasy and reality are mutually exclusive.
 
> Hmmmmmm...... doesn't work for me.  (-:
> I understand what you're saying, but I prefer other terminology.

Acknowledged.  <grin>
 
> [Programming]
>>> ...how do you tie any of this into programming?
>> 
>> I presented my take on how we [create models] in our daily
>> lives.  In real life, we have an ongoing iterative process
>> where we check and adjust on a continuous basis, or we gamble
>> that we can do so periodically.
> 
> I think a difference is that a lot of that is subconscious.
> Programming should be much more intentional. (Actually, come
> to that, what we do in life should be more intentional.)

Dunno that our mode of usage makes a difference here.  It may be that the 
modes most used by the subconscious mind are the most effective/efficient; 
after all, most of our subconscious processes have lots of experience in 
unmonitored mentation, and so has had the opportunity to weed out modes 
that don't work as well.
 
>> How about applying these to programming.  I think that
>> perhaps the notion of creating a test for the code in
>> parallel with the code itself is akin to the reality
>> check we ordinarily do.
> 
> (If that check is as intentional as TDD requires.) Yes, I like
> that idea.  Good comparison.

TDD == Test Driven Development (guesses of the top of his head...  <grin>)?

Actually, there's more to it than that, I think.  If you can create a valid 
test for the code you write, then you have a grasp on what (you think) the 
code is intended to do.  But how do you know that what you think is valid 
in terms of the eventual application of the code?  It not, the tests may be 
irrelevant, or even downright contra-indicative?

I would think that a good strategy would be to create a "use" environment 
along with the structure of the code itself, where the former would have to 
fully support the tests written to vet the latter.  I've been privy to the 
users view of applications in business, specifically in accounting, and 
I've heard the horror stories of software that didn't accommodate the 
realities of actual usage in the clerk's (hen-pen?  lol!!!).  Best guess 
was that the software was written to accommodate an ideal usage environment 
provided by the management level specifications.  As one could imagine, 
those were the only specifications available, and I suspect that this is 
common.

There are, even in my own severely limited experience, always the situations 
where one posits impossible conditions (things that cannot happen).  Those 
are theoretical considerations, of course; things that should not be 
possible.  Yet all too often the unthinkable happens, and for reasons and 
in ways not previously envisioned.  I'm well aware that this is part of 
'Programming 101' in the view of most programmers, but it continues to be a 
problem (security holes, etc).

So, it seems to me that a significant part of the design of a software 
package should be a careful and thorough evaluation of all the ways its 
usage could be misused and abused, and that should take place right along 
with the development of the design itself.  This is, in point of fact, a 
significant difference between the behavior of a mature adult and the 
behavior of the immature adolescent.  Not that the adolescent is stupid, 
just inexperienced.  Programmers are not, or certainly should not be, 
inexperienced, at least in that regard!
 
>> I think that having several different teams taking different
>> approaches at different points has advantages.  I
> 
> If one can afford the resources, yes excellent.

Another thought:  modularization at several levels.  Stand-alone modules 
that are capable of gracefully handling input of any kind, where the 
default (kind/style of) input is what is expected.  I get this from both 
general and specific (computer) experience.  One of the things we do is to 
discover our capabilities and our limitations (the latter inevitably, one 
way or the other... <grin>).  Our capabilities we eventually hone into 
skill sets, which are successful to the extent they can be applied in a 
wide variety of situations.  One or more of these are generally used to 
support our livelihood.  A skill set becomes a reality stream in its own 
right (think like a ......), and very many people manage to allow it to 
become primary (can't stop thinking like a .....).  You get the idea... 
<grin>

Of course, the whole idea of *NIX itself is just that:  lots of tools and 
utilities that can be assembled to form a process... (sits thinking...are 
there UNIX utilities that can't be piped?  If so, what and why not....).  
Ultimately, *NIX wins simply because it most closely emulates how most of 
us do things anyway:  we assemble our skills on an ad hoc basis and muddle 
through our lives, hoping in the process to expand our skills and our 
awareness of our limitations in the process.

Now, the degree to which modularization is extended into some number of 
levels is a matter of choice, I would suppose.  But one things seems clear:  
getting a discrete module to be bullet proof should be a hell of a lot 
easier than getting an entire application to that point.

I'm prepared to learn that I've just re-invented part of the second mandated 
lecture from Programming 101, of course.  In any case, I've showed how our 
understanding of our lives in general can be applied to programming.  Which 
was the purpose of this response... <grin>
 
>> So, a definition of programming might do well to speak to
>> these views as well.  Maybe programming is getting a computer
>> to perform as desired, to produce what is wanted from it.
> 
> I sometimes tell people my job is "Training Silicon Lifeforms"!

And wouldn't you be shocked to eventually discover that you were right!!!  
What are the chances that alien life will be discovered right here in our 
own backyard, that what we thought were micro computers are actually nano 
beings!!  ROFL!!!!
 
>> Maybe programming is writing computer programs, and
>> all the rest of this is just common sense;...
> 
> That, too.  I doubt we can derive a one-liner (or even a para)
> that fully describes--let alone defines--programming.
 
True enough, I think.  At least it's arguably true of life in general.

Good discussion!

Bill Tallman
-- 
Registered Linux User: #221586
Mdk-9.0 and Slackware-9.1
A Luxuriance of Linux!!!

0
Reply wtallman (57) 2/27/2004 1:03:40 AM

"William D. Tallman" wrote:

>>>> *IS* reality really in the mind of the beholder,
>>>
>>> It's the internal representation that is the reality.
>>
>> Ah, we disagree, then.
> 
> As an accultured species, we are wont to describe reality to
> ourselves and others in great detail, and science has repeatedly
> pointed out that we don't know very much at all about what we
> think we're discussing.

So true!  However, as you touch on later wrt shared internal models,
we share a great deal of the *experience* of that external world
and share it incredibly precisely (I'm referring to scientific
experiments, e.g., which return identical and precise results no
matter who does the experiment or where they do it).

Once we go beyond solipsism, these precisely shared experiences go
a long way towards suggesting the consistancy (persistance, as
another poster put it) of the "real world".

> As science does not use the term "reality", I go with common usage
> and reserve it as a human artifact;

Okay, at least I'll understand what you mean when you talk about
reality.  I'm very much a "map is not the territory" kinda guy, so
(as I've said earlier) I'm not happy calling that map by a term I
reserve for the territory.  Science may not use the term, but I sure
do, and it means, basically, "what's out there".


>>> ...our perceptions, within their limitations, are pretty good.
>>
>> ...law enforcement people are quite familiar with what bad
>> witnesses people make--no two will "see" the same thing.
> 
> It's not what we see, it's what we remember that is the major
> source of this problem.  Under hypnosis, we recall very much
> more than we would otherwise believe we actually know.

(Hypnosis has also brought out false memories, though.)  I re-read
a short article I earlier referred to, and I'm going to have to
disagree that memory is the problem.  *Perception* is very much the
issue here.

The experiment went like this: You are a member of a group that is
going to be shown a 60-second video displaying two teams consisting
of three members each.  One team wears white shirts, the other black.
They will be passing two balls amongst themselves (article is not
clear on whether passing can go from team to team or only within).

YOUR MISSION is to count the number of passes made by the white team.

At the 35-second mark a gorilla (man in suit), comes into the scene
and stands around waving his arms for 9 seconds and then leaves.

As many as 50% (!!!) of test subjects do not see the gorilla, EVEN
when asked if they saw anything unusual.  I forget the term used by
the article for the phenomena--my video game buddy and I refer to it
as "target fixation".  (-:

So, no, it ain't just memory that's faulty.  It's perception itself!


>> I would say there is one reality--dimly and individually perceived.
> 
> Here, I would not use the term "reality".  [...] I've used the term
> "environment", because I'm talking about what is incident upon us.
> We can also use the term "cosmos" to speak of the general totality
> of existence.

Stubbornly, I like "reality", but "environment" and "cosmos" are
also good.  I think we know what we mean here.


>> Reality == Fantasy ??
> 
> Fantasy is one form of reality.

Agreed, but that's the conundrum, isn't it.  Saying that gives you
the odd equality quoted above.  There is also an element of play--
sane people know the difference between fantasy and, um, reality.

Those who don't live in a different perceptual world.

> But I understand that the cultural tradition strives to limit the
> sort of mental constructs that are acceptable by asserting that
> fantasy and reality are mutually exclusive.

[shrug] Can't say any of that means anything to me.  Reality (to me)
comes from "real world" and LotR just ain't "real world".  I find
nothing traditional or socially limiting in the distinction.


But, let's move into..

>> [Programming]
>>
>> Programming should be much more intentional.
> 
> Dunno that our mode of usage makes a difference here.  It may be
> that the modes most used by the subconscious mind are the most
> effective/efficient;

Definitely some truth to that!  One can sometimes solve a problem
by NOT thinking about it and letting the subcon level munch on it
for a while.

> TDD == Test Driven Development

Yep.

> Actually, there's more to it than that, I think.  If you can create
> a valid test for the code you write, then you have a grasp on what
> (you think) the code is intended to do.  But how do you know that
> what you think is valid in terms of the eventual application of
> the code?  It not, the tests may be irrelevant, or even downright
> contra-indicative?

Pretty much the exact conclusion reached in the TDD thread next door!
(Reached, that is, by some people--others disagree.)

> I would think that a good strategy would be to create a "use"
> environment along with the structure of the code itself, where
> the former would have to fully support the tests written to vet
> the latter.  I've been privy to the users view of applications
> in business, specifically in accounting, and I've heard the
> horror stories of software that didn't accommodate the
> realities of actual usage in the clerk's (hen-pen?  lol!!!).

Indeed!  One of my big "meta-rules" is that software is for humans,
not computers.  You do NOT design code to be convenient for the
CPU--it doesn't mind the extra work (far as I know, but if it does,
tough, it's my little silicon slave and it'll darn well do what I
tell it to do).  You design software for the **users**.

Speaking of use environments, I find my GUIs begin to evolve and
become much better once the product grows to the point I can begin
simulating actual use.  I run a LOT of user-level tests, and the
more heavily a fixture will be used, the more heavily I test it.

If using a common fixture becomes tedious to me (test after test
after test after test....), I know it will to the user.  So I make
it better, easier, faster.  But always, I try to think like a user
when I design the system.

> Best guess was that the software was written to accommodate an
> ideal usage environment provided by the management level
> specifications.

Or designed by someone who didn't think much about it or who used
inappropriate criteria in designing or who just didn't talk much
(or more importantly, LISTEN much) to the users.

Programmers are often not socially oriented or socially skilled,
and user requirements gathering can be a VERY social task.  Yourdon
(and co.) wrote a good book, "Structured Analysis & Design" that
talks a lot about this aspect of system design.


> There are, even in my own severely limited experience, always the
> situations where one posits impossible conditions (things that
> cannot happen).  Those are theoretical considerations, of course;
> things that should not be possible.  Yet all too often the
> unthinkable happens, and for reasons and in ways not previously
> envisioned.

Very true.  This is one reason, for example, when testing to see if
a number sequence reaches a certain value, I NEVER EVER test for that
specific value.  I test to see if it's over or under or equal-to-or-
under or whatever.  That way if the "unthinkable" happens causing the
sequence to skip a step, I don't risk missing the loop termination.

> I'm well aware that this is part of 'Programming 101' in the view
> of most programmers, but it continues to be a problem...

Lotta crap programmers out there.  :-(

> So, it seems to me that a significant part of the design of a
> software package should be a careful and thorough evaluation of
> all the ways its usage could be misused and abused, and that
> should take place right along with the development of the design
> itself.

Absolutely!!!  "Go ahead, TRY to break it!" should be a big part
of everyone's development cycle.


> Another thought:  modularization at several levels.  Stand-alone
> modules that are capable of gracefully handling input of any kind,
> where the default (kind/style of) input is what is expected.

Yep.  That is a standard aspect of design, in fact.

> A skill set becomes a reality stream in its own right (think like
> a ......), and very many people manage to allow it to become primary
> (can't stop thinking like a .....).  You get the idea...  <grin>

Certainly.  This is why cross-training (on many levels) and inter-
disciplinary education are so valuable.

> But one things seems clear: getting a discrete module to be bullet
> proof should be a hell of a lot easier than getting an entire
> application to that point.

Generally.  If for no other reason than that there are so many more
"variables" affecting the final product.  I wrote just today that
programming is like writing a book where you aren't allowed one single
typo, spelling error or grammatical error.  Let alone that you have
to write a story that is logical and sensible.

Much easier to get a paragraph right than a novel!  (-:


>> I sometimes tell people my job is "Training Silicon Lifeforms"!
> 
> And wouldn't you be shocked to eventually discover that you were
> right!!!

[grin]

> Good discussion!

Very!!

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 2/27/2004 8:19:52 PM

The gorilla video is available on one of the researchers' site,

http://viscog.beckman.uiuc.edu/media/sciam.html


Martin
0
Reply martin.eisenbergNOS (92) 2/28/2004 4:57:14 PM

Martin Eisenberg wrote:

> The gorilla video is available on one of the researchers' site,
> 
> http://viscog.beckman.uiuc.edu/media/sciam.html

ROFL!  Thanks!!

-- 
|_ CJSonnack <Chris@Sonnack.com> _____________| How's my programming? |
|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL  |
|_____________________________________________|_______________________|
0
Reply Chris7 (2511) 3/2/2004 4:10:18 PM

27 Replies
22 Views

(page loaded in 0.233 seconds)

5/20/2013 11:53:06 AM


Reply: