Re: Philosphy of programming

From: William D. Tallman (wtallman_at_olypen.com)
Date: 02/27/04


Date: Thu, 26 Feb 2004 17:03:40 -0800

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!!!


Relevant Pages

  • Re: Philosphy of programming
    ... It's the internal representation that is the reality. ... of our environment that we create for our own purposes. ... Consciousness is ephemeral, of course, leaving the internal model ... issue of interest; here, programming. ...
    (comp.programming)
  • Re: Who Says Cable Is Where Its At?
    ... starting in the fall at the same time as the broadcast networks' own ... many cable channels show is reality programming, ...
    (rec.arts.tv)
  • Next season expected to be CWs make-or-break year
    ... Reality May Be The CW's New Reality ... CBS Corp.'s perennially unprofitable ... would make the new CW network instantly profitable. ... focused on containing programming costs like never before. ...
    (rec.arts.tv)
  • Re: Philosphy of programming
    ... > It's the internal representation that is the reality. ... in programming aspects can skip down to ) ... Also, per Quantumosity, NONE of us is perceiving anything like ...
    (comp.programming)
  • MyNetworkTV sets Fall lineup
    ... MyNetworkTV Seeks Arresting Programming ... A new unscripted series from the producers of Cops will appear on a ... The lineup includes four reality shows, ... programming, MNT is going to lower-cost reality fare, one of which it ...
    (rec.arts.tv)