The Philosophy of Programming?

  • Follow


OK, let us begin anew. Without irony, I shall ask this group these
questions:

(1) Is there a philosophy of computer programming?

(2) Is its discussion on-topic?

I shall collect all responses to this post, and code the responder as
in favor of, or denying, (1) whether there is a philosophy of
programming and (2) whether its discussion is on-topic for this
newsgroup.
0
Reply spinoza1111 (3250) 2/12/2004 2:42:55 AM

In article <f5dda427.0402111842.d51b3f5@posting.google.com>,
Edward G. Nilges <spinoza1111@yahoo.com> wrote:
>OK, let us begin anew. Without irony, I shall ask this group these
>questions:
>
>(1) Is there a philosophy of computer programming?

I think that there can be philosophical aspects to programming. In 
large systems, a lot of what programmers do is to develop abstractions 
and languages for expressing ideas and processes more easily. 
Personally, the process of developing abstractions gets me thinking 
a lot about what I'd consider to be philosophical issues.

Of course, these broader issues are often rightly at the mercy of more
practical considerations. 

>(2) Is its discussion on-topic?

I think that is can be, but as has been discussed in other threads, 
it's easy to get off-topic, particularly as this group is chartered to 
cover the practical aspects of programming.

-Mike
-- 
http://www.mschaef.com
0
Reply mschaef2 (138) 2/12/2004 3:09:54 AM


In article <f5dda427.0402111842.d51b3f5@posting.google.com>,
Edward G. Nilges <spinoza1111@yahoo.com> wrote:
>OK, let us begin anew. Without irony, I shall ask this group these
>questions:
>
>(1) Is there a philosophy of computer programming?

Define "philosophy of computer programming", in terms that
an average programmer could understand.  Assume your audience
has never taken a philosophy course.

>(2) Is its discussion on-topic?
>
>I shall collect all responses to this post, and code the responder as
>in favor of, or denying, (1) whether there is a philosophy of
>programming and (2) whether its discussion is on-topic for this
>newsgroup.


0
Reply chiuk (37) 2/12/2004 3:17:47 AM

spinoza1111@yahoo.com (Edward G. Nilges) wrote in 
news:f5dda427.0402111842.d51b3f5@posting.google.com:

> OK, let us begin anew. Without irony, I shall ask this group these
> questions:
> 
> (1) Is there a philosophy of computer programming?

Yes. This, is in fact, what programmers should learn when they become 
programmers. For the avoidance of doubt, and to make sure that nobody 
takes this as a comment for "Well, that makes the philosophy of Descartes 
on-topic.", here's a quote from the dictionary closest to me:

Philosophy
....
3. the critical study of the basic principals and concepts of a 
discipline, e.g. the philosophy of law.
....

> (2) Is its discussion on-topic?

For the most part, what is topical in comp.programming is one or more 
aspects of the discipline and the resulting examination, research, 
thought, analysis and study is the philosophy of programming.

Not all posts about the philosophy of programming is topical IMO, though. 
I could, of course, make a number of posts about what programming I did 
today, the problems I found and how I solved them. At best that's at a 
rather extreme 'edge' of topicallity, unless there is something 
specifically about what I did which is of interest to others.

Notably, the charter says...

> comp.programming is an unmoderated group for discussions of
> programming issues which are not limited to a specific machine,
> operating system, or language: in particular, algorithms of all
> types. ``Programming issues'' means _practical_ programming
> issues: it is considered very bad form here to discuss issues
> with which you do not have direct programming experience.

So, no, posts which are only about the philosophy of programming I don't 
think are topical in general. The key aspect here is that specific issues 
from the discipline are topical.
 
> I shall collect all responses to this post, and code the responder as
> in favor of, or denying, (1) whether there is a philosophy of
> programming and (2) whether its discussion is on-topic for this
> newsgroup.

I'd also like to see... (3) whether the responder thinks if the 
philosophy of programming includes sociology. My vote there is that it 
doesn't.

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/12/2004 3:23:15 AM

In article <f5dda427.0402111842.d51b3f5@posting.google.com>, spinoza1111
@yahoo.com says...
> OK, let us begin anew. Without irony, I shall ask this group these
> questions:
> 
> (1) Is there a philosophy of computer programming?

Obviously.  PhD CS.  Duh.  Is any of your commentary of that level?
No.

> (2) Is its discussion on-topic?

If you want to discuss graduate level topics in CS, fine, particularly
pertaining to algorithms.  If you want to discuss how programmers feel 
when their manager doesn't invite them to lunch for a discussion of 
classical philosophers, no.


-- 
Randy Howard                
2reply remove FOOBAR 
      
0
Reply randyhoward (3272) 2/12/2004 4:53:46 AM

Edward G. Nilges wrote:
> OK, let us begin anew. Without irony, I shall ask this group these
> questions:
> 
> (1) Is there a philosophy of computer programming?

Philosophy is a property of human beings.  Any activity performed by 
people, including programming, may reflect their philosophy.

> (2) Is its discussion on-topic?

Within reason.  Most of the "philosophies" you preach don't seem to be 
on topic.  I have not read your posts with careful attention, but they 
do seem to be inflammatory and irrelevant.  I apologize if those words 
sound harsh; I'm not trying to condemn you as an individual.

> I shall collect all responses to this post, and code the responder as
> in favor of, or denying, (1) whether there is a philosophy of
> programming and (2) whether its discussion is on-topic for this
> newsgroup.

Congratulations.  Everybody collects something.

0
Reply Jeff 2/12/2004 5:56:05 AM

Ian Woods wrote:

> here's a quote from the dictionary closest to me:
> 
> Philosophy
> ...
> 3. the critical study of the basic principals and concepts of a
> discipline, e.g. the philosophy of law.

Get a better dictionary - one that can spell "principles". :-)

-- 
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 dontmail (1884) 2/12/2004 7:32:36 AM

Edward G. Nilges wrote:

> OK, let us begin anew.

Is that an apology for the abuses Mr Nilges has heaped upon this newsgroup? 
If so, he needs to make it more explicit. If not, we cannot realistically 
begin anew.

> Without irony, I shall ask this group these
> questions:
> 
> (1) Is there a philosophy of computer programming?

No, there is no single philosophy of computer programming. In fact, there 
are probably at least as many philosophies of computer programming as there 
are programmers.


> (2) Is its discussion on-topic?

Question 2 assumes that the answer to question 1 is "yes", and the 
assumption is incorrect.

The topic of comp.programming is laid out clearly in its charter. As the 
charter says:

  "Programming issues" means _practical_ programming issues: it
  is considered very bad form here to discuss issues with which
  you do not have direct programming experience.

So the question becomes - "is it possible to have direct programming 
experience of a philosophy of computer programming?" to which the answer 
would appear to be "maybe". So the answer to the question is "it depends".

> I shall collect all responses to this post, and code the responder as
> in favor of, or denying, (1) whether there is a philosophy of
> programming and (2) whether its discussion is on-topic for this
> newsgroup.

Since Question 1 made a flawed assumption and Question 2 assumes a binary 
(yes/no) response range, the "encoding" is unlikely to be a useful one.

-- 
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 dontmail (1884) 2/12/2004 7:40:33 AM

spinoza1111@yahoo.com (Edward G. Nilges) wrote in message news:<f5dda427.0402111842.d51b3f5@posting.google.com>...
> OK, let us begin anew. Without irony, I shall ask this group these
> questions:
> 
> (1) Is there a philosophy of computer programming?

There is, at the root of all things we do, some philosophical
assertions and truths we use.    I don't think programming, being such
a mingled application of various branches of mathematics and logic,
has what you could call a philosophy 'of its own' but philosophy acts
on it for certain.

> (2) Is its discussion on-topic?

Worth tracing in so far as tracing mathematical and logical philosophy
assists the mathematician (and logician) in applying what is known.

In a math group someone may ask 'every time i think 1+1 i think 2...
why is that?' - to answer this deeply requires reference to the truths
we hold for mathematics.

In this group someone may ask something, 

"when i try this:

a=1
b=2 
const c=a+b

the compiler chokes.  what does mean 'constant expression required',
what is constant..."

Well, do we talk philosophy about the meaning of constancy, or
practically about how the compiler attempts to treat the const at
compile time?  Does one inform the other negating the need?  I'd say
both are legitimate, but the former is more likely to defocus into a
very generalised discussion, suited to this.is.it.folks as i've
mentioned before.

> I shall collect all responses to this post, and code the responder as
> in favor of, or denying, (1) whether there is a philosophy of
> programming and (2) whether its discussion is on-topic for this
> newsgroup.

Will you code us using hungarian notation?   ;)
0
Reply gswork (648) 2/12/2004 9:00:13 AM

In article <f5dda427.0402111842.d51b3f5@posting.google.com>, spinoza1111@yahoo.com (Edward G. Nilges) wrote:
>OK, let us begin anew. Without irony, I shall ask this group these
>questions:
>
>(1) Is there a philosophy of computer programming?

Yes, insofar as there is can be a philosophy of anything, cats, bathroom 
decor, etc.  

>(2) Is its discussion on-topic?

Why not?

>I shall collect all responses to this post, and code the responder as
>in favor of, or denying, (1) whether there is a philosophy of
>programming and (2) whether its discussion is on-topic for this
>newsgroup.

The political activist seeks a spurious democratic imprimitur.  If you 
have a philosophy of programming to propound, do it, so long as it does 
not consist of your usual stream-of-consciousness reflex left-wing 
dribble. 

Lately I have been re-reading John Kennedy Toole's excellent _A 
Confederacy of Dunces_.  I am dumbstruck by how much your intellectual 
output represents what I would expect of the offspring of Ignatius 
Reilly and Myrna Minkoff, should they succeed in having any.  I 
recommend it to you, if only as a kind of mirror.

- Gerry Quinn


0
Reply gerryq2 (435) 2/12/2004 1:40:55 PM

In article <81f33a98.0402120100.5bed8035@posting.google.com>, gswork@mailcity.com (gswork) wrote:
>a=1
>b=2 
>const c=a+b
>
>the compiler chokes.  what does mean 'constant expression required',
>what is constant..."

The constant expression is not constant.  It is the very centre of the 
game!

- Gerry Quinn
0
Reply gerryq2 (435) 2/12/2004 1:42:42 PM

spinoza1111@yahoo.com (Edward G. Nilges) wrote in message news:<f5dda427.0402111842.d51b3f5@posting.google.com>...
> OK, let us begin anew. Without irony, I shall ask this group these
> questions:
> 
> (1) Is there a philosophy of computer programming?
> 
> (2) Is its discussion on-topic?
> 
> I shall collect all responses to this post, and code the responder as
> in favor of, or denying, (1) whether there is a philosophy of
> programming and (2) whether its discussion is on-topic for this
> newsgroup.

there is no real yes/no answer to these questions.
saying "yes" to "philosophy on c.p" is likely to get
many off-topic rants, ranging from quotes from long-dead
philosophers to content-free posts of significance
to a minority of readers on this group.

saying "no" to "philosophy on c.p" denies many posts
which are relevant to the majority of the readers on
c.p (UI discussions, for example).

I would venture:
Yes, but make sure your post is devoid of too many
references to religion, sociology, chemistry, 
botany, politics, etc.

Especially politics and religion. Sociology can also
get peopled riled up :-) IOW, try to avoid inflammatory
postings.

<off-topic advice>
You have an opinion that you want to share, right?
And presumably you base that opinion on fact, right?
On comp.programming you have a seemingly vast audience,
right?
But somehow, your message is not getting across, right?

You agree with me thus far? If you dont, then I'm afraid
that I am unable to help you, although if you *do*, then
read on ...

The best method of getting your /message/ across to
the masses of comp.programming readers is to avoid
going in with flailing fists. Your first post in this 
group (afaict) to a very respected regular was
inflammatory, impolite and just plain arrogant.

Your second impediment to getting your message across
is the unnecessary verbosity of your postings. If,
in an entire paragraph, you are able to make 1 point
that could have easily been made with a 5 word sentence,
then most readers suspect you of evading a point.
Your presentation skills need a lot of work before
you find a single message of yours appealing to
the majority of readers.

This posting of yours is a shining example
of how postings *should* be: short and to
the point. Try this posting style again, you may
be pleasantly surprised. This single post of your
has more content and relevance to this NG that
all of your postings for the last week combined.

There is skill required in being terse *and* clear.
This skill is not possessed by many (see how long
my response is, for example; I make no pretence
that I have the skill to be terse and clear at
the same time).

The third hurdle that you will have to clear is
this: most of the readers here are just as if not
more qualified than you are AND have just as much
if not more experience in this field than you
have. Every single one of your postings thus far
have assumed that the reader is not as good as
you, or that the argument against is not as well
thought out as your argument for. 

An example of this can be found on any of your
diatribes on the C programming language. You
constantly make the claim that "C is an outdated
language", but provide no proof; you call the
language "unsafe" because of programs crashing,
ignoring the fact that programs built with other
languages are also crashing.

If you want to discuss something specific (like
the viability of language X for a certain task),
then a thread devoted to that with a clear subject
line would probably bring you more views, and more
information than one that simply bashes language X.

<sidenote>
It is also clear to the more experienced C programmers
here that your grasp of C as a language is at worst
non-existent, and at best fuzzy around the edges.
</sidenote>

You /can/ post opinions, but it is always much
better to post proof :-). You say "the C language
is outdated", my response is going to be "no it
isn't, there is more C software than any other type
currently in the world".

If, otoh, you were to say "C is horrible for building
large good-quality enterprise systems", then I might
even agree with you (but only "might"; say it and
we'll see :-).

Heres hoping that you and the regulars of this group
will actually be able to /discuss/ the differing
views, and maybe get a refreshingly *new* view
every once in a while. If, of course, they refuse 
to forgive your past transgressions, then there
is nothing you or I can do about it.

However you stand a better chance of appearing
credible to future c.p readers (remember, most
new programmers come here first) if you present
terse, well-balanced, non-inflammatory opinions
backed up proof of any claims.

have a nice day,
   goose,
0
Reply ruse (722) 2/12/2004 4:02:18 PM

"Edward G. Nilges" <spinoza1111@yahoo.com> wrote in
news:f5dda427.0402111842.d51b3f5@posting.google.com...
> OK, let us begin anew. Without irony, I shall ask this group these
> questions:
>
> (1) Is there a philosophy of computer programming?

The term 'philosophy' is often misused as a synonym for 'off-topic', or even
'meaningless'. In that sense, there's plenty of 'philosophy' in
programming...

But let's face it: programming won't tell us anything about what we are
(metaphysics) what we shall do (ethics) what we can know (logics) or what we
may believe (philosophy of religion).
There are indeed some interesting ties to philosophy of mind, but I think
these are better discussed in *.philosophy.* or *.AI.* newsgroups.

Most aspects of computer programming that might seem 'philosophical' at
first glance (like UI design, choices of programming languages/tools, design
patterns, programming paradigms, etc) are only questions of efficiency on a
very high level.
I don't think there's really much philosophy in it.

Taste, style, or choice, maybe. But no 'seeking wisdom for itself'.

> (2) Is its discussion on-topic?

Discussion of what?

<snip>

Niki


0
Reply niki.estner (62) 2/12/2004 4:57:00 PM

"Edward G. Nilges" wrote:

> OK, let us begin anew. Without irony,...

I suspect this only masks your on-going agenda, but I will take
you at face value for now.

> (1) Is there a philosophy of computer programming?

Certainly.

> (2) Is its discussion on-topic [in comp.programming]?

Certainly.


> I shall [...] code the responder as in favor of, or denying, (1)
> whether there is a philosophy of programming ...

I have a problem with this.  First "denying" is not the opposite
of being "in favor of". Second, more importantly, by coding the
responses in "either/or" fashion, you destroy all probative value.
Third, the question is poorly asked, because you do not specify
what you mean by "philosophy".  As you can see from the replies,
people give it varied meanings.

(Fourth, your general tendancy to rank philosophies in extreme
and polarized fashion (either "wonderful" or "horrible") probably
creates some suspicion about your ability to participate in any
discussion of programming philosophy.)

The bottom line is, I think you need to better qualify the meaning
of (and perhaps also your intentions about) programming philosophy.

That said, I think there are philosophies of programming (and of
most interesting endeavors) at many levels and in many areas.

> ... and (2) whether its discussion is on-topic for this newsgroup.

This question is somewhat like "what's the *real* speed limit" of
a road.  The answer depends on myriad factors: weather, traffic,
road quality, vehicle quality, etc.  You need to apply some fuzzy
logic.

The oft-repeated answer hasn't changed. If the topic related directly
to the art/craft/philosophy of programming AND has somewhat of an
exclusive connection, THEN it is probably on topic.

BUT REMEMBER, "on topic" is a fuzzy concept, not a black-letter one.

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

Gerry Quinn wrote:

> In article <f5dda427.0402111842.d51b3f5@posting.google.com>, spinoza1111@yahoo.com (Edward G. Nilges) wrote:
> 
>>OK, let us begin anew. Without irony, I shall ask this group these
>>questions:
>>
>>(1) Is there a philosophy of computer programming?
> 
> 
> Yes, insofar as there is can be a philosophy of anything, cats, bathroom 
> decor, etc.  
> 
> 
>>(2) Is its discussion on-topic?
> 
> 
> Why not?
> 

Because by answering yes an unqualified as you have, you leave open the
door to discussions of philosophy which could be claimed to be relevant
herein because both X and programming are human activities.

In that case, a general discussion of philosophy and how it relates
to any old human activity, including programming, would be off-topic.

He knows it, and is just trying to trip people up into admitting
that all the useless nonsense he has spewed forth since he found
comp.programming is justified.  It's not.

So, don't go there.

[snip]
0
Reply dbtid5 (15) 2/12/2004 5:19:37 PM

Edward wrote:
) OK, let us begin anew. Without irony, I shall ask this group these
) questions:
)
) (1) Is there a philosophy of computer programming?

Maybe.  Depends on how you define 'philosophy'.

) (2) Is its discussion on-topic?

Usually not, depending on definition.

) I shall collect all responses to this post, and code the responder as
) in favor of, or denying, (1) whether there is a philosophy of
) programming and (2) whether its discussion is on-topic for this
) newsgroup.

Oh, I'm sorry.  I didn't know you forbade answers other than 'yes' or 'no'
to your questions.  From the fact that the questions are not answerable by
'yes' or 'no' I inferred that you allowed other answers.
It appears that I didn't follow your rules, there.


SaSW, Willem
-- 
Disclaimer: I am in no way responsible for any of the statements
            made in the above text. For all I know I might be
            drugged or something..
            No I'm not paranoid. You all think I'm paranoid, don't you !
#EOT
0
Reply willem (1478) 2/12/2004 5:28:12 PM

gswork wrote:

> In this group someone may ask something,
> 
> "when i try this:
> 
> a=1
> b=2
> const c=a+b
> 
> the compiler chokes.  what does mean 'constant expression required',
> what is constant..."

I don't know "const" and "constant expression" 
as a general programming concepts.
I only know them as C code concepts.
Are they general programming concepts also ?

-- 
pete
0
Reply pfiland (6613) 2/12/2004 6:56:38 PM

Gerry Quinn wrote:

> Lately I have been re-reading John Kennedy Toole's excellent _A
> Confederacy of Dunces_.

Ah, good book!

> I am dumbstruck by how much your intellectual output represents
> what I would expect of the offspring of Ignatius Reilly and Myrna
> Minkoff, should they succeed in having any.  I recommend it to
> you, if only as a kind of mirror.

Ouch!  (-:

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

Niki Estner wrote:

>> (1) Is there a philosophy of computer programming?
> 
> The term 'philosophy' is often misused as a synonym for 'off-topic',
> or even 'meaningless'.

I think, perhaps, in this case we can define it as: "an overall
approach or outlook; a unified set of heuristic tools; a point
of view".

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

dbtid wrote:

> Gerry Quinn wrote:
> 
>>>(2) Is its discussion on-topic?
>> 
>> Why not?
> 
> Because by answering yes an unqualified as you have, you leave open the
> door to discussions of philosophy which could be claimed to be relevant
> herein because both X and programming are human activities.

No, he doesn't. The width of the door is determined by the charter, not by 
the responses of half a dozen people in a single thread.

-- 
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 dontmail (1884) 2/12/2004 8:15:05 PM

> (1) Is there a philosophy of computer programming?
No in the sense that (AFAIK) no one wrote any article, book on that topic
(mmm.... this is not entirely true, I've got a couple of books but they
seems to be more interested in the impact the computers "in general"
modified our way of thinking).

Yes in the sense the I think there should exists one and should be studied
by someone competent (which excludes me!)

> (2) Is its discussion on-topic?

I've read about the "practical aspects" required to be on topic but still I
think this is a "practical" topic to discuss.

Three arguments come to my mind the seems to me very relevant to what we
practically do everyday (while programming):

The correspondance between reality and its description (the "modelling
relationship")
Ontology: what's real? (What should we regard as part of reality and what
should we disregard?)
Epistemology: How do we learn? (How do we get the knowledge we need to
create our software?)

I would love to see a discussion on those topics made by programmers and
philosophers, I'm sure we'll get a better understanding of our work!

RD


0
Reply rd79 (9) 2/12/2004 8:38:08 PM

spinoza1111@yahoo.com (Edward G. Nilges) wrote in message news:<f5dda427.0402111842.d51b3f5@posting.google.com>...
> OK, let us begin anew. Without irony, I shall ask this group these
> questions:
> 
> (1) Is there a philosophy of computer programming?

Different people prefer different approaches to programming, but I
don't know if they qualify as a philosophy.  Does Larry Wall's
statement that the three qualities of a great programmer are Laziness,
Impatience, and Hubris count as a philosophy?
0
Reply kcline17 (123) 2/12/2004 9:12:56 PM

"Remo D." wrote:

>> (1) Is there a philosophy of computer programming?
>
> No in the sense that (AFAIK) no one wrote any article, book...

Two books for your consideration: CODE COMPLETE (Steve McConnell)
and--a personal favorite--PROGRAMMING ON PURPOSE (P. J. Plauger).


> Three arguments come to my mind the seems to me very relevant
> to what we practically do everyday (while programming):

Very Nice!!  Here's hoping they kick off something interesting!
They could all go in interesting directions...


> The correspondance between reality and its description (the
> "modelling relationship")

This seems the most meaningful to me. I can see a number of levels
you could talk about.  There is the issue of rounding off analog
reality for digital representation.  Related is an issue regarding
precision--how precise your model can be.

Or the difference between an internal representation of a real
world thing (e.g. a map or CAD file of a part) and that thing.

On a whole other level, the description by your customer/client
of their needs verses the reality of those needs.


> Ontology: what's real? (What should we regard as part of reality
> and what should we disregard?)

I don't get much "zing" from this one.  Maybe someone else will.


> Epistemology: How do we learn? (How do we get the knowledge we
> need to create our software?)

Lotta things to talk about.  Programmer self-education.  Education
of proto-programmers by educators.  User training.  Analysing a
problem or client's needs.


Food for thinking! (-:

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

Kevin Cline wrote:

> Does Larry Wall's statement that the three qualities of a great
> programmer are Laziness, Impatience, and Hubris count as a
> philosophy?

To the extent that philosophy can colloquially mean "point of view",
the ideas (along with his text expressing them) *are* (IMO) at least
a mini-philosophy.

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

spinoza1111@yahoo.com (Edward G. Nilges) wrote in message news:<f5dda427.0402111842.d51b3f5@posting.google.com>...
> OK, let us begin anew. Without irony, I shall ask this group these
> questions:
> 
> (1) Is there a philosophy of computer programming?
> 
> (2) Is its discussion on-topic?
> 
> I shall collect all responses to this post, and code the responder as
> in favor of, or denying, (1) whether there is a philosophy of
> programming and (2) whether its discussion is on-topic for this
> newsgroup.

Thanks to all for replying. On a 1..10 scale where 1 is disagree and
10 is agree

Mschaef: 8
Ken Chiu: ?: had a question, answered separately
Randy Howard: 10 (but narrow concerns and the usual net.abuse)
Richard Heathfield: 6 (missed the point)
Gswork: 5 (feels philosophy so broad as to apply anywhere)
Gerry Quinn: 10 (please no left wing stream of consciousness bullshit:
sorry, Gerry)

Howard and Quinn feel that the philosophy should be restricted to the
philosophical theory of algorithms. The problem is, this doesn't
exist, at least in any immediately recognizable form.

There's a mathematical theory of algorithms, of course. 

But any theory which failed to account for the real-world correctness
of an algorithm in totality would be mathematical formalism.

Note that math really wants to tell us, not whether an algorithm is
correct but whether it "halts" and that it can only tell us if a
MATHEMATICAL algorithm is correct.

It cannot tell us whether a payroll program is correct.

That's because programming has a neglected social phenomenology.

A toy program has a null referent, or a referent consisting in a
formal mathematical statement, and its "satisfaction" of the referent
can be proven inside mathematical formalism.

But a REAL program has a social referent which is commonly called "the
needs of the user".

OK, this is a philosophical issue because it is a demand for truth.
Philosophy is love of truth.

What I'm saying is that it is clear that programmers want to be
considered to be professionals but at the same time want to stay
inside a Hilbertian-formalist game with uninstantiated symbols (where
"Hilbertian" means "of the school of mathematical formalist David
Hilbert) such that they can determine, by a formal, mathematical,
procedure, that their code meets "requirements" that for this reason
have themselves to be in a formal notation such as UML.

The problem is, as I pointed out in my review posted here in Dec 2000
of Steve McConnell's After the Gold Rush, is that no profession can
set up, as a profession, without acknowledging its "phenomenological"
relationship to the world that contains the profession, where
"phenomenology" is the philosophical acknowledgement that
consciousness, including professional consciousness, is consciousness
"of" something...such as the needs of the end user, or, perhaps, the
needs of the customer who the end user is exploiting, or assisting,
using the data system.

Lawyers educate themselves outside the law to do the law. For example,
Presidential candidate John Edwards educated himself about obstetrics
in order to challenge doctors on their decision to use Caesarian
section, or not use it, based on fetal heart rates. Note that I expect
a riposte to this very anecdote to be "it wuz unfair he made so much
munny", which only indicates in my view subprofessional and tradesman
concern with making a fast buck, which ascribes the same motivation to
everybody. John Edwards' JOB was to help families pay millions in
medical costs, and care for retarded children, and in our society he
gets a slice of the pie for doing this job, just like we do when we
code programs.

A lawyerette friend told me she became an expert on those Star Wars
cranes you see in ports because her client wanted to prove that for
the purpose of the law, they are "vessels".

Good doctors similarly look outside the patient's physical symptoms to
his social life and my father was, as a physican, a member of a
physican anti-nuclear group because he felt it his responsibility to
worry about the medical consequences of nuclear war.

Hard scientists do politics. Al Einstein wasn't anti-Fascist because
of his physical discoveries, of course, but in order to do science
without some moron police agent telling him to stay inside Newtonian
frameworks, he had to relate physics to philosophy and to society.

But, in programming we see narrowness of focus almost celebrated and
in terms of Dijkstra's dilemma (Craftsman or Scientist?) this makes us
Craftsmen. But perhaps Craftsmen can be philosophers. Heidegger
thought so.

The consensus, from which I demur, is that the "philosophy" should be
some strange Higher Sodomy in the form of the theoretical analysis of
algorithms.

The mistake is one I made on a paper for Gilbert Harman at Princeton.
Since my philosophical background was in "analytic" philosophy, I
witlessly wrote "philosophy is not interested in these
considerations".

Harman wrote back "philosophy is interested in everything". 

Therefore I think that there should be an epistemology of REAL
programs and it unavoidably has a social dimension.

Left wing stream of consciousness? All I can say is that yesterday in
the New York Times, an article appeared that described how the Mafia
has, over several years, used phone companies to add charges from
various shady organizations to electronic bills.

In a manual system, it wouldn't even be possible to add these charges,
and the clerk might question them. In a manual system, the consumer
would call the billing clerk and he'd erase them.

But the very speed of the technology means, in all probability, when
these charges (sometimes triggered by a visit to a porn site) appear,
MOST consumers simply pay them. Given electronic technology, the
secrecy of source code, and even Voice Mail Hell, it is easier, if you
have the money, to pay an incorrect bill.

Who is the programmer that wrote the extra code, that allows the
flybynighter to add the charges? Is his code "correct"?

This is a philosophical question because it entails the ethical
question of whether an End User can be an unethical person, and if he
is, what the "professional programmer" should do.

Of course there are subgroups for ethics in computation...but these
immediately narrow the question to ethics alone. Discussion of ethics
alone, without broader epistemological and even metaphysical concerns,
turns into normative and bo-ring discussion which merely reaffirms
normalcy and in fact allows the goombahs to persist in scamming, since
the programmer, considering whether to work for what might be a front,
hasn't gotten the sophistication to look past normal life.
0
Reply spinoza1111 (3250) 2/12/2004 11:21:13 PM

chiuk@cs.indiana.edu (Kenneth Chiu) wrote in message news:<c0er8r$eak$1@hood.uits.indiana.edu>...
> In article <f5dda427.0402111842.d51b3f5@posting.google.com>,
> Edward G. Nilges <spinoza1111@yahoo.com> wrote:
> >OK, let us begin anew. Without irony, I shall ask this group these
> >questions:
> >
> >(1) Is there a philosophy of computer programming?
> 
> Define "philosophy of computer programming", in terms that
> an average programmer could understand.  Assume your audience
> has never taken a philosophy course.

Certain things one does, and certain things one believes, are correct
and true and in terms of the ancient Greeks, have what they call
arete, what we might call overall coolness.

For example, playing basketball usually is a true thing, and believing
that most people you meet are O.K. has arete. Whereas ripping off
widows and orphans and believing you will get rich in a chain letter
don't have arete and are bogus.

Note that at this early stage of philosophical reflection, we even
avoid the language of Truth and of Falsity because we don't want the
scientifically minded to confuse Arete and Bogusness with the very
different and highly mathematized Truth and Falsity of science.

Instead I use a combination of ancient Greek (ripped off from Robert
M. Pirsig's Zen and the Art of Motorcycle Maintenance) and street
argot to express a need for a language that doesn't assume that
science has all the answers.

It might, but it is a philosophical stance to avoid such an
assumption.

What's interesting is that programmers, it is evident from this
newsgroup alone, have very strong ideas about arete vs heinousness,
coolness versus dorkiness...without either the science or the language
to talk about it without foaming at the mouth.

My philosophical suspicion is that science has asserted, without
meaning to, that its notions of Truth/Falsity exhaust truth and
falsity, and socially this leaves all other deliberation out in the
cold, without the self-esteem or even the language to express itself.

The problem is that on a scientific basis alone, there is no such
thing as a "good" program because in terms of natural science and
outside a social context, a source program is trivial and equivalent
to its binary expression.

The philosophy of computer programming would ask what it is that we do
(metaphysics), how we know when we're done (epistemology) and whether
what we do is good (ethics).

> 
> >(2) Is its discussion on-topic?
> >
> >I shall collect all responses to this post, and code the responder as
> >in favor of, or denying, (1) whether there is a philosophy of
> >programming and (2) whether its discussion is on-topic for this
> >newsgroup.
0
Reply spinoza1111 (3250) 2/12/2004 11:31:10 PM

Richard Heathfield <dontmail@address.co.uk.invalid> wrote in message news:<c0falg$mj9$1@titan.btinternet.com>...
> Edward G. Nilges wrote:
> 
> > OK, let us begin anew.
> 
> Is that an apology for the abuses Mr Nilges has heaped upon this newsgroup? 
> If so, he needs to make it more explicit. If not, we cannot realistically 
> begin anew.
> 
> > Without irony, I shall ask this group these
> > questions:
> > 
> > (1) Is there a philosophy of computer programming?
> 
> No, there is no single philosophy of computer programming. In fact, there 
> are probably at least as many philosophies of computer programming as there 
> are programmers.

Love this guy. He reinterprets the question so as to be able to give
the response he wants.

Richard, to do philosophy is to come up with multiple answers and "a
philosophy" could well turn out to be n>1.



> 
> 
> > (2) Is its discussion on-topic?
> 
> Question 2 assumes that the answer to question 1 is "yes", and the 
> assumption is incorrect.
> 
> The topic of comp.programming is laid out clearly in its charter. As the 
> charter says:
> 
>   "Programming issues" means _practical_ programming issues: it
>   is considered very bad form here to discuss issues with which
>   you do not have direct programming experience.

OK, on this basis, discussion of social context, including anecdotal
accounts of real-world experience (as seen, for example, in Weinberg's
The Psychology of Computer Programming), are by definition things,
with which, we have, direct, programming, experience. As Elwood said
in the Blues Brothers, "I knows all about exploitation: I been
exploited all my life."

"Practical" is one-half of theory+praxis. In philosophy, the practical
reason addresses how you apply your metaphysics and your theory of
knowledge to ethics.

Thus a question in the philosophy of programming would be in fact
whether it is good praxis to sacrifice micro-efficiency for one less
Annoying Temporary Variable, which like The Man Who Came To Dinner, is
allocated, in many languages, on function entry and released on exit
(an effiency tax which has to be subtracted from the saving) and which
might be used at the wrong time when its state is out of date (a
maintainability tax).

How do you balance efficiency and readability? Many programmers
concede that maintainability is nice but in their heart of hearts
would really rather that all of those considerations go away. For me,
it was Fun to master raw, uncooked machine language, and to write
working code that nobody understood.

A philosophical question, that might well interrogate the gals on
feminist theory, would be in fact why programmers are in many cases
systematically reluctant to use higher-level paradigms such as OO. For
even "machine language" is a constructed abstract built on top of
hardware, and perhaps the very socially constructed reality makes us
anxious, and desirous of what might be ultimately, a regression to
barbarism.

Sorry. That was left-wing stream of consciousness. However, when I
see, and in the past, had to maintain, C code written by "experts"
that enthusiastically abandoned "good practice", I have wondered
whether I was not seeing Adorno's prophecy of regression.


> 
> So the question becomes - "is it possible to have direct programming 
> experience of a philosophy of computer programming?" to which the answer 
> would appear to be "maybe". So the answer to the question is "it depends".

"Direct programming experience of a philosophy of programming?" Come
on, big fella, you are playing with the words.

> 
> > I shall collect all responses to this post, and code the responder as
> > in favor of, or denying, (1) whether there is a philosophy of
> > programming and (2) whether its discussion is on-topic for this
> > newsgroup.
> 
> Since Question 1 made a flawed assumption and Question 2 assumes a binary 
> (yes/no) response range, the "encoding" is unlikely to be a useful one.

I coded on a one to ten scale.
0
Reply spinoza1111 (3250) 2/12/2004 11:43:28 PM

gswork@mailcity.com (gswork) wrote in message news:<81f33a98.0402120100.5bed8035@posting.google.com>...
> spinoza1111@yahoo.com (Edward G. Nilges) wrote in message news:<f5dda427.0402111842.d51b3f5@posting.google.com>...
> > OK, let us begin anew. Without irony, I shall ask this group these
> > questions:
> > 
> > (1) Is there a philosophy of computer programming?
> 
> There is, at the root of all things we do, some philosophical
> assertions and truths we use.    I don't think programming, being such
> a mingled application of various branches of mathematics and logic,
> has what you could call a philosophy 'of its own' but philosophy acts
> on it for certain.
> 
> > (2) Is its discussion on-topic?
> 
> Worth tracing in so far as tracing mathematical and logical philosophy
> assists the mathematician (and logician) in applying what is known.
> 
> In a math group someone may ask 'every time i think 1+1 i think 2...
> why is that?' - to answer this deeply requires reference to the truths
> we hold for mathematics.
> 
> In this group someone may ask something, 
> 
> "when i try this:
> 
> a=1
> b=2 
> const c=a+b
> 
> the compiler chokes.  what does mean 'constant expression required',
> what is constant..."

The newbie is trying to deconstruct because he's innocent of the
language game, and he reads the message against the grain. He thinks a
and b must be constant because they were assigned constant values, and
he wants to tell the compiler that c is also constant.

The nonphilosopher teaches him a language game in which assignment
does NOT preserve constancy.

If the newbie tries to declare a and b as const before speaking to the
nonphilosopher programmer, he probably will get the same error
message.

The philosopher-programmer would speculate that an optimizer compiler
which violates the C standard could indeed decide that a, b and c are
all Const, and this would cause the newbie's program to compile.

[If I declare a and b as const, am I correct, all you C experts, in
thinking they cannot be assigned? I mean, the C compiler doesn't
magically transform all the code into preprocessor code, does it? I
hope not!]

The philosopher-programmer like the Algol designers wants to give a
formal meaning to as many constructs as possible because he imagines
(in perhaps a Platonist fashion) that "out there" there exists an
ideal, formal language which we could make-real by writing a monster
compiler.

The Algol team seems to have had problems in making this vision come
true, and the (philosophical *malgre lui*) discovery of the C team was
that by down-sizing the vision, and making a simplified language
definitive of the ideal, they could actually get some work done on a
DEC 10 for a change instead of sitting in cafes in Antwerp, discussing
the ideal.

The "philosophy of programming" would link these developments to the
earlier attempt in Principia Mathematica to devise an ideal language
and would renarrate the way Bertie Russell wore himself, and several
special-purpose typewriters, out, at a task which bears a strange
resemblance to programming without a computer because of its formal
demands.

> 
> Well, do we talk philosophy about the meaning of constancy, or
> practically about how the compiler attempts to treat the const at
> compile time?  Does one inform the other negating the need?  I'd say
> both are legitimate, but the former is more likely to defocus into a
> very generalised discussion, suited to this.is.it.folks as i've
> mentioned before.
> 
If you have general culture, and I must be brutal, this is the only
case where the discussion does not so devolve. There is a link between
prewar efforts in symbolic logic, and programming, constituted in the
idea of formalism coupled with the wartime demands for fast
computation.

While many individual engineers circa WWII were merely concerned with
ordnance tables and innocent of the recent history of logic, John von
Neumann knew all about modern mathematical developments.


> > I shall collect all responses to this post, and code the responder as
> > in favor of, or denying, (1) whether there is a philosophy of
> > programming and (2) whether its discussion is on-topic for this
> > newsgroup.
> 
> Will you code us using hungarian notation?   ;)
0
Reply spinoza1111 (3250) 2/12/2004 11:56:41 PM

In article <f5dda427.0402121531.15479f3a@posting.google.com>,
Edward G. Nilges <spinoza1111@yahoo.com> wrote:
>chiuk@cs.indiana.edu (Kenneth Chiu) wrote in message
>news:<c0er8r$eak$1@hood.uits.indiana.edu>...
>> In article <f5dda427.0402111842.d51b3f5@posting.google.com>,
>> Edward G. Nilges <spinoza1111@yahoo.com> wrote:
>> >OK, let us begin anew. Without irony, I shall ask this group these
>> >questions:
>> >
>> >(1) Is there a philosophy of computer programming?
>> 
>> Define "philosophy of computer programming", in terms that
>> an average programmer could understand.  Assume your audience
>> has never taken a philosophy course.
>
>Certain things one does, and certain things one believes, are correct
>and true and in terms of the ancient Greeks, have what they call
>arete, what we might call overall coolness.
>
>For example, playing basketball usually is a true thing, and believing
>that most people you meet are O.K. has arete. Whereas ripping off
>widows and orphans and believing you will get rich in a chain letter
>don't have arete and are bogus.

So this sounds like you are asking whether or not
programmers, as a whole, consider some programs to be
"better" than others.  In that case, certainly there is a
philosophy of programming.

>
>Note that at this early stage of philosophical reflection, we even
>avoid the language of Truth and of Falsity because we don't want the
>scientifically minded to confuse Arete and Bogusness with the very
>different and highly mathematized Truth and Falsity of science.
>
>Instead I use a combination of ancient Greek (ripped off from Robert
>M. Pirsig's Zen and the Art of Motorcycle Maintenance) and street
>argot to express a need for a language that doesn't assume that
>science has all the answers.
>
>It might, but it is a philosophical stance to avoid such an
>assumption.
>
>What's interesting is that programmers, it is evident from this
>newsgroup alone, have very strong ideas about arete vs heinousness,
>coolness versus dorkiness...without either the science or the language
>to talk about it without foaming at the mouth.

Huh?  Are you saying all programmers become raving lunatics
when trying to express why some programs are better than
others?


>
>My philosophical suspicion is that science has asserted, without
>meaning to, that its notions of Truth/Falsity exhaust truth and
>falsity, and socially this leaves all other deliberation out in the
>cold, without the self-esteem or even the language to express itself.
>
>The problem is that on a scientific basis alone, there is no such
>thing as a "good" program because in terms of natural science and
>outside a social context, a source program is trivial and equivalent
>to its binary expression.

Well, kind of.  There are two ways to judge a progam.
One is mostly subjective and requires a social context:

    Is it easy to maintain?
    Is it flexible?
    Is it elegant?

But you can also judge a program outside of a social
context:

    Is it correct?
    What is the time complexity?
    What is the space complexity?
    Is it robust to bad input?

>
>The philosophy of computer programming would ask what it is that we do
>(metaphysics), how we know when we're done (epistemology) and whether
>what we do is good (ethics).
>
>> 
>> >(2) Is its discussion on-topic?
>> >
>> >I shall collect all responses to this post, and code the responder as
>> >in favor of, or denying, (1) whether there is a philosophy of
>> >programming and (2) whether its discussion is on-topic for this
>> >newsgroup.


0
Reply chiuk (37) 2/13/2004 12:00:46 AM

gerryq@indigo.ie (Gerry Quinn) wrote in message news:<6lLWb.2506$rb.57458@news.indigo.ie>...
> In article <81f33a98.0402120100.5bed8035@posting.google.com>, gswork@mailcity.com (gswork) wrote:
> >a=1
> >b=2 
> >const c=a+b
> >
> >the compiler chokes.  what does mean 'constant expression required',
> >what is constant..."
> 
> The constant expression is not constant.  It is the very centre of the 
> game!
> 
> - Gerry Quinn

Heidegger wrote a lot of incomprehensible stuff about technology but
one thing that makes sense is his apparent point that technology only
reveals itself when it breaks.

In a practical sense, you learn auto mechanics when the car is broken,
or under construction at the plant.

Thus the newbie's error should be a philosophical moment in which
somebody, without ripping him a new a-hole, teaches him what a const
is.

However, much computer pedagogy has the reverse effect.

It assumes without argument that everything (1) works and (2) will be
used in a normalized fashion.

The result is that nonprogramming users and newbie programmers learn
self-blame when things go wrong and this has significantly increased
workplace authoritarianism, and lowered the benefit of a productivity
increase.

I see the result in this ng as wounded spirits celebrate what they
think are error rates but which are the effect of narratory
replication.
0
Reply spinoza1111 (3250) 2/13/2004 12:01:33 AM

In article <f5dda427.0402121543.46a36235@posting.google.com>,
Edward G. Nilges <spinoza1111@yahoo.com> wrote:
>Thus a question in the philosophy of programming would be in fact
>whether it is good praxis to sacrifice micro-efficiency for one less
>Annoying Temporary Variable, which like The Man Who Came To Dinner, is
>allocated, in many languages, on function entry and released on exit
>(an effiency tax which has to be subtracted from the saving) and which
>might be used at the wrong time when its state is out of date (a
>maintainability tax).

Just curious, could you give an example of this in C?  Many
modern compilers will produce the same code regardless of
temporary variables.
0
Reply chiuk (37) 2/13/2004 12:11:45 AM

Edward G. Nilges wrote:

> Richard Heathfield <dontmail@address.co.uk.invalid> wrote in message
> news:<c0falg$mj9$1@titan.btinternet.com>...
>> Edward G. Nilges wrote:
>> 
>> > OK, let us begin anew.
>> 
>> Is that an apology for the abuses Mr Nilges has heaped upon this
>> newsgroup? If so, he needs to make it more explicit. If not, we cannot
>> realistically begin anew.
>> 
>> > Without irony, I shall ask this group these
>> > questions:
>> > 
>> > (1) Is there a philosophy of computer programming?
>> 
>> No, there is no single philosophy of computer programming. In fact, there
>> are probably at least as many philosophies of computer programming as
>> there are programmers.
> 
> Love this guy. He reinterprets the question so as to be able to give
> the response he wants.

I answered the question that was asked. If the wrong question was asked, 
that is not my problem.

> Richard, to do philosophy is to come up with multiple answers and "a
> philosophy" could well turn out to be n>1.

From other articles he has posted to this newsgroup, it is possible to infer 
that Mr Nilges is still at school. If that inference is correct, then it is 
perhaps understandable that he does not yet know the difference between 
singular and plural. Perhaps he should consult his teacher on the matter.


>> > (2) Is its discussion on-topic?
>> 
>> Question 2 assumes that the answer to question 1 is "yes", and the
>> assumption is incorrect.
>> 
>> The topic of comp.programming is laid out clearly in its charter. As the
>> charter says:
>> 
>>   "Programming issues" means _practical_ programming issues: it
>>   is considered very bad form here to discuss issues with which
>>   you do not have direct programming experience.
> 
> OK, on this basis, discussion of social context, including anecdotal
> accounts of real-world experience (as seen, for example, in Weinberg's
> The Psychology of Computer Programming), are by definition things,
> with which, we have, direct, programming, experience.

Let's see the source code, then.


<snip>

> How do you balance efficiency and readability?

They aren't necessarily in opposition.

> Many programmers
> concede that maintainability is nice but in their heart of hearts
> would really rather that all of those considerations go away. For me,
> it was Fun to master raw, uncooked machine language, and to write
> working code that nobody understood.

Code that nobody understands is, almost by definition, broken.


>> So the question becomes - "is it possible to have direct programming
>> experience of a philosophy of computer programming?" to which the answer
>> would appear to be "maybe". So the answer to the question is "it
>> depends".
> 
> "Direct programming experience of a philosophy of programming?" Come
> on, big fella, you are playing with the words.

Mr Nilges is incorrect. I was merely attempting to answer his question with 
reference to the topic of the newsgroup. If the answer doesn't make sense, 
that could just be the fault of the question.


>> > I shall collect all responses to this post, and code the responder as
>> > in favor of, or denying, (1) whether there is a philosophy of
>> > programming and (2) whether its discussion is on-topic for this
>> > newsgroup.
>> 
>> Since Question 1 made a flawed assumption and Question 2 assumes a binary
>> (yes/no) response range, the "encoding" is unlikely to be a useful one.
> 
> I coded on a one to ten scale.

That doesn't have any bearing on the usefulness of the encoding.


-- 
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 dontmail (1884) 2/13/2004 12:23:48 AM

Edward G. Nilges wrote:

> I see the result in this ng as wounded spirits celebrate what they
> think are error rates but which are the effect of narratory
> replication.

(High) error rates are not a cause for celebration; rather, they are a cause 
for sadness and reflection. What can be done to reduce high error rates?

The answer is very simple: we could write code properly. "Narratory 
replication" is an utter canard. The important thing is to write code 
properly.

-- 
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 dontmail (1884) 2/13/2004 12:27:33 AM

On 12 Feb 2004 15:31:10 -0800, spinoza1111@yahoo.com (Edward G.
Nilges) wrote:

>chiuk@cs.indiana.edu (Kenneth Chiu) wrote in message news:<c0er8r$eak$1@hood.uits.indiana.edu>...
>> In article <f5dda427.0402111842.d51b3f5@posting.google.com>,
>> Edward G. Nilges <spinoza1111@yahoo.com> wrote:
>> >OK, let us begin anew. Without irony, I shall ask this group these
>> >questions:
>> >
>> >(1) Is there a philosophy of computer programming?

[snip]

>My philosophical suspicion is that science has asserted, without
>meaning to, that its notions of Truth/Falsity exhaust truth and
>falsity, and socially this leaves all other deliberation out in the
>cold, without the self-esteem or even the language to express itself.
>
>The problem is that on a scientific basis alone, there is no such
>thing as a "good" program because in terms of natural science and
>outside a social context, a source program is trivial and equivalent
>to its binary expression.
>
>The philosophy of computer programming would ask what it is that we do
>(metaphysics), how we know when we're done (epistemology) and whether
>what we do is good (ethics).

This kind of raises the question if programming is nothing more than
just following a strict set of given rules and algorithms to create
your program or if it has an actual creative component to it.

Can it be compared to just solving a math problem. Or is it like
trying to engineer the perfect solution for a given problem even
though you know you will never reach that perfection and something can
always be improved. Which would suggest that it's almost like writing
music or creating a painting.

Just my 2 cents.



0
Reply nospam95 (822) 2/13/2004 2:46:17 AM

"Rick D." <nospam@hotmail.com> wrote in message news:qieo209jhmjauhh2f2u1rqjgm4jcq4afhn@4ax.com...

> This kind of raises the question if programming is nothing more than
> just following a strict set of given rules and algorithms to create
> your program or if it has an actual creative component to it.
>
> Can it be compared to just solving a math problem. Or is it like
> trying to engineer the perfect solution for a given problem even
> though you know you will never reach that perfection and something can
> always be improved. Which would suggest that it's almost like writing
> music or creating a painting.

If it was the former, the so-called "Fifth Generation project"
might have gotten somewhere other than into the round-file...

--
Joe Foster <mailto:jlfoster%40znet.com>  Sign the Check! <http://www.xenu.net/>
WARNING: I cannot be held responsible for the above        They're   coming  to
because  my cats have  apparently  learned to type.        take me away, ha ha!


0
Reply joe303 (601) 2/13/2004 3:09:42 AM

In article <qieo209jhmjauhh2f2u1rqjgm4jcq4afhn@4ax.com>,
Rick D.  <nospam@hotmail.com> wrote:
>On 12 Feb 2004 15:31:10 -0800, spinoza1111@yahoo.com (Edward G.
>Nilges) wrote:
>
>>chiuk@cs.indiana.edu (Kenneth Chiu) wrote in message
>news:<c0er8r$eak$1@hood.uits.indiana.edu>...
>>> In article <f5dda427.0402111842.d51b3f5@posting.google.com>,
>>> Edward G. Nilges <spinoza1111@yahoo.com> wrote:
>>> >OK, let us begin anew. Without irony, I shall ask this group these
>>> >questions:
>>> >
>>> >(1) Is there a philosophy of computer programming?
>
>[snip]
>
>>My philosophical suspicion is that science has asserted, without
>>meaning to, that its notions of Truth/Falsity exhaust truth and
>>falsity, and socially this leaves all other deliberation out in the
>>cold, without the self-esteem or even the language to express itself.
>>
>>The problem is that on a scientific basis alone, there is no such
>>thing as a "good" program because in terms of natural science and
>>outside a social context, a source program is trivial and equivalent
>>to its binary expression.
>>
>>The philosophy of computer programming would ask what it is that we do
>>(metaphysics), how we know when we're done (epistemology) and whether
>>what we do is good (ethics).
>
>This kind of raises the question if programming is nothing more than
>just following a strict set of given rules and algorithms to create
>your program or if it has an actual creative component to it.
>
>Can it be compared to just solving a math problem. Or is it like
>trying to engineer the perfect solution for a given problem even
>though you know you will never reach that perfection and something can
>always be improved. Which would suggest that it's almost like writing
>music or creating a painting.

I think there is also a creative component to math, at least
as I see it used in CS.  For example, there are different
formal models for reasoning about concurrrent processes,
some of which solve similar problems.  Their development
seems to involve an element of creativity.
0
Reply chiuk (37) 2/13/2004 3:17:08 AM

In article <f5dda427.0402121521.53544e0d@posting.google.com>, spinoza1111
@yahoo.com says...
> 
> Thanks to all for replying. On a 1..10 scale where 1 is disagree and
> 10 is agree
> 
> Randy Howard: 10 (but narrow concerns and the usual net.abuse)

How did you manage to decide that I agree with you on this?  I said
there is a PhD in CS available, which conveniently enough has the
word "philosophy" encoded in it.  Thereby making the question far
too vague to be of any use to anyone, as the article I am replying
to amply proves that nothing related to a PhD in CS is in your
thoughts when you pose the question.  

I remind you that doctoral level discussions about computer science issues 
such as algorithms would obviously be perfectly on topic here.  If I 
scored my own response, rather than through your obviously biased glasses, 
it would be closer to a 2.  If we clarify your question to something like
"Does Mr. Nilges' style of philosophy discussions meet the topicality of
comp.programming?" My answer would be scored as a 1, and that only because
you have not allowed for a score of 0.

> But a REAL program has a social referent which is commonly called "the
> needs of the user".

> OK, this is a philosophical issue because it is a demand for truth.

If that is the case, then it is off-topic here.  I'm not directly 
familiar with such groups, but you might consider alt.philosophy.debate
to see if you can find any takers.

> What I'm saying is that it is clear that programmers want to be
> considered to be professionals but at the same time want to stay
> inside a Hilbertian-formalist game with uninstantiated symbols (where
> "Hilbertian" means "of the school of mathematical formalist David
> Hilbert) such that they can determine, by a formal, mathematical,
> procedure, that their code meets "requirements" that for this reason
> have themselves to be in a formal notation such as UML.

This is (despite being a poorly constructed sentence) an overreaching 
stereotype which appears to be completely unfounded.   As such, with
or without any degree of accuracy, it is also off-topic because it
has nothing to do with programming.

I can't find a newsgroup which centers around stereotypes.  However,
you seem like a likely person to propose one where such things could
be explored in more depth.

> The problem is, as I pointed out in my review posted here in Dec 2000
> of Steve McConnell's After the Gold Rush, is that no profession can
> set up, as a profession, without acknowledging its "phenomenological"
> relationship to the world that contains the profession, where
> "phenomenology" is the philosophical acknowledgement that
> consciousness, including professional consciousness, is consciousness
> "of" something...such as the needs of the end user, or, perhaps, the
> needs of the customer who the end user is exploiting, or assisting,
> using the data system.

Despite the repetitiveness of reading this for about the 30th time,
I must again point out that this is a programming newsgroup, not a
"relationship of individuals with 'programmer' in or nearby their job
title to the world" group.

Perhaps alt.talkers.nuts would be a good place to try?

> Lawyers educate themselves outside the law to do the law. For example,
> Presidential candidate John Edwards educated himself about obstetrics ...

alt.lawyers perhaps?  It's certainly not an algorithms issue.

> A lawyerette friend told me she became an expert on those Star Wars
> cranes you see in ports because her client wanted to prove that for
> the purpose of the law, they are "vessels".

alt.stories ??  Certainly nothing whatsoever to do with programming.

> Good doctors similarly look outside the patient's physical symptoms to
> his social life and my father was, as a physican, a member of a
> physican anti-nuclear group because he felt it his responsibility to
> worry about the medical consequences of nuclear war.

alt.war.nuclear ?? Certainly not on topic here.

> Hard scientists do politics. Al Einstein wasn't anti-Fascist because
> of his physical discoveries, of course, but in order to do science
> without some moron police agent telling him to stay inside Newtonian
> frameworks, he had to relate physics to philosophy and to society.

alt.sci.physics.new-theories ?? Certainly nothing programming related here 
either.

> But, in programming we see narrowness of focus almost celebrated and
> in terms of Dijkstra's dilemma (Craftsman or Scientist?) this makes us
> Craftsmen. But perhaps Craftsmen can be philosophers. Heidegger
> thought so.

Using the word once every 250 words or so, as an all-too-transparent cover
for things other than programming doesn't make it topical.

Perhaps a trip to alt.support.schizophrenia, or 
sci.med.diseases.mental.schizophrenia is in order.

> The consensus, from which I demur, is that the "philosophy" should be
> some strange Higher Sodomy

This is probably not worth finding an appropriate newsgroup.  It hardly
seems likely that any group would be appropriate for that. 
 
> Harman wrote back "philosophy is interested in everything". 

Well, then one of the philosophy newsgroups should be very interested
in your posts, regardless of content.  If nothing else, 
talk.philosophy.misc would be a good starting point.  Note that
programming is not "interested in everything".  Programmers might be,
at least some of them, but that is why there are so many wonderful 
newsgroups to choose from when their diverse interests are not on topic here.  

> Therefore I think that there should be an epistemology of REAL
> programs and it unavoidably has a social dimension.

But is also unavoidably does not have a programming dimension.  
alt.lunatics perhaps?

> Left wing stream of consciousness? All I can say is that yesterday in
> the New York Times, an article appeared that described how the Mafia
> has, over several years, used phone companies to add charges from
> various shady organizations to electronic bills.

I have no doubt this is of interest in alt.crime, but certainly not here.

> Who is the programmer that wrote the extra code, that allows the
> flybynighter to add the charges? Is his code "correct"?

If he's posts his code here and asks for help verifying it is correct
it will be on topic.  Trying to guess whether he will or not is more
appropriately taken up in alt.mindcontrol perhaps?

> This is a philosophical question because it entails the ethical
> question of whether an End User can be an unethical person, and if he
> is, what the "professional programmer" should do.

comp.programmer.ethics appears to not exist, perhaps you are on to
something, once again you are invited to pursue such a forum where it
would be on topic.

> there are subgroups for ethics in computation

Well there you go.  Have fun in them.

> Discussion of ethics
> alone, without broader epistemological and even metaphysical concerns,
> turns into normative and bo-ring discussion which merely reaffirms
> normalcy and in fact allows the goombahs to persist in scamming, 

Unfortunately, this group is not about removing boredom from philosophers.
If you are bored by the normal programming discussions here, perhaps
you simply aren't cut out for them and should try something else for
a change of pace.

As the above shows, you have a really bad habit of rambling all over,
sometimes into areas so obscure that a new server with over 29,000 different
groups can't provide a suitable match.  Even more unfortunately, almost 
none of the points you raised in a very long post have anything to do with 
comp.programming.  I think you've managed to prove that although your 
original question about the topicality of philosophy was weakly formed, that 
your best efforts to demonstrate a connection have failed to pan out.  

In fact, your post makes for the strongest argument to date against such 
being topical.  Thank you.

-- 
Randy Howard                
2reply remove FOOBAR 
      
0
Reply randyhoward (3272) 2/13/2004 8:43:01 AM

Programmer Dude wrote:

> Kevin Cline wrote:
> 
> 
>>Does Larry Wall's statement that the three qualities of a great
>>programmer are Laziness, Impatience, and Hubris count as a
>>philosophy?
> 
> 
> To the extent that philosophy can colloquially mean "point of view",

This colloquial meaning has little value in that it merely means
belief or as you say, point of view.

Philosophy as it is practiced by philosophy entails critical evaluation
of knowledge, reality, ideas and whatnot. It is the action of logical
(philosophy is for the most part based on logical reasoning rather than
empirical evidence) scrutinising which is philosophy.

A philosophy is a system which is based on ideas which comes from said
process.

The colloquial "life philosophy" is rarely a true philosophy in the
sense that Hume, Kant and Descartes are were philosophers. And in
answering the question "is there a philosophy of programming" I would
contend that it is the philosophers definition that counts and in
that case I would have to answer yes, I would also have to answer
that this could very much have to do with "practical issues" of
programming.

Besides, "practical issues" is not as clearly defined as certain
people seem to think. Some things can clearly be classified, but
at the edges things are fuzzy. And sometimes even the fuzziness is
fuzzy. Second order fuzziness.

For the uninitated like me I can recommend the book
"Making sense: Philosophy behind the headlines" by Julian Baggini,
ISBN: 0192805061. I certainly do not agree with everything in there, but
it has nice case studies in how the philosophical approach works.

-- 
Thomas.



0
Reply usenet93 (49) 2/13/2004 10:38:01 AM

Richard Heathfield wrote:

> Edward G. Nilges wrote:
> 
>>How do you balance efficiency and readability?
> 
> 
> They aren't necessarily in opposition.

They are not orthogonal either. At least on the micro-optimisation
level. It is of course undesireable to resort to micro-optimisation,
but sometimes it cannot be avoided and sometimes shaving of 5 clock
cycles in a loop can save minutes, and sometimes this means going
away from idioms and good readability practice. In the world of
practial programming it might still be the best solution.

-- 
Thomas.

0
Reply usenet93 (49) 2/13/2004 10:45:14 AM

Here's some philosphical issues that deal with programming/CS:

Does a program reflect or is shaped by the perceived reality of a programmer
or does the perceived reality reflect or shape how a program is written?

Similiar to the statement by the Chinese philospher Chuang Tsu, who stated
"I had a dream I was a butterfly.  Was it I who had the dream of being a
butterfly, or did the butterfly have a dream it was me?"

The great philosopher Wittgenstein was intially influenced by thinkers such
as Frege and Russell, who maintained that all of mathematics (and basically
reality) could be reduced to binary logic (I think this was expoused by
Leibnitz earlier with his notion of mathematical "monads").  Thus, in his
earlier work, he maintained that lingustic propositions were pictures of
reality.  It was a matter of reducing these propositions to their barest
atomicity, to derive the truths.

He later rejected this notion, and in the later part of his life, held that
language cannot be reduced to binary logic, but that language is a "game of
life", whereupon it is a matter of deducing its meaning from a hierarchy of
inheritance, and anykind of meaning must be decifered from its context and
how each propositon is derived from this hierarchy.

If you look at the progression of programming languages, it went from very
rigid binary machine language, to assembler, to procedural, object oriented,
etc.  In each manifestation, you see a need to add more and more
"abstractions" to handle the complexity of whatever problem domain the
program is trying to handle.  This is because it is very hard to reconcile
the complexity of the world and the problems it tries to solve with computer
programs, and much like Wittgenstein's progression of logical-reductionist
epistemology to a contextual-heuristic one, follows the progression that has
taken place with programming languages.

In OO, the notions of deriving "is-a" and "has-a" relationships, is
remarkably similar to Wittgenstein's hierarchy of propositional derivisions.

In my view, given these kinds of examples, there is a very philosophical
correlation with computer programming and science.

-Don


0
Reply donkim (3) 2/13/2004 2:27:49 PM

Kenneth Chiu wrote:

> There are two ways to judge a progam.

Only two?  (-:

> One is mostly subjective and requires a social context:
> 
>     Is it easy to maintain?
>     Is it flexible?
>     Is it elegant?
> 
> But you can also judge a program outside of a social context:
> 
>     Is it correct?
>     What is the time complexity?
>     What is the space complexity?
>     Is it robust to bad input?

It's true that elegance is subjective, but to my eye it does
involve some objective criteria (for example, the second and
third items of the second list are, to me, big parts of the
elegance of code).

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

Kenneth Chiu wrote:

>> ...whether it is good praxis to sacrifice micro-efficiency for
>> one less Annoying Temporary Variable, which like The Man Who
>> Came To Dinner, is allocated, in many languages, on function
>> entry and released on exit (an effiency tax which has to be
>> subtracted from the saving) and which might be used at the wrong
>> time when its state is out of date (a maintainability tax).

(How is any of that like THE MAN WHO CAME TO DINNER??)

> Just curious, could you give an example of this in C?  Many
> modern compilers will produce the same code regardless of
> temporary variables.

It's the usual axe-grinding over being caught in Yet Another Dumb
Thing.  In fact, in most modern languages, the space for local
variables is allocated in a single block, so extra variables cost
exactly nothing in allocation or access time.

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

Thomas Stegen CES2000 wrote:

>> To the extent that philosophy can colloquially mean "point of view",
> 
> This colloquial meaning has little value in that it merely means
> belief or as you say, point of view.

I don't know about "little value".  The fact is simply this: when
many people speak about the "philosophy of X", they mean a vaguely-
defined body of practice, point-of-view, rules of thumb, etc. rather
than anything like a formal philosophy.

And rightly so.  Formal philosophy is great stuff, love it, but its
application to real life pretty much requires going outside all the
formalisms.  As such, it's important, but not the be-all, end-all of
a programmer's daily working life.

> The colloquial "life philosophy" is rarely a true philosophy in the
> sense that Hume, Kant and Descartes are were philosophers.

Absolutely.  But Kant--just to pick on one that annoys me--is pretty
useless in terms of real world use.  (IMO he breaks down under the
multi-valued, multi-variable inputs of real life.)

> And in answering the question "is there a philosophy of programming"
> I would contend that it is the philosophers definition that counts...

I hope you're not suggesting your *opinion* here is the only valid one!

> ...and in that case I would have to answer yes, I would also have
> to answer that this could very much have to do with "practical
> issues" of programming.

Then I will be anticipating you demonstrating these beliefs!

> Besides, "practical issues" is not as clearly defined as certain
> people seem to think.

Most things in life aren't.

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

Richard Heathfield wrote:

> dbtid wrote:
> 
> 
>>Gerry Quinn wrote:
>>
>>
>>>>(2) Is its discussion on-topic?
>>>
>>>Why not?
>>
>>Because by answering yes an unqualified as you have, you leave open the
>>door to discussions of philosophy which could be claimed to be relevant
>>herein because both X and programming are human activities.
> 
> 
> No, he doesn't. The width of the door is determined by the charter, not by 
> the responses of half a dozen people in a single thread.
> 
I grant that from that POV you are correct.

However, you're assuming that the OP even read the charter.
Unfortunately on Usenet, there is no requirement to read a FAQ
or a charter before being allowed to post (that this entire conversation
ever began is proof positive of that assertion).

Even if he read the charter and understood it, I don't think that it
would put a dent in his determination to turn all of this into some
kind of personal sand box and do whatever he feels like.

I would assert that what's in the charter doesn't matter to him in the
least.
0
Reply dbtid5 (15) 2/13/2004 6:34:35 PM

chiuk@cs.indiana.edu (Kenneth Chiu) wrote in message news:<c0h4o1$a4i$1@hood.uits.indiana.edu>...
> In article <f5dda427.0402121543.46a36235@posting.google.com>,
> Edward G. Nilges <spinoza1111@yahoo.com> wrote:
> >Thus a question in the philosophy of programming would be in fact
> >whether it is good praxis to sacrifice micro-efficiency for one less
> >Annoying Temporary Variable, which like The Man Who Came To Dinner, is
> >allocated, in many languages, on function entry and released on exit
> >(an effiency tax which has to be subtracted from the saving) and which
> >might be used at the wrong time when its state is out of date (a
> >maintainability tax).
> 
> Just curious, could you give an example of this in C?  Many
> modern compilers will produce the same code regardless of
> temporary variables.

The ISO standard on vanilla automatic variables reads 

       An object whose identifier is declared with no  linkage
       and without the storage-class specifier static has automatic
       storage duration. For objects that do not  have  a  variable
       length  array type, storage is guaranteed to be reserved for
       a new instance of the object on each entry  into  the  block
       with which it is associated; the initial value of the object
       is indeterminate.  If an initialization is specified for the
       object, it is performed each time the declaration is reached
       in the execution of the block; otherwise, the value  becomes
       indeterminate each time the declaration is reached.  Storage
       for the object is no longer guaranteed to be  reserved  when
       execution  of  the  block  ends  in  any  way.  (Entering an
       enclosed block or calling a function suspends, but does  not
       end, execution of the current block.)

I'd said "in many languages" but I should have qualified what I said
as "many traditional languages".

Languages with a traditional semantics, including Visual Basic before
..Net, allocated the set of variables in a procedure block but not a
finer grained block. The standard for C, and for the .Net languages,
is to allocate on entry to almost any block. This standard is obscured
by the fact that traditionally in languages like PL/I and C for that
matter, it has been considered best practice to allocate all the
variables before the first procedural command, and this "best"
practice obscures the difference between the two standards.

In fact it might be best practice not to allocate all the variables
first but almost-just-in-time, and to the closest point-of-use that is
not inside a loop, the last avoiding potential reallocation.

I don't understand what you mean by "most modern compilers will
produce the same code regardless of temporary variables." It is true
that optimizing compilers can even eliminate temporary variables but
surely different code will be compiled from

for (intIndex1 = 1; intIndex1 < strlen(strInstring); intIndex++)

as opposed to

int intLameo = strlen(strInstring);
for (intIndex1 = 1; intIndex1 < intLameo; intIndex++)

Optimizing compilers don't eliminate and can complicate these
considerations.
0
Reply spinoza1111 (3250) 2/14/2004 4:53:55 AM

In article <f5dda427.0402132053.69df5ce0@posting.google.com>,
Edward G. Nilges <spinoza1111@yahoo.com> wrote:
>chiuk@cs.indiana.edu (Kenneth Chiu) wrote in message news:<c0h4o1$a4i$1@hood.uits.indiana.edu>...
>> In article <f5dda427.0402121543.46a36235@posting.google.com>,
>> Edward G. Nilges <spinoza1111@yahoo.com> wrote:
>> >Thus a question in the philosophy of programming would be in fact
>> >whether it is good praxis to sacrifice micro-efficiency for one less
>> >Annoying Temporary Variable, which like The Man Who Came To Dinner, is
>> >allocated, in many languages, on function entry and released on exit
>> >(an effiency tax which has to be subtracted from the saving) and which
>> >might be used at the wrong time when its state is out of date (a
>> >maintainability tax).
>> 
>> Just curious, could you give an example of this in C?  Many
>> modern compilers will produce the same code regardless of
>> temporary variables.
>
>The ISO standard on vanilla automatic variables reads 
>
>       An object whose identifier is declared with no  linkage
>       and without the storage-class specifier static has automatic
>       storage duration. For objects that do not  have  a  variable
>       length  array type, storage is guaranteed to be reserved for
>       a new instance of the object on each entry  into  the  block
>       with which it is associated; the initial value of the object
>       is indeterminate.  If an initialization is specified for the
>       object, it is performed each time the declaration is reached
>       in the execution of the block; otherwise, the value  becomes
>       indeterminate each time the declaration is reached.  Storage
>       for the object is no longer guaranteed to be  reserved  when
>       execution  of  the  block  ends  in  any  way.  (Entering an
>       enclosed block or calling a function suspends, but does  not
>       end, execution of the current block.)

But this is a semantic specification.  A compiler is free to
do anything it wants, as long as it preserves the semantics.  From
what I've seen of the generated code, temporary variables in
C with most modern compilers results in negligible or zero
cost.

>
>I'd said "in many languages" but I should have qualified what I said
>as "many traditional languages".
>
>Languages with a traditional semantics, including Visual Basic before
>.Net, allocated the set of variables in a procedure block but not a
>finer grained block. The standard for C, and for the .Net languages,
>is to allocate on entry to almost any block. This standard is obscured
>by the fact that traditionally in languages like PL/I and C for that
>matter, it has been considered best practice to allocate all the
>variables before the first procedural command, and this "best"
>practice obscures the difference between the two standards.
>
>In fact it might be best practice not to allocate all the variables
>first but almost-just-in-time, and to the closest point-of-use that is
>not inside a loop, the last avoiding potential reallocation.
>
>I don't understand what you mean by "most modern compilers will
>produce the same code regardless of temporary variables."

I was referring to code like:

    int foo(int a, int b, int c) {
	/* Use temp var. */
	int t = a*b;
	return c/t + t;
    }
     
    int goo(int a, int b, int c) {
	/* No temp var, but common sub-exprs. */
	return c/(a*b) + a*b;
    }

Using gcc 3.2.2 and "gcc -S -O foo.c", it generates:

	    .file   "foo.c"
	    .text
    .globl foo
	    .type   foo,@function
    foo:
	    pushl   %ebp
	    movl    %esp, %ebp
	    subl    $4, %esp
	    movl    16(%ebp), %eax
	    movl    12(%ebp), %edx
	    movl    8(%ebp), %ecx
	    imull   %edx, %ecx
	    cltd
	    idivl   %ecx
	    addl    %ecx, %eax
	    leave
	    ret
    .Lfe1:
	    .size   foo,.Lfe1-foo
    .globl goo
	    .type   goo,@function
    goo:
	    pushl   %ebp
	    movl    %esp, %ebp
	    subl    $4, %esp
	    movl    16(%ebp), %eax
	    movl    12(%ebp), %edx
	    movl    8(%ebp), %ecx
	    imull   %edx, %ecx
	    cltd
	    idivl   %ecx
	    addl    %ecx, %eax
	    leave
	    ret
    .Lfe2:
	    .size   goo,.Lfe2-goo
	    .ident  "GCC: (GNU) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)"

Note the same code for each function.

>It is true
>that optimizing compilers can even eliminate temporary variables but
>surely different code will be compiled from
>
>for (intIndex1 = 1; intIndex1 < strlen(strInstring); intIndex++)
>
>as opposed to
>
>int intLameo = strlen(strInstring);
>for (intIndex1 = 1; intIndex1 < intLameo; intIndex++)
>
>Optimizing compilers don't eliminate and can complicate these
>considerations.

In this case, the compiler won't produce the same code,
because most won't be smart enough to recognize that the
result of strlen() is a loop invariant.  However, any decent
compiler will use a register, and so there will be no
allocation/deallocation cost.  The version with the
temporary variable will in fact be faster.

This code:

    #include <strings.h>

    void goo();
    void foo(const char *s) {
	int n = strlen(s);
	int i;
	for  (i = 0; i < n; i++) {
	    goo();
	}
    }

results in this SPARC assembly code (I'm better at reading
SPARC than x86, so I generated SPARC):

    !    1                !#include <strings.h>
    !    3                !void goo();
    !    4                !void foo(const char *s) {

			    .global foo
			   foo:
    /* 000000          4 */         save    %sp,-96,%sp

    !    5                !    int n = strlen(s);

    /* 0x0004          5 */         call    strlen  ! params =  %o0 ! Result =  %o0
    /* 0x0008          4 */         or      %g0,%i0,%o0
				    /* Result of strlen() put into register %l0. */
    /* 0x000c          5 */         orcc    %g0,%o0,%l0

    !    6                !    int i;
    !    7                !    for  (i = 0; i < n; i++) {

    /* 0x0010          7 */         ble     .L77000006
    /* 0x0014            */         or      %g0,0,%l1

    !    8                !        goo();

			   .L77000003:
    /* 0x0018          8 */         call    goo     ! params =      ! Result = 
    /* 0x001c            */         add     %l1,1,%l1
    /* 0x0020            */         cmp     %l1,%l0
    /* 0x0024            */         bl      .L77000003
    /* 0x0028            */         nop
			   .L77000006:
    /* 0x002c          8 */         ret     ! Result = 
    /* 0x0030            */         restore %g0,%g0,%g0

Note that the result of the strlen() call is put into a
register.  In this case at least, there is no cost to using
a temporary variable.
0
Reply chiuk (37) 2/14/2004 6:01:48 AM

Kenneth Chiu wrote:

> In article <f5dda427.0402132053.69df5ce0@posting.google.com>,
> Edward G. Nilges <spinoza1111@yahoo.com> wrote:

>>It is true
>>that optimizing compilers can even eliminate temporary variables but
>>surely different code will be compiled from
>>
>>for (intIndex1 = 1; intIndex1 < strlen(strInstring); intIndex++)
>>
>>as opposed to
>>
>>int intLameo = strlen(strInstring);
>>for (intIndex1 = 1; intIndex1 < intLameo; intIndex++)
>>
>>Optimizing compilers don't eliminate and can complicate these
>>considerations.
> 
> In this case, the compiler won't produce the same code,
> because most won't be smart enough to recognize that the
> result of strlen() is a loop invariant.

The compiler would have to be very, very sure of itself to perform that 
particular optimisation. For example, it would have to be able to prove 
that the array is not volatile, and that it is not modified within the 
loop, and that it is not modified by a function call within the loop.

> However, any decent
> compiler will use a register, and so there will be no
> allocation/deallocation cost.  The version with the
> temporary variable will in fact be faster.

And may well be shorter. (gcc, for example, yields shorter code in this case 
if you use a temp.)

-- 
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 dontmail (1884) 2/14/2004 7:29:06 AM

Edward wrote:
) The ISO standard on vanilla automatic variables reads 
)
)  ...
)
) Languages with a traditional semantics, including Visual Basic before
) .Net, allocated the set of variables in a procedure block but not a
) finer grained block. The standard for C, and for the .Net languages,
)  ...

Do you know *how* most C compilers allocate local variables ?
That is, what assembly instructions does it output to allocate them ?


SaSW, Willem
-- 
Disclaimer: I am in no way responsible for any of the statements
            made in the above text. For all I know I might be
            drugged or something..
            No I'm not paranoid. You all think I'm paranoid, don't you !
#EOT
0
Reply willem (1478) 2/14/2004 1:53:56 PM

"Willem" <willem@stack.nl> wrote in message news:slrnc2sa3k.m1t.willem@toad.stack.nl...
> Edward wrote:
> ) The ISO standard on vanilla automatic variables reads 
> )
> )  ...
> )
> ) Languages with a traditional semantics, including Visual Basic before
> ) .Net, allocated the set of variables in a procedure block but not a
> ) finer grained block. The standard for C, and for the .Net languages,
> )  ...
> 
> Do you know *how* most C compilers allocate local variables ?
> That is, what assembly instructions does it output to allocate them ?

Depends a bit; on a SPARC processor it usually takes one instruction
if the function takes less than nine locals and if those locals 
would fit in registers one by one ... I love those register windows ...

kind regards,

Jos
0
Reply j.a.horsmeier (104) 2/14/2004 1:59:47 PM

"Edward G. Nilges" <spinoza1111@yahoo.com> wrote in message
>
> But any theory which failed to account for the real-world correctness
> of an algorithm in totality would be mathematical formalism.
>
Philosphically, the problem of representing 3D scenes on a 2D plane is
neither more nor less interesting that the problem of representing 4D scenes
on a 3D output device. Practically, of course, the first is of great utility
whilst the second is a curiosity.
>
> That's because programming has a neglected social phenomenology.
>
Of course. For instance humans typically want to deal with low numbers
(under say 4 billion).
>
> But a REAL program has a social referent which is commonly called > "the
needs of the user".
>
Tholigh generally it is easier for the user to adapt to the needs of the
computer rather than the other way round. For instance, a computer can whizz
through national insurance contributions as long as everyone is identified
by a unique number, so the users have got to adapt by using National
Insurance numbers. Try getting the computer to process names like "Sally
Smith" and you soon get into trouble.
>
> What I'm saying is that it is clear that programmers want to be
> considered to be professionals but at the same time want to stay
> inside a Hilbertian-formalist game with uninstantiated symbols (where
> "Hilbertian" means "of the school of mathematical formalist David
> Hilbert) such that they can determine, by a formal, mathematical,
> procedure, that their code meets "requirements" that for this reason
> have themselves to be in a formal notation such as UML.
>
Programmers aren't really professionals because anyone can describe
themselves as a "programmer" without registering with a professional body.
A lot of programming is just knocking out code to fulfil some user
requirement, whether expressed formally or not.
>
> Good doctors similarly look outside the patient's physical symptoms > to
his social life and my father was, as a physican, a member of a
> physican anti-nuclear group because he felt it his responsibility to
> worry about the medical consequences of nuclear war.
>
Thoguh your father was wrong if he thought that a physician must necessarily
oppose nuclear weapons. If a pro-nuclear activist claimed that "radiation
doesn't cause cancer" the of course, as a doctor, your father had a duty to
put him right, but if he said that "pragmatically, the Soviet Union will
collapse as a result of trying to match our Star Wars program, causing
Eastern Europe to be freed" then a doctor has no special expertise.
>
> Hard scientists do politics. Al Einstein wasn't anti-Fascist because
> of his physical discoveries, of course, but in order to do science
> without some moron police agent telling him to stay inside Newtonian
> frameworks, he had to relate physics to philosophy and to society.
>
The Nazis claimed that Einstein's theories were bad science. Here again
scientists have a duty to stand up for the truth. But on the issue of
whether Danzig should be Polish or German, being a scientist gives one no
special competence to speak.
>
> Therefore I think that there should be an epistemology of REAL
> programs and it unavoidably has a social dimension.
>
> Who is the programmer that wrote the extra code, that allows the
> flybynighter to add the charges? Is his code "correct"?
>
Almost any technical discipline can be used for good or for ill. For
instance if a plumber adds water and sewage to houses built on the breeding
grounds of a rare butterfly, he is arguably partly responsible for driving
them extinct. Similarly programs can be used for good purposes or bad
purposes.

There are really two questions here. One is philosophy as it relates to
computer science, for instance, "can any program emulate natural language?".
This is IMO perfectly on topic.
The second question is, how do wider political or social issues impact on
programmers, as programmers? I would suggest that this is not really on
topic, unless his experience as a programmer gives a person some special
authority to speak. For instance, a discussion of confidentiality and data
protection would arguably be on topic. The Iraq war, on the other hand, will
impact on many programmers, but being a programmer doesn't give one any
special competence to pronounce on the ethics of the invasion, so it is
off-topic.


0
Reply Malcolm 2/14/2004 2:29:29 PM

"Richard Heathfield" <dontmail@address.co.uk.invalid> wrote in
>
> > Richard, to do philosophy is to come up with multiple answers and > > "a
philosophy" could well turn out to be n>1.
>
> From other articles he has posted to this newsgroup, it is possible to >
infer that Mr Nilges is still at school. If that inference is correct, then
it
> is perhaps understandable that he does not yet know the difference
> between singular and plural. Perhaps he should consult his teacher on
> the matter.
>
If a field of philosophy is under active enquiry then we don't know the
answer, there is no consensus, and different philosophers argue different
things. However there are solid philosophical results - we know that not all
numbers are rational (can be formed by dividing two integers), for example,
we know that the theory of the four elements is invalid and the atomic
theory is valid, we know that societies do not inevitably progress from
capitalism to socialism to communism but often abandon socialist or
communist experiments.
There are plenty of things we don't know about computer programming that are
the proper domain of the philosopher. The whole question of symbol
processing and intelligence is open, for example.
Practical considerations, such as what form of political or economic
organisation is most conducive to good programming, are less obviously
philosophical, and when they generalise to "what form of political
organisation is most economically efficient" cease to be topical.
>
> > How do you balance efficiency and readability?
>
> They aren't necessarily in opposition.
>
There is very often a tension between the two. Usually efficiency is a
definite requirement - if the code has to execute in a video frame then that
is non-negotiable - whilst maintainability is a soft requirement - it's nice
to have but the maintainers can always spend two days instead of one day
wading through spaghetti code.
>
> Code that nobody understands is, almost by definition, broken.
>
No it's not. Often you don't want anyone to understand it - for instance if
you don't want to be made redundant then it helps to be the only person who
understands some vital bit of code. Code is only "broken" if it doesn't
perform specified output for specified input.
>
> > "Direct programming experience of a philosophy of programming?" > > Come
on, big fella, you are playing with the words.
>
Philosophers frequently don't restrict themselves to observation but make
recommendations. It is entirely possible to have experience of following
some of those recommendations - for instance you might have been a
programmer in the ex-Soviet Union, so you would have valuable things to say
about what it is like to work for a studio that tries to follow the
prescriptions of Marx. Equally you might have experience of a methodology
inspired by a new management theory.
>
> > >> Since Question 1 made a flawed assumption and Question 2
> > >> assumes a binary (yes/no) response range, the "encoding" is
> > >> unlikely to be a useful one.
> >
> > I coded on a one to ten scale.
>
> That doesn't have any bearing on the usefulness of the encoding.
>
This is actually a mistake a lot of programmers make. Natural language isn't
literal, propositions are not like conditional statements, either "true" or
"false" but have varying truth levels. For instance take the proposition
"Britain is a island". That would imply that every time someone refers to
"Britain" he means the island of Great Britain. However "Britain" often
refers to the political entity the United Kingdom, which includes a land
border with the Republic of Ireland. So the proposition is basically true,
but not completely true. This is not untypical. It is natural for words to
have a penumbra of meaning into which they can expand or retreat.

As for question 2, there is similarly a penumbra of topicality. A discussion
on how to program the travelling salesman problem is clearly topical, a
discussion on how to cheat on travel expenses as a salesman is clearly
non-topical, a discussion about how bees solve the problem is in the
penumbra - aspects may be topical, non-topical aspects, if kept short, will
be tolerated, but if the thread drifts off into the social life of insects
then it is no longer topical.



0
Reply Malcolm 2/14/2004 9:26:20 PM

"pete" <pfiland@mindspring.com> wrote in message
> I don't know "const" and "constant expression"
> as a general programming concepts.
> I only know them as C code concepts.
> Are they general programming concepts also ?
>
"const" is a C keyword, short for "constant" but in fact meaning something
more like "read only".

eg

int main(void)
{
  char buff[1024];
  gets(buff); /* don't do this at home folks */
  foo(buff);
  return 0;
}

void foo(const char *str)
{
  puts(str);
}

Here foo() is quite clearly not receiving a constant, but it is not allowed
to modify the contents of str.

Constant expressions are those that can be determined at compile time. For
instance, the number of states in the USA could change over time, but is
unlikely to do so very regularly, and it might be acceptable to recompile
the program when that happens. Therefore in C you might #define the number
of states, and use an array to represent each state's spending, or whatever.
In other languages you can do similar things.


0
Reply Malcolm 2/14/2004 9:38:13 PM

"Malcolm" <malcolm@55bank.freeserve.co.uk> wrote in message news:<c0lbdk$nuf$1@newsg2.svr.pol.co.uk>...
> "Edward G. Nilges" <spinoza1111@yahoo.com> wrote in message
> >
> > But any theory which failed to account for the real-world correctness
> > of an algorithm in totality would be mathematical formalism.
> >
> Philosphically, the problem of representing 3D scenes on a 2D plane is
> neither more nor less interesting that the problem of representing 4D scenes
> on a 3D output device. Practically, of course, the first is of great utility
> whilst the second is a curiosity.

Pragmatism is that philosophy which would ascribe higher Truth to the
more useful solution. Therefore a Pragmatist project philosophy of
computer science might be ranking projects by their utility. It runs
into the classic Pragmatist problem which is usefulness, for whom.

In the relatively egalitarian society of Dewey, one of the American
founders of the Pragmatist movement, utility was something obvious
because wealth was shared through a progressive income tax, and, in
fact, the Progressive allies of Dewey were those in favor of a
progressive income tax.

Today, because the tax code in total is regressive it is harder to
credit an abstract utility so standalone that everybody can agree on
truth==utility and instead we must ask, useful, to whom.

> >
> > That's because programming has a neglected social phenomenology.
> >
> Of course. For instance humans typically want to deal with low numbers
> (under say 4 billion).
> >
> > But a REAL program has a social referent which is commonly called > "the
>  needs of the user".
> >
> Tholigh generally it is easier for the user to adapt to the needs of the
> computer rather than the other way round. For instance, a computer can whizz
> through national insurance contributions as long as everyone is identified
> by a unique number, so the users have got to adapt by using National
> Insurance numbers. Try getting the computer to process names like "Sally
> Smith" and you soon get into trouble.

This may have been true for older mainframes but on a high speed
modern processor, it would be possible to form a unique key for a
population, part of which did not have unique ID numbers.

This key would be the logical expression

     ID == BLANK ? descriptor : ID

where I have borrowed both equality and the three-way if..then..else
from C and Java.

Every time the data base needs a key, a "stored procedure" in DB
terminology would examine the ID field. If it is blank it would call a
routine to gather what is known about the user, in the form of
available records, UNTIL a query for that user at the mass data base
at the Ministry returns exactly one record.

This would of course simulate how we ordinarily identify a person
uniquely. We do so in an iterative fashion, "you know, Sally Smith,
she was that drummer for the Bone Phone in the 1970s who came from
Rancho Cucamonga and later surfaced as a born again in Los Angeles".
We keep on adding empirical descriptors until we form a unique
individual.

For a "normal" person, the descriptor would be his Social Security
Number in the USA or his National Health number in the UK.

For a weirdo, the descriptor might actually be a complete narrative of
that person's life.

This is in fact the way cops track people. Note that I am not saying
whether it is good or bad.

Therefore the fact that older computers had a fixed field does not
mean that it's impossible to effectively surveille, and we should
conclude we are being watched.
> >
> > What I'm saying is that it is clear that programmers want to be
> > considered to be professionals but at the same time want to stay
> > inside a Hilbertian-formalist game with uninstantiated symbols (where
> > "Hilbertian" means "of the school of mathematical formalist David
> > Hilbert) such that they can determine, by a formal, mathematical,
> > procedure, that their code meets "requirements" that for this reason
> > have themselves to be in a formal notation such as UML.
> >
> Programmers aren't really professionals because anyone can describe
> themselves as a "programmer" without registering with a professional body.
> A lot of programming is just knocking out code to fulfil some user
> requirement, whether expressed formally or not.

Yes, it is a form of stenography.
> >
> > Good doctors similarly look outside the patient's physical symptoms > to
>  his social life and my father was, as a physican, a member of a
> > physican anti-nuclear group because he felt it his responsibility to
> > worry about the medical consequences of nuclear war.
> >
> Thoguh your father was wrong if he thought that a physician must necessarily
> oppose nuclear weapons. If a pro-nuclear activist claimed that "radiation
> doesn't cause cancer" the of course, as a doctor, your father had a duty to
> put him right, but if he said that "pragmatically, the Soviet Union will
> collapse as a result of trying to match our Star Wars program, causing
> Eastern Europe to be freed" then a doctor has no special expertise.

Reagan's successful effort to cause the Soviet Union to collapse, by
placing destabilising arms in Germany in the 1980s, was a gamble and
it could have gone either way. During the critical period, in fact,
Chernenko's ill health may have saved Reagan since Chernenko may have
not had the will to press the Soviet button. Had some younger man like
Kruschhev (sp?) been in charge, a pistol like Nikita, who had anger
management issues, might well have called Reagan's bluff.

My father and many other physicians concluded that the medical risk
alone (thousands of burned and irradiated Americans screaming at the
gates of American hospitals) meant that Reagan's gamble was immoral
EVEN IF SUCCESSFUL.

And note that we subjected Iraq's medical system to a near-identical
strain under the same immoral policies, in which our advantage trumps
all other considerations, and note that in Iraq the nightmare scenario
obtains. An article in the New York Times today describes the chaos at
Baghdad's medical facilities, and, they resulted in part from Reagan's
successful 1983 gamble.

We took an identical chance in March 2003 reasoning that by now
everything would work out for Iraq, and, it hasn't.

As to "relevance", a discussion of the medical reasons for complete
nuclear disarmamant, in place of selective disarmament of rogue
states, would belong in the default group sci.medicine assuming such a
group exists and that it forms the base of a tree.

My father believed that the scientific picture did imply a normative
conclusion, because his knowledge of the basics implied that in a
mediaeval sanitation context, which would follow a nuclear exchange,
medicine ceases to exist.


> >
> > Hard scientists do politics. Al Einstein wasn't anti-Fascist because
> > of his physical discoveries, of course, but in order to do science
> > without some moron police agent telling him to stay inside Newtonian
> > frameworks, he had to relate physics to philosophy and to society.
> >
> The Nazis claimed that Einstein's theories were bad science. Here again
> scientists have a duty to stand up for the truth. But on the issue of
> whether Danzig should be Polish or German, being a scientist gives one no
> special competence to speak.

No? If Gdansk has a university then to protect the university one
should speak as a faculty member, saying, yo, Nazis not good.

> >
> > Therefore I think that there should be an epistemology of REAL
> > programs and it unavoidably has a social dimension.
> >
> > Who is the programmer that wrote the extra code, that allows the
> > flybynighter to add the charges? Is his code "correct"?
> >
> Almost any technical discipline can be used for good or for ill. For
> instance if a plumber adds water and sewage to houses built on the breeding
> grounds of a rare butterfly, he is arguably partly responsible for driving
> them extinct. Similarly programs can be used for good purposes or bad
> purposes.

Yes, but a plumber is a tradesman. "Value neutrality" in this sense
places programmers on the Craftsman side of Dijkstra's Dilemma
("Craftsman or Scientist?")

This, as I pointed out in my review of After the Gold Rush, has
consequences. It means that programmers lose the right to be
considered professionals, to set their own hours. And it means that
programmer organization, absent full scale trade union organization,
and against offshore, is racist and xenophobic.

> 
> There are really two questions here. One is philosophy as it relates to
> computer science, for instance, "can any program emulate natural language?".
> This is IMO perfectly on topic.
> The second question is, how do wider political or social issues impact on
> programmers, as programmers? I would suggest that this is not really on
> topic, unless his experience as a programmer gives a person some special
> authority to speak. For instance, a discussion of confidentiality and data
> protection would arguably be on topic. The Iraq war, on the other hand, will
> impact on many programmers, but being a programmer doesn't give one any
> special competence to pronounce on the ethics of the invasion, so it is
> off-topic.

No, programmers with sufficiently developed consciousness know the
curious status of knowledge as an artifact and therefore are qualified
to speak on how the "knowledge" that Saddam had WMD was manufactured,
by means of their awareness of the multistep and artificial, indeed
industrial, processes produce what appears to be common knowledge,
such as Bush's State of the Union claim.
0
Reply spinoza1111 (3250) 2/15/2004 12:50:58 AM

"Don Kim" <donkim@nospam.donkim.net> wrote in message news:<J95Xb.15873$IF1.923@fed1read01>...
> Here's some philosphical issues that deal with programming/CS:
> 
> Does a program reflect or is shaped by the perceived reality of a programmer
> or does the perceived reality reflect or shape how a program is written?
> 
> Similiar to the statement by the Chinese philospher Chuang Tsu, who stated
> "I had a dream I was a butterfly.  Was it I who had the dream of being a
> butterfly, or did the butterfly have a dream it was me?"
> 
> The great philosopher Wittgenstein was intially influenced by thinkers such
> as Frege and Russell, who maintained that all of mathematics (and basically
> reality) could be reduced to binary logic (I think this was expoused by
> Leibnitz earlier with his notion of mathematical "monads").  Thus, in his
> earlier work, he maintained that lingustic propositions were pictures of
> reality.  It was a matter of reducing these propositions to their barest
> atomicity, to derive the truths.
> 
> He later rejected this notion, and in the later part of his life, held that
> language cannot be reduced to binary logic, but that language is a "game of
> life", whereupon it is a matter of deducing its meaning from a hierarchy of
> inheritance, and anykind of meaning must be decifered from its context and
> how each propositon is derived from this hierarchy.
> 
> If you look at the progression of programming languages, it went from very
> rigid binary machine language, to assembler, to procedural, object oriented,
> etc.  In each manifestation, you see a need to add more and more
> "abstractions" to handle the complexity of whatever problem domain the
> program is trying to handle.  This is because it is very hard to reconcile
> the complexity of the world and the problems it tries to solve with computer
> programs, and much like Wittgenstein's progression of logical-reductionist
> epistemology to a contextual-heuristic one, follows the progression that has
> taken place with programming languages.
> 
> In OO, the notions of deriving "is-a" and "has-a" relationships, is
> remarkably similar to Wittgenstein's hierarchy of propositional derivisions.

I agree that objects make it easier to talk sensibly about the impact
of a data system. In fact, object orientation was invented by the
Scandanavian computer scientist Ole Johann Dahl in the form of Simula
because in his society, in which trade unions had a significant say in
the way industrial processes were automated, he needed to negotiate
their specific behavior, and to do so, he had to describe the
software.

In a non-object oriented system, note the key vagueness of saying to
the union lads, "boyos, management has decided to install a new
payroll SYSTEM".

The lads know what a payroll is. The problem is they don't know what a
"system" is. It is a huge abstraction deposited like a steaming dump
in the middle of the road.

Then, when the computer boffin is trotted out by the suits to tell the
lads about the system, in a non-OO context, this boffin will start
droning about more abstractions including processes such as the
process by means of which the lads in the shipyard will report time
worked.

Hidden gotchas will be overlooked because by this time the union men
will want to step outside for a smoke and will be bored, not because
they are dolts (for as skilled workers, they've mastered applied
physics and chemistry) but by the persistent abstraction of talking,
in flowchartese, about empty verbs ("program Dorking fanorkles the
framboozle to produce the job ticket.")

Contrast effective object design in which the object is a thing with
properties, just like a ship.

This object, like a ship in the yards, makes an engineering contract
with management and labor in the form of its drawings and its
specifications. At a primitive level, the new ship, say MV Spirit of
Free Enterprise, promises not to sink or blow up in the roads.

At a more advanced level the object contracts to fulfill a series of
assertions as to hydrostatic stability and hydrodynamic behavior,
which can be described in either old mariner's language or in numbers
without loss of signal. Indeed, because of this precision, we readily
understand how to test the ship for conformance, and the Coast Guard
or its equivalent knows how to come on board and check us over for the
safety of the crew.

[And, I am not being flip, albeit I am rather a landlubber. One cause
of the disaster narrated in the recent film and book The Perfect Storm
was that American fishing vessel owners, who typically did not have to
go to sea, could not or would not document the hydrostatic stability
of their craft, because under American maritime labor law, they did
not have to. They sat on their fat asses on shore and made millions
while the lads risked, and in many cases endured, death to earn
perhaps 50000 for three months work.]

An unsolved problem in software happens to be how you meet a covenant
and objects help simply because there is less fine print.
> 
> In my view, given these kinds of examples, there is a very philosophical
> correlation with computer programming and science.
> 
> -Don
0
Reply spinoza1111 (3250) 2/15/2004 1:05:57 AM

chiuk@cs.indiana.edu (Kenneth Chiu) wrote in message news:<c0kdkc$bmk$1@hood.uits.indiana.edu>...
> In article <f5dda427.0402132053.69df5ce0@posting.google.com>,
> Edward G. Nilges <spinoza1111@yahoo.com> wrote:
> >chiuk@cs.indiana.edu (Kenneth Chiu) wrote in message news:<c0h4o1$a4i$1@hood.uits.indiana.edu>...
> >> In article <f5dda427.0402121543.46a36235@posting.google.com>,
> >> Edward G. Nilges <spinoza1111@yahoo.com> wrote:
> >> >Thus a question in the philosophy of programming would be in fact
> >> >whether it is good praxis to sacrifice micro-efficiency for one less
> >> >Annoying Temporary Variable, which like The Man Who Came To Dinner, is
> >> >allocated, in many languages, on function entry and released on exit
> >> >(an effiency tax which has to be subtracted from the saving) and which
> >> >might be used at the wrong time when its state is out of date (a
> >> >maintainability tax).
> >> 
> >> Just curious, could you give an example of this in C?  Many
> >> modern compilers will produce the same code regardless of
> >> temporary variables.
> >
> >The ISO standard on vanilla automatic variables reads 
> >
> >       An object whose identifier is declared with no  linkage
> >       and without the storage-class specifier static has automatic
> >       storage duration. For objects that do not  have  a  variable
> >       length  array type, storage is guaranteed to be reserved for
> >       a new instance of the object on each entry  into  the  block
> >       with which it is associated; the initial value of the object
> >       is indeterminate.  If an initialization is specified for the
> >       object, it is performed each time the declaration is reached
> >       in the execution of the block; otherwise, the value  becomes
> >       indeterminate each time the declaration is reached.  Storage
> >       for the object is no longer guaranteed to be  reserved  when
> >       execution  of  the  block  ends  in  any  way.  (Entering an
> >       enclosed block or calling a function suspends, but does  not
> >       end, execution of the current block.)
> 
> But this is a semantic specification.  A compiler is free to
> do anything it wants, as long as it preserves the semantics.  From
> what I've seen of the generated code, temporary variables in
> C with most modern compilers results in negligible or zero
> cost.

You're talking only about one cost and that is cost to the CPU and the
memory.

You are neglecting my concern which is the psychological complexity of
the source code, I should have been clearer.

In my strlen example, deriving the strlen for a string known to be
bounded by the input console length in a function in the do condition
lowers the psychological complexity.

More generally, using expressions in place of temporary variables
lowers psychological complexity for most intelligent readers.

I agree that many programmers prefer to see temprary variables and I
propose that this is because their use of the temporary variable
paradigm, communicated to them by false authority, damaged them in
Dijkstra's sense, where he claims that early exposure to Basic damages
programming ability.

To me, the length of a string is something I should just have if I
have a string. However, in May 2002 when I downloaded Jacques Navia's
free compiler and coded in C after an interval of ten years, I had a
massive brain fart.

I forgot to keep foregrounded in my mind the reality that C doesn't
really have strings. It has arrays of numbers terminated by zero, and
you don't "have" strlen, which has to trundle to the end of the
string.

However, if C is at all a viable language, it should support brain
farts with at best slightly slower code and in this case it did. This
is why C, which itself was a brain fart, is still used.

You can build initial versions of code in a readable fashion, test
them, and then improve performance at the key places that need it.


> 
> >
> >I'd said "in many languages" but I should have qualified what I said
> >as "many traditional languages".
> >
> >Languages with a traditional semantics, including Visual Basic before
> >.Net, allocated the set of variables in a procedure block but not a
> >finer grained block. The standard for C, and for the .Net languages,
> >is to allocate on entry to almost any block. This standard is obscured
> >by the fact that traditionally in languages like PL/I and C for that
> >matter, it has been considered best practice to allocate all the
> >variables before the first procedural command, and this "best"
> >practice obscures the difference between the two standards.
> >
> >In fact it might be best practice not to allocate all the variables
> >first but almost-just-in-time, and to the closest point-of-use that is
> >not inside a loop, the last avoiding potential reallocation.
> >
> >I don't understand what you mean by "most modern compilers will
> >produce the same code regardless of temporary variables."
> 
> I was referring to code like:
> 
>     int foo(int a, int b, int c) {
> 	/* Use temp var. */
> 	int t = a*b;
> 	return c/t + t;
>     }
>      
>     int goo(int a, int b, int c) {
> 	/* No temp var, but common sub-exprs. */
> 	return c/(a*b) + a*b;
>     }
> 
> Using gcc 3.2.2 and "gcc -S -O foo.c", it generates:
> 
> 	    .file   "foo.c"
> 	    .text
>     .globl foo
> 	    .type   foo,@function
>     foo:
> 	    pushl   %ebp
> 	    movl    %esp, %ebp
> 	    subl    $4, %esp
> 	    movl    16(%ebp), %eax
> 	    movl    12(%ebp), %edx
> 	    movl    8(%ebp), %ecx
> 	    imull   %edx, %ecx
> 	    cltd
> 	    idivl   %ecx
> 	    addl    %ecx, %eax
> 	    leave
> 	    ret
>     .Lfe1:
> 	    .size   foo,.Lfe1-foo
>     .globl goo
> 	    .type   goo,@function
>     goo:
> 	    pushl   %ebp
> 	    movl    %esp, %ebp
> 	    subl    $4, %esp
> 	    movl    16(%ebp), %eax
> 	    movl    12(%ebp), %edx
> 	    movl    8(%ebp), %ecx
> 	    imull   %edx, %ecx
> 	    cltd
> 	    idivl   %ecx
> 	    addl    %ecx, %eax
> 	    leave
> 	    ret
>     .Lfe2:
> 	    .size   goo,.Lfe2-goo
> 	    .ident  "GCC: (GNU) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)"
> 
> Note the same code for each function.

Same code: different psychological metrics.

I did say that there might be an efficiency tax and for this example,
there clearly is not.

But when you scale up to multiple temp variables across multiple
procedures the compiler will generate different code because the
optimizer probably won't be able to see common variables.

> 
> >It is true
> >that optimizing compilers can even eliminate temporary variables but
> >surely different code will be compiled from
> >
> >for (intIndex1 = 1; intIndex1 < strlen(strInstring); intIndex++)
> >
> >as opposed to
> >
> >int intLameo = strlen(strInstring);
> >for (intIndex1 = 1; intIndex1 < intLameo; intIndex++)
> >
> >Optimizing compilers don't eliminate and can complicate these
> >considerations.
> 
> In this case, the compiler won't produce the same code,
> because most won't be smart enough to recognize that the
> result of strlen() is a loop invariant.  However, any decent
> compiler will use a register, and so there will be no
> allocation/deallocation cost.  The version with the
> temporary variable will in fact be faster.

Excuse me, how many registers are their? If in the surrounding context
they are busy, there WILL be allocation and deallocation costs in the
form of save and restore!


> 
> This code:
> 
>     #include <strings.h>
> 
>     void goo();
>     void foo(const char *s) {
> 	int n = strlen(s);
> 	int i;
> 	for  (i = 0; i < n; i++) {
> 	    goo();
> 	}
>     }
> 
> results in this SPARC assembly code (I'm better at reading
> SPARC than x86, so I generated SPARC):
> 
>     !    1                !#include <strings.h>
>     !    3                !void goo();
>     !    4                !void foo(const char *s) {
> 
> 			    .global foo
> 			   foo:
>     /* 000000          4 */         save    %sp,-96,%sp
> 
>     !    5                !    int n = strlen(s);
> 
>     /* 0x0004          5 */         call    strlen  ! params =  %o0 ! Result =  %o0
>     /* 0x0008          4 */         or      %g0,%i0,%o0
> 				    /* Result of strlen() put into register %l0. */
>     /* 0x000c          5 */         orcc    %g0,%o0,%l0
> 
>     !    6                !    int i;
>     !    7                !    for  (i = 0; i < n; i++) {
> 
>     /* 0x0010          7 */         ble     .L77000006
>     /* 0x0014            */         or      %g0,0,%l1
> 
>     !    8                !        goo();
> 
> 			   .L77000003:
>     /* 0x0018          8 */         call    goo     ! params =      ! Result = 
>     /* 0x001c            */         add     %l1,1,%l1
>     /* 0x0020            */         cmp     %l1,%l0
>     /* 0x0024            */         bl      .L77000003
>     /* 0x0028            */         nop
> 			   .L77000006:
>     /* 0x002c          8 */         ret     ! Result = 
>     /* 0x0030            */         restore %g0,%g0,%g0
> 
> Note that the result of the strlen() call is put into a
> register.  In this case at least, there is no cost to using
> a temporary variable.

I agree that optimization can get rid of NONPSYCHOLOGICAL temp taxes
in the small.

But any programmer who wants to be more than a coder prefers, I think,
the just in time values of expressions to series of "statements" that
agonizingly derive a value, and this was part of my preference,
perhaps in the context misplaced, for a just-in-time evaluation of
strlen.

There is that type of programmer, I claim, who as a worshiper of
Moloch-the-machine is physically offended, repelled, by the idea that
the machine should do any excess work and instead prefers to abase
himself in front of Moloch doing the work himself, thereby
establishing the trust of Moloch as a priest of Moloch lest he himself
be cast into the flames.

Sorry: that was over the top. Let me try again.

There is that type of programmer who likes machines but doesn't like
people. He tends to want to reduce wear and tear on the machine.

John von Neumann was this type of programmer, for when he found that
programmers of ENIAC and IAS were sitting around speculating on
whether they could use the machine to make their jobs easier, Johnny
blew his stack, saying that such expensive and delicate equipment
should not be so used, and that the lads should content themselves
with flipping switches as directed by the mathematicians so we could
finish the job of building the Bomb and blow us all to Kingdom Come.

Grace Hopper on the other hand was amused by the idea and thought it
rather gay that she and the lassies could write primitive high-level
languages. Their early efforts wasted in fact massive anounts of
Johnny's precious computer time because pre-Fortran, high level
languages ran as slow interpreters.

That's perhaps because gals more naturally care about people. Or
something, for here is where angels fear to tread.

A mentor of mine who worked in the 1950s for IBM on the 7044 describes
how he and his coworkers naturally, at any time they needed to, wrote
supporting code in the form of actual assemblers and compilers despite
the fact that his group's mission was to deliver enterprise management
software to American railroads in the form, for example, of a program
that matched freight car heights with tunnel heights.

His gesture "wasted" time and today would not be possible but he and
his coworkers made the railroads happy which made IBM happy.

What's interesting is that the von Neumann psychology persists in this
newsgroup in the form of choruses of dismay at the use of strlen in a
form.

What's REALLY interesting is that absent Hopper's mad, gay adventures
with high level languages THERE WOULD BE NO COMPUTER INDUSTRY.

Instead, we'd all probably be standing in front of one or two World
Computers flipping switches!

I conclude that real programmers love to waste the computer's time
because they know that the wear and tear is a metaphor.
0
Reply spinoza1111 (3250) 2/15/2004 1:31:21 AM

spinoza1111@yahoo.com (Edward G. Nilges) wrote in
news:f5dda427.0402141731.477e41f9@posting.google.com: 

<snip>

> In my strlen example, deriving the strlen for a string known to be
> bounded by the input console length in a function in the do condition
> lowers the psychological complexity.

Assigning the value of the strlen to a temporary variable reduces the 
complexity of analysing the source code. It's trivial, even in non-
trivial code, to determine that such a temporary is not altered... 
especially trivial if it's const! On the other hand, it is considerably 
less trivial to ensure that the string length has not been altered. 
Consider:

/* do something with a string s*/ {
  const size_t len=strlen(s);
  size_t i;
  
  for (i=0;i<len;i++) {
    DoSomeOperation(s);
  }
}

compared with...

/* do something with a string s */ {
  size_t i;

  for (i=0;i<strlen(s);i++) {
    DoSomeOperation(s);
  }
}  

Even with less trivial code it's still a no-brainer to check how len is 
used compared to having to dig out the code and documentation for each 
and every function s is passed to in the loop.

> More generally, using expressions in place of temporary variables
> lowers psychological complexity for most intelligent readers.

For most intelligent programmers, the laziness principal applies. Why 
make considerably more work later when a simple temporary takes much less 
time to use?

As in the example above, the use of the temporary is a bloody big clue, 
with really bold friendly letters etched out in neon saying "The length 
of the string should not change during this operation. If it does, 
consider it a big big bug. Thank you.".

> I agree that many programmers prefer to see temprary variables and I
> propose that this is because their use of the temporary variable
> paradigm, communicated to them by false authority, damaged them in
> Dijkstra's sense, where he claims that early exposure to Basic damages
> programming ability.
> 
> To me, the length of a string is something I should just have if I
> have a string. However, in May 2002 when I downloaded Jacques Navia's
> free compiler and coded in C after an interval of ten years, I had a
> massive brain fart.

If you want strings where getting the length is O(1), there are plenty of 
freely available libraries which implement such a sting model, or, 
implement whatever strategy you like best yourself. I used google and 
found 3 or 4 on the first page alone.

<snip>

> You can build initial versions of code in a readable fashion, test
> them, and then improve performance at the key places that need it.

Indeed you can, but you can also use temporary variables to show intent 
very clearly and not only as a performance improvement. Needlessly, and 
uselessly wasting cycles though is just asking to come back and make it 
faster later, and so the laziness principal applies. Since it takes, ooh, 
maybe 5 whole seconds of effort to use a temporary, that using the 
temporary shows a clear loop invarient and hence reducing the effort to 
understand the code in the loop... it sounds like a great thing to do to 
me. More efficient, and more readable! 
 
<snip>

> I conclude that real programmers love to waste the computer's time
> because they know that the wear and tear is a metaphor.

The time doesn't, and never has, belonged to the computer. The time spent 
in wasted cycles is time lost by the users. I totalled up the amount of 
time I spend waiting for my computer to get on with it over a few hours. 
I found that I'd spent a little under 5% of my time waiting...

I for one would much prefer the programmers of the software I use to use 
the 5 seconds of time (if that) it takes them to make their loops O(n) 
instead of O(n*n). Perhaps I'd get back some of the time I waited for 
windows to switch, for text to be searched for, for programs to open and 
all the various other times I'm waiting during the day.
 
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/15/2004 3:35:28 AM

In article <f5dda427.0402141731.477e41f9@posting.google.com>,
Edward G. Nilges <spinoza1111@yahoo.com> wrote:
> ...
>More generally, using expressions in place of temporary variables
>lowers psychological complexity for most intelligent readers.
>
>I agree that many programmers prefer to see temprary variables and I
>propose that this is because their use of the temporary variable
>paradigm, communicated to them by false authority, damaged them in
>Dijkstra's sense, where he claims that early exposure to Basic damages
>programming ability.
>
>...
>
>But any programmer who wants to be more than a coder prefers, I think,
>the just in time values of expressions to series of "statements" that
>agonizingly derive a value, and this was part of my preference,
>perhaps in the context misplaced, for a just-in-time evaluation of
>strlen.
>
>There is that type of programmer, I claim, who as a worshiper of
>Moloch-the-machine is physically offended, repelled, by the idea that
>the machine should do any excess work and instead prefers to abase
>himself in front of Moloch doing the work himself, thereby
>establishing the trust of Moloch as a priest of Moloch lest he himself
>be cast into the flames.

Okay, so let's first point out that there seems to be two
uses of temp vars here.  One is for intermediate results:

    x = a*b;
    y = x^2 + c;
    return y;

I honestly think that most programmers use temporary
variables for these kind intermediate results because it is
actually _easier_ for them, not because they think the code
is faster.  You might claim that it's because of early
exposure to the pernicious legacy of von Neumann, but note
that non-programmers also use temporary "variables" when
working out long calculations by hand.

The second usage that we have discussed is to lift
invariants out of the loop.

    n = strlen(s);
    for (i = 0; i < n; i++) { ... }

I agree that in these cases, it is somewhat clearer/easier to put
the expression directly in the loop.

    for (i = 0; i < strlen(n); i++) { ... }

Note that if the invariant does not involve a function call,
or aliased variables, many compilers will actually
automatically lift the invariant.  For example, this:

    int foo(const int a, const int b) {
	int r = 1;
	for (int i = 0; i < a*b; i++) {
	    r *= 2;
	}
	return r;
    }

gets compiled to:

    _Z3fooii:
    .LFB2:
	    pushl   %ebp
    .LCFI0:
	    movl    %esp, %ebp
    .LCFI1:
	    pushl   %ebx
    .LCFI2:
	    movl    $1, %ecx
	    movl    $0, %edx
	    movl    12(%ebp), %eax
	    imull   8(%ebp), %eax
	    ; a*b now in %ebx
	    movl    %eax, %ebx 
	    cmpl    %eax, %edx
	    jge     .L8
	    ; Note that the loop does not include a*b.
    .L6:
	    sall    $1, %ecx
	    incl    %edx
	    cmpl    %ebx, %edx
	    jl      .L6
    .L8:
	    movl    %ecx, %eax
	    popl    %ebx
	    leave
	    ret

Note that the loop, which begins at .L6, does not include a*b.

As to whether or not C should have a bona-fide string type,
well, it might be nice, but I don't have a strong opinion on
it.
0
Reply chiuk (37) 2/15/2004 4:37:10 AM

Malcolm wrote:

<snip>

>> > How do you balance efficiency and readability?
>>
>> They aren't necessarily in opposition.
>>
> There is very often a tension between the two.

Not as often as wild-eyed hackers would like us to think, though. I have 
found that it is generally possible to write code that is both acceptably 
efficient and acceptably readable. Yes, there can be exceptions, but that 
doesn't invalidate the general aspect of my claim.

> Usually efficiency is a
> definite requirement - if the code has to execute in a video frame then
> that is non-negotiable - whilst maintainability is a soft requirement -
> it's nice to have but the maintainers can always spend two days instead of
> one day wading through spaghetti code.

Yes, there can indeed be exceptions in which every cycle counts. Try writing 
a traffic-light controller in 24 bits /and/ stay readable. (But even here, 
good documentation can make maintenance possible.)

>> Code that nobody understands is, almost by definition, broken.
>>
> No it's not.

Almost.

> Often you don't want anyone to understand it - for instance
> if you don't want to be made redundant then it helps to be the only person
> who understands some vital bit of code.

Here we move outside the province of good programming practice. IMHO anyone 
who codes for indispensability immediately becomes dispensable.

> Code is only "broken" if it
> doesn't perform specified output for specified input.

Here we must disagree, then.

<snip>

>> > >> Since Question 1 made a flawed assumption and Question 2
>> > >> assumes a binary (yes/no) response range, the "encoding" is
>> > >> unlikely to be a useful one.
>> >
>> > I coded on a one to ten scale.
>>
>> That doesn't have any bearing on the usefulness of the encoding.
>>
> This is actually a mistake a lot of programmers make.

But it isn't a mistake /I/ made. I think you misunderstood what I said.

> Natural language
> isn't literal, propositions are not like conditional statements, either
> "true" or "false" but have varying truth levels.

What I meant was NOT that the encoding was unlikely to be useful because it 
covered a range, but that the encoding was unlikely to be useful because it 
was based on (at least) two flawed assumptions.

-- 
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 dontmail (1884) 2/15/2004 5:47:50 AM

[Usual Nilges story - 196 lines of junk, mostly snipped. Just one thing that 
particularly caught my eye this time...]

Edward G. Nilges wrote:

> For a "normal" person, the descriptor would be his Social Security
> Number in the USA or his National Health number in the UK.

(National Insurance Number, actually (or NIN to its friends.) The National 
Health number is obscure, and hardly used by anyone - except, presumably, 
the National Health Service on rare occasions.)

> For a weirdo, the descriptor might actually be a complete narrative of
> that person's life.
> 
> This is in fact the way cops track people. Note that I am not saying
> whether it is good or bad.
> 
> Therefore the fact that older computers had a fixed field does not
> mean that it's impossible to effectively surveille, and we should
> conclude we are being watched.

No, we shouldn't - or at least, we can't sensibly conclude this from the 
available information presented above. The existence of technology capable 
of doing X does not imply that X is necessarily done. After all, the 
technology to turn Illinois into a radioactive wasteland /exists/, and yet 
nobody has actually done it so far. It may, or may not be true that "we" 
are being watched, but the (putative) existence of effective programmatic 
surveillance techniques is not sufficient on its own to force us to the 
conclusion Mr Nilges suggests.

<much, much more nonsense snipped>

-- 
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 dontmail (1884) 2/15/2004 6:26:39 AM

Edward G. Nilges wrote:

> "Don Kim" <donkim@nospam.donkim.net> wrote in message
> news:<J95Xb.15873$IF1.923@fed1read01>...

<snip>

>> In OO, the notions of deriving "is-a" and "has-a" relationships, is
>> remarkably similar to Wittgenstein's hierarchy of propositional
>> derivisions.
> 
> I agree that objects make it easier to talk sensibly about the impact
> of a data system.

Is this true? If so, why?

> In fact, object orientation was invented by the
> Scandanavian computer scientist Ole Johann Dahl in the form of Simula

Further information for those who habitually doubt Mr Nilges:

"Professor emeritus Ole-Johan Dahl (1931 - June 29, 2002) was a Norwegian 
computer scientist and is considered to be one of the fathers of Simula and 
object-oriented programming along with Kristen Nygaard." (taken from a 
Wikipedia entry)

> because in his society, in which trade unions had a significant say in
> the way industrial processes were automated, he needed to negotiate
> their specific behavior, and to do so, he had to describe the
> software.

I would appreciate independent corroborating evidence of this claim, because 
it smacks too much of Nilgesque nonsense to be likely.

<lots of nonsense about objects snipped>


-- 
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 dontmail (1884) 2/15/2004 6:33:09 AM

"Edward G. Nilges" <spinoza1111@yahoo.com> wrote in message
>
> Pragmatism is that philosophy which would ascribe higher Truth to
> the more useful solution. Therefore a Pragmatist project philosophy of
> computer science might be ranking projects by their utility. It runs
> into the classic Pragmatist problem which is usefulness, for whom.
>
I think you are mixing up pragmatism and utilitarianism. The pragmatist says
"do what looks likely to work in the near future", the utilitarian says "do
what gives the greatest happiness to the greatest number".
>
> Today, because the tax code in total is regressive it is harder to
> credit an abstract utility so standalone that everybody can agree on
> truth==utility and instead we must ask, useful, to whom.
>
The philosphy of computer programming is marginally topical. That drifts off
into a discussion of pragmatism, which might come back to computer
programming. However now we see the problem with marginal topics. As it
happens I'm not an American and know very little about your tax system, but
I suspect that this analysis is highly provocative, and very liable to start
a wholly off-topic and lengthy thread about US tax codes.
>
> This would of course simulate how we ordinarily identify a person
> uniquely. We do so in an iterative fashion, "you know, Sally Smith,
> she was that drummer for the Bone Phone in the 1970s who came
> from Rancho Cucamonga and later surfaced as a born again in Los
> Angeles".
> We keep on adding empirical descriptors until we form a unique
> individual.
>
This is very much cutting edge stuff. You can often create a highly
convincing simulation of intelligence, but a computer cannot look a Sally
Smith with a human eye.
>
> Therefore the fact that older computers had a fixed field does not
> mean that it's impossible to effectively surveille, and we should
> conclude we are being watched.
>
Though a very good strategy is to refuse or falsify your date of birth.
 >
> > A lot of programming is just knocking out code to fulfil some user
> > requirement, whether expressed formally or not.
>
> Yes, it is a form of stenography.
>
Not quite, but it doesn't require much intelligence either. For instance,
you might need a program to snip the border of an image. You need to load
the image, save it, and do a little bit of logic to snip the edge pixels.
>
> Reagan's successful effort to cause the Soviet Union to collapse, by
> placing destabilising arms in Germany in the 1980s, was a gamble and
> it could have gone either way. During the critical period, in fact,
> Chernenko's ill health may have saved Reagan since Chernenko may > have
not had the will to press the Soviet button. Had some younger
> man like Kruschhev (sp?) been in charge, a pistol like Nikita, who
> had anger management issues, might well have called Reagan's bluff.
>
But as programmers we have no special expertise on Soviet politics.
>
> As to "relevance", a discussion of the medical reasons for complete
> nuclear disarmamant, in place of selective disarmament of rogue
> states, would belong in the default group sci.medicine assuming such > a
group exists and that it forms the base of a tree.
>
Let's say that someone argues that nuclear weapons are exposing the soldiers
who man them to cancer risks. That's clearly a medical issue. However if he
says that "the medical risks outweigh the military benefits" then he's moved
from the strictly medical, he has special competence only in one side of the
equation.
>
> No? If Gdansk has a university then to protect the university one
> should speak as a faculty member, saying, yo, Nazis not good.
>
In your role as a faculty member you have the right to say whether you think
the university would be better off under Polish or German administration.
However then the students and the ancillary staff also have their opinions.
>
> Yes, but a plumber is a tradesman. "Value neutrality" in this sense
> places programmers on the Craftsman side of Dijkstra's Dilemma
> ("Craftsman or Scientist?")
>
This is a real issue. Implementing a search for a person identified only as
"Sally Smith" is world away from writing an image cropping utility, but both
are programming. Similarly building a garage and building a cathederal are
both "building".
>
> This, as I pointed out in my review of After the Gold Rush, has
> consequences. It means that programmers lose the right to be
> considered professionals, to set their own hours. And it means that
> programmer organization, absent full scale trade union organization,
> and against offshore, is racist and xenophobic.
>
Employers want us to have the responsibilities of professionals with none of
the rights. This is a real issue, but not really about programming itself.
>
> No, programmers with sufficiently developed consciousness know
> the curious status of knowledge as an artifact and therefore are
> qualified to speak on how the "knowledge" that Saddam had WMD
> was manufactured, by means of their awareness of the multistep and
> artificial, indeed industrial, processes produce what appears to be
> common knowledge, such as Bush's State of the Union claim.
>
In a democracy every adult has a moral responsibility to inform himself
about major political issues, such as WMD, and to use his vote accordingly.
However programmers do not have special competence in assessing military
intelligence, and therefore general political discussion is off-topic
(though perfectly topical in other forums).


0
Reply Malcolm 2/15/2004 9:08:34 AM

In article <f5dda427.0402141650.bd058c3@posting.google.com>, spinoza1111@yahoo.com (Edward G. Nilges) wrote:
>Reagan's successful effort to cause the Soviet Union to collapse, by
>placing destabilising arms in Germany in the 1980s, was a gamble and
>it could have gone either way. During the critical period, in fact,
>Chernenko's ill health may have saved Reagan since Chernenko may have
>not had the will to press the Soviet button. Had some younger man like
>Kruschhev (sp?) been in charge, a pistol like Nikita, who had anger
>management issues, might well have called Reagan's bluff.

More nonsense - cruise missiles (effectively second-strike and 
battlefield weapons, and thus stabilising compared to the 
launch-on-threat ICBM system) were placed in Germany.  Of course the 
Soviet pawns such as the KGB-supported CND simply refused to discuss 
such issues when they were broached.

Arguably 'Star Wars' might have been destabilising if it ever looked 
like working.

It is an exaggeration to say that military expenditure collapsed 
the USSR, in any case.  A patient weakened by cancer may well die if he 
goes out jogging, but he might have died anyway, and would have soon 
died whatever the circumstances.  Perestroika would have been necessary 
at some point, and communism is incompatible with a substantial degree 
of human freedom.  The USSR was doomed before Reagan entered office.

- Gerry Quinn
0
Reply gerryq2 (435) 2/15/2004 11:14:59 AM

"Gerry Quinn" <gerryq@indigo.ie> wrote in message
>
> More nonsense - cruise missiles (effectively second-strike and
> battlefield weapons, and thus stabilising compared to the
> launch-on-threat ICBM system) were placed in Germany.  Of course > the
Soviet pawns such as the KGB-supported CND simply refused
> to discuss such issues when they were broached.
>
> Arguably 'Star Wars' might have been destabilising if it ever looked
> like working.
>
> It is an exaggeration to say that military expenditure collapsed
> the USSR, in any case.  A patient weakened by cancer may well die > if he
goes out jogging, but he might have died anyway, and would
> have soon died whatever the circumstances.  Perestroika would have
> been necessary at some point, and communism is incompatible with a
> substantial degree of human freedom.  The USSR was doomed
> before Reagan entered office.
>
See the problem Edward? Can you honestly say there is anything to do with
programming in the response you have provoked? This intelligent account of
the Cold War nuclear balance certainly has a place in a newsgroup somewhere,
but not comp.programming.


0
Reply Malcolm 2/15/2004 1:42:19 PM

In article <f5dda427.0402141731.477e41f9@posting.google.com>, spinoza1111
@yahoo.com says...
> More generally, using expressions in place of temporary variables
> lowers psychological complexity for most intelligent readers.

Judging by review of a lot of code over a long time period, I'd
say that the jury is still out on that one.  Obviously not everyone
agrees with your position.

> I agree that many programmers prefer to see temprary variables and I
> propose that this is because their use of the temporary variable
> paradigm, communicated to them by false authority, damaged them

I don't think it's damaging at all.  In fact, it has been proven
that in the case of your strlen example, amongst many others, the
use of a temp variable can have a very important performance 
advantage.  Please remember that not all computing is done on 
3.2 GHz Xeon's with massive onboard cache's and DDR 400 memory.
The lowly 8051 is probably still the most common controller 
in use on the planet.  So, "micro-efficiency" comments are 
completely wrong in that context.  Also, Heathfield posted benchmark
results showing massive differences in runtime on more modern
hardware with/without such use.

Also, why do you think compilers have keywords such as "register"
included?  This allows the programmer to tell the compiler that 
a particular variable will be heavily used, and that temporary
storage in a CPU register could result in a smaller and faster
program.

In addition to the obvious performance benefits, the ability to 
hoist invariants is also important to many, even if you do not 
find it valuable in your own source.

> To me, the length of a string is something I should just have if I
> have a string. 

Then, as has been recommended perhaps 1000 times since you first 
said this, implement a string ADT on your own which has that
property.  It has advantages, but there are also runtime costs
associated with ensuring that the length is correct.  Also be
sure and use size_t if you want it to be proper and portable and
work on large strings.  After all, you have definitely stated
that you do not like arbitrary string limits in the past.  Of 
course, you have also said that you do, so I'm a bit confused
on your actual position regarding that issue.

> However, in May 2002 when I downloaded Jacques Navia's free compiler 
> and coded in C after an interval of ten years, I had a massive brain 
> fart.

When do you expect to recover from what was obviously a debilitating
event?

> I forgot to keep foregrounded in my mind the reality that C doesn't
> really have strings. 

Of course it does.  It just does not have the same type of strings
as <insert some other language>.  If it was identical to another
language, it would have the same name.

> It has arrays of numbers 

Do you think that other languages store anything other than numbers
for string characters?

> terminated by zero, and you don't "have" strlen, which has to 
> trundle to the end of the string.

Or you can calculate it once, and then use it for a long time
without "Trundling" any more.  Of course, you have to use a temp
variable for such.  Or, you can write your own string ADT and
re-use it in every program you write.  (1001)

> However, if C is at all a viable language, 

Since it is obvious that C is a viable language, in fact it's 
incredibly widespread use despite rumors of it's imminent 
death for the last 20 years or so pretty much makes the above
look silly.

> it should support brain farts with at best slightly slower 
> code and in this case it did. 

I personally don't think compilers for any language should
hold your hand.  They shouldn't do what it thinks you meant,
or guess how to handle something better than you did.  The
programmer should be responsible for ensuring accurate results,
with the possible exception of the optimizer, which should be
optional in all cases.

> This is why C, which itself was a brain fart, is still used.

Actually, it's used today for quite a few reasons, such as
portability (name a language more universal across hardware
architectures, please).  Not to mention efficiency, it's in
effect a "high level" assembly language.  It's also so prevalent
that almost every programmer that has used an actual compiled
language (script kiddies excluded) is at least familiar with
it and can read pseudo-code expressed as C syntax as minimum.

I don't know anyone that thinks C is used because it is good
at protecting programmers from brain farts.  In fact, most
people have the opposite opinion.  

> You can build initial versions of code in a readable fashion, 
> test them, and then improve performance at the key places 
> that need it.

That's rather obvious isn't it?  After all, that's a surprisingly
succinct description of programming in general, especially 
considering the source.  It also applies to pretty much any
language, not just C or its relatives.

> > I was referring to code like:
> > 
> >     int foo(int a, int b, int c) {
> > 	/* Use temp var. */
> > 	int t = a*b;
> > 	return c/t + t;
> >     }
> >      
> >     int goo(int a, int b, int c) {
> > 	/* No temp var, but common sub-exprs. */
> > 	return c/(a*b) + a*b;
> >     }
> > 
> Same code: different psychological metrics.

True.  The latter case when carried to more real-world examples
is far more prone to error.  Mistakes with missing and/or extra
parentheses in such "long winded" expressions are very, very
common.  The use of temporary variables, with suitable names
and commenting, is far and away more readable and makes the
program logic easier to verify quickly on visual inspection.

> But when you scale up to multiple temp variables across multiple
> procedures the compiler will generate different code because the
> optimizer probably won't be able to see common variables.

Can you show an example of what you mean here and how a good 
compiler, such as gcc would have adverse performance results
from the use of a temp variable in more than one function?

> > In this case, the compiler won't produce the same code,
> > because most won't be smart enough to recognize that the
> > result of strlen() is a loop invariant.  However, any decent
> > compiler will use a register, and so there will be no
> > allocation/deallocation cost.  The version with the
> > temporary variable will in fact be faster.
> 
> Excuse me, how many registers are their [sic]?

It depends upon the platform.

> there WILL be allocation and deallocation costs in the
> form of save and restore!

Everything has a cost.  It's a matter of degree.  It's much
cheaper to move to/from a register and memory (or cache) than
it is to calculate the length of a string 300 times in the 
body of a loop.

> > This code:
> > 
> >     #include <strings.h>
> > 
> >     void goo();
> >     void foo(const char *s) {
> > 	int n = strlen(s);
> > 	int i;
> > 	for  (i = 0; i < n; i++) {
> > 	    goo();
> > 	}
> >     }
> > 

[assembler snipped]

> > Note that the result of the strlen() call is put into a
> > register.  In this case at least, there is no cost to using
> > a temporary variable.
> 
> I agree that optimization can get rid of NONPSYCHOLOGICAL temp taxes
> in the small.

Whatever that means.  The evidence is your claims about the compiler
actually losing as a result of code that has potential order of
magnitude algorithm improvements has been proven false.
 
> But any programmer who wants to be more than a coder prefers, I think,
> the just in time values of expressions to series of "statements" that
> agonizingly derive a value, and this was part of my preference,
> perhaps in the context misplaced, for a just-in-time evaluation of
> strlen.

Actual programmers do not have a problem recognizing (immediately) 
common language idioms and using them because they are so prevalent 
that not using them becomes confusing to others reading the code.  Such
idioms evolve over the lifetime of a language from common usage and
vary over time as the language becomes more mature.  Your lack of
comfort with the use of a temp for strlen is nothing more than evidence 
that you have insufficient experience in C and perhaps also that you 
are unwilling to use different methods for different languages,
even when it is needed to fully exploit each to best advantage.

> There is that type of programmer, I claim, who ... is physically 
> offended, repelled, by the idea that the machine should do any excess 
> work and instead prefers to abase himself ... doing the work himself

The only people that can claim to be such are those that insist
upon writing EVERYTHING in hand optimized assembly language.  I 
do not know anyone that fits that description.  Obviously, nobody
running a modern operating system does.  Although, recent threads
here have shown that some people are interested ONLY in the fastest
possible solution, regardless of whether or not it is required. 
That does not describe all programmers, or even a sizable portion
of them.

> There is that type of programmer who likes machines but doesn't like
> people. He tends to want to reduce wear and tear on the machine.

Ridiculous.  If you want to reduce "Wear and tear" on a machine, 
turn it off.  Just don't cycle the power too often.  ;-)  For example,
most of my systems (I have 7 running in the house right now) 
participate in various distributed computing work (at a low priority
during regular use) which keeps the CPU utilization at or close to
100% all the time on all of them.  I'm not remotely worried about wear
and tear on CPUs and RAM.  Hard drives are another story, but such
code does not beat on the hard drive to any measurable degree.

> What's REALLY interesting is that absent Hopper's mad, gay adventures
> with high level languages THERE WOULD BE NO COMPUTER INDUSTRY.

Do you really believe that without grace hopper there would be no
high level languages?  In all this time, nobody would have come 
up with such?  I can't imagine how you could really believe it.

I think it might have been useful in some minor ways, such as keeping a 
certain group of "wannabe" programmers from peeking inside, but the 
costs certainly outweigh the benefits.

> I conclude that real programmers love to waste the computer's time
> because they know that the wear and tear is a metaphor.

Real programmers understand the difference between wasting time,
and wasting too much time.  Wannabe's can't see that difference at
all and are confused when others try to point it out to them.


-- 
Randy Howard                
2reply remove FOOBAR 
      
0
Reply randyhoward (3272) 2/15/2004 5:42:40 PM

In article <c0m3r7$s1l$1@newsg1.svr.pol.co.uk>, malcolm@55bank.freeserve.co.uk 
says...
> > > How do you balance efficiency and readability?
> >
> > They aren't necessarily in opposition.
> >
> There is very often a tension between the two. Usually efficiency is a
> definite requirement - if the code has to execute in a video frame then that
> is non-negotiable - whilst maintainability is a soft requirement - it's nice
> to have but the maintainers can always spend two days instead of one day
> wading through spaghetti code.

Unfortunately, this "once size fits all" discussion misses the mark.  Some
small parts of larger programs may have a concrete need for the use of
"hard to read" code, or inclusion of inline or linked assembly to achieve
a particular result.  Those small bits often wind up being arcane, or hard
to read by the "maintainer to be named later".  However, the overall package
can still be written with a goal of readability and maintenance in mind without
suffering and without reducing usability of the finished program.  In addition,
the "ugly bits" can be explained in comments to the point that they do not
become a maintenance problem.

> > Code that nobody understands is, almost by definition, broken.
> >
> No it's not. Often you don't want anyone to understand it - for instance if
> you don't want to be made redundant then it helps to be the only person who
> understands some vital bit of code. 

Wow..  I couldn't disagree more with that statement.  If I encountered such
code in a development shop, I'd immediately determine who the author was,
and if that was the explanation for the obfuscation, two choices would be
offered up.  Recode it/comment it such that it is readable by anyone needing
to maintain the code, or leave the building the same day, never to return.

That's simply not defensible behavior.  

-- 
Randy Howard                
2reply remove FOOBAR 
      
0
Reply randyhoward (3272) 2/15/2004 5:54:24 PM

In article <c0n3eu$25j$1@sparta.btinternet.com>, dontmail@address.co.uk.invalid 
says...
> Edward G. Nilges wrote:
> > Therefore the fact that older computers had a fixed field does not
> > mean that it's impossible to effectively surveille, and we should
> > conclude we are being watched.
> 
> No, we shouldn't - or at least, we can't sensibly conclude this from the 
> available information presented above. The existence of technology capable 
> of doing X does not imply that X is necessarily done. After all, the 
> technology to turn Illinois into a radioactive wasteland /exists/, and yet 
> nobody has actually done it so far. 

But it's hard not to be tempted by the notion it might be a good idea 
these days.  emoti:-)

-- 
Randy Howard                
2reply remove FOOBAR 
      
0
Reply randyhoward (3272) 2/15/2004 5:57:18 PM

"Malcolm" <malcolm@55bank.freeserve.co.uk> wrote in message <news:c0m3r7$s1l$1@newsg1.svr.pol.co.uk>...

> "Richard Heathfield" <dontmail@address.co.uk.invalid> wrote in

> > Code that nobody understands is, almost by definition, broken.
> >
> No it's not. Often you don't want anyone to understand it - for instance if
> you don't want to be made redundant then it helps to be the only person who
> understands some vital bit of code. Code is only "broken" if it doesn't
> perform specified output for specified input.

Coders that actually do this are, almost by definition, redundant.
After all, how "vital" could some steaming pile of spaghetti-crap
be if it takes only two days, rather than just one, to wade through
and refactor or rewrite into something sane, hmmm?

Whom did you say you worked for, again?  >=)

--
Joe Foster <mailto:jlfoster%40znet.com>  Sign the Check! <http://www.xenu.net/>
WARNING: I cannot be held responsible for the above        They're   coming  to
because  my cats have  apparently  learned to type.        take me away, ha ha!


0
Reply joe303 (601) 2/15/2004 6:17:34 PM

Edward wrote:
) More generally, using expressions in place of temporary variables
) lowers psychological complexity for most intelligent readers.

No it doesn't.  Most people use 'inbetween' results when they calculate
things, and they write them down as well.  That's the same as temporary
variables.  In other words; the natural way of doing something is to use a
temporary variable.

I propose that your aversion to temporary variables is caused by an
irrational desire to be different from everybody else.


SaSW, Willem
-- 
Disclaimer: I am in no way responsible for any of the statements
            made in the above text. For all I know I might be
            drugged or something..
            No I'm not paranoid. You all think I'm paranoid, don't you !
#EOT
0
Reply willem (1478) 2/15/2004 6:29:36 PM

I've been one the first saying that this could be an interesting and
on-topic thread but so far I've seen lots of discussions about const, making
Illinois a radioactive land and other amenities. Maybe now I understand the
first reaction of some of the people on the list ....

Anyway, since I'm still interested, here am I. Again.

About books, Programmer Dude said:

> and--a personal favorite--PROGRAMMING ON PURPOSE (P. J. Plauger).

Is the second one a collection of articles from "Computer Language"? I
remember I found some copies of it here in Italy before it was closed
(sigh!) and there was a regular column with the same name. Simply the best
programming magazine I've never read! I'll have a look to see if I can find
the book. If I remember well, that was the type of philosophy I was talking
about!

Let's start from the beginning. A "Philosphy of programming" should be able
to answer to the following question: "What do we do when we build a software
system?".

My (tentative) answer is: "We create a model of the reality written in a
language that can be executed by a machine".

What are the "pragmatic" aspects of this answer? There are many:

- The more faithfully the model mimic the reality, the more our software
will satisfy the user

- If "programming" means creating models, we should focus our interest in
finding wich modelling concepts are most relevant for software systems and
to things like efficiently communicate models.

Of course many issues remains unresolved:

 - What is the "reality" we are trying to model in a videogame? Maybe we
should extend our concept of "what's real".

 - As any model is necessarily incomplete, how can we be sure that all the
relevant part have been modeled?

 - Once we have an "high level model", how do we refine it to a point a
machine can efficiently execute it?

I've seen some message mentioning "ethics" and "social impacts", I would
pospone that topics to a later time. I feel the above questions as more
fundamental.


A final note. Please consider that not everyone in this list is a native
English speaker and that the topic we are discussing is not an easy one! If
you can,  try to keep your sentences plain and straightforward so that even
people like me can uderstand what you mean, I've read some messages whitout
clearly understand the point the writer was trying to make.

I know I am the one to blame (I should improve my english) but any help from
your side would be appreciated!

   R/D




0
Reply rd79 (9) 2/15/2004 8:14:23 PM

"Joe "Nuke Me Xemu" Foster" <joe@bftsi0.UUCP> wrote in message
>
> Coders that actually do this are, almost by definition, redundant.
> After all, how "vital" could some steaming pile of spaghetti-crap
> be if it takes only two days, rather than just one, to wade through
> and refactor or rewrite into something sane, hmmm?
>
> Whom did you say you worked for, again?  >=)
>
I'm a games programmer.

On the N64 there is a C calling convention for assembly langauge. Certain
registers are designated as temporaries and you can corrupt these in leaf
procedures, others need to be saved, others are used to pass parameters.
Now you can write an 8-point discrete cosine transform, part of an image
compression algorithm that is very performance critical, using this
convention, which is easy to understand. Or you can break the convention and
do the whole transform in registers, which means you need no memory accesses
at all. Guess which I chose?


0
Reply Malcolm 2/16/2004 2:45:04 AM

"Remo D." <rd@nospam.it> wrote in message
>  - What is the "reality" we are trying to model in a videogame?
> Maybe we should extend our concept of "what's real".
>
We're not. This is the mistake video games players who write in with game
ideas frequently make.
A game like Doom/Quake gives the powerful illusion of being a reality
simulator, which is why the players write in with suggestions for a sexy
girl character, Yetis with icicles, and so on. However actually it creates
an alternate reality with its own rules, such as flat walls, no big open
spaces, no light sources, etc.
The sexy girl would be very hard to achieve because if she's on your side
she gets too close to the camera, and we run out of polys. In addition, what
makes her sexy is behaviour, and how are you going to achieve attractive
behaviour without giving her a repertoire which she runs through once and
then repeats? It's simply not like a film script where you can cast an
attractive actress and give her appealing things to do and say.
Similarly the yeti requires modelling of hair and, for the icicle,
translucence, reflection and refraction. Again you just don't have the
processing power to do this, so that idea is out.
You create a world with rules, and then within those rules design something
which is fun to play.


0
Reply Malcolm 2/16/2004 2:55:49 AM

"Malcolm" <malcolm@55bank.freeserve.co.uk> wrote in message <news:c0pasn$416$1@newsg1.svr.pol.co.uk>...

> "Joe "Nuke Me Xemu" Foster" <joe@bftsi0.UUCP> wrote in message
> >
> > Coders that actually do this are, almost by definition, redundant.
> > After all, how "vital" could some steaming pile of spaghetti-crap
> > be if it takes only two days, rather than just one, to wade through
> > and refactor or rewrite into something sane, hmmm?
> >
> > Whom did you say you worked for, again?  >=)
> >
> I'm a games programmer.
>
> On the N64 there is a C calling convention for assembly langauge. Certain
> registers are designated as temporaries and you can corrupt these in leaf
> procedures, others need to be saved, others are used to pass parameters.
> Now you can write an 8-point discrete cosine transform, part of an image
> compression algorithm that is very performance critical, using this
> convention, which is easy to understand. Or you can break the convention and
> do the whole transform in registers, which means you need no memory accesses
> at all. Guess which I chose?

Dunno and don't care.  I'd go with the easy-to-understand code,
test and profile it, and if it is in fact too slow, modify it
and comment, comment, comment.  Then again, I don't rely on
obfuscating my code in order to keep a job.

--
Joe Foster <mailto:jlfoster%40znet.com>  "Regged" again? <http://www.xenu.net/>
WARNING: I cannot be held responsible for the above        They're   coming  to
because  my cats have  apparently  learned to type.        take me away, ha ha!


0
Reply joe303 (601) 2/16/2004 3:51:43 AM

Remo D. wrote:

<snip>

> Let's start from the beginning. A "Philosphy of programming" should be
> able to answer to the following question: "What do we do when we build a
> software system?".
> 
> 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.

> What are the "pragmatic" aspects of this answer? There are many:
> 
> - The more faithfully the model mimic the reality, the more our software
> will satisfy the user

Not /always/ true. The most obvious counter-example would, I think, be video 
games. Note that simulations are /not/ an exception to this exception - we 
wouldn't want to, say, play a car racing game that killed you if you got 
the corner wrong!

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.

> - If "programming" means creating models, we should focus our interest in
> finding wich modelling concepts are most relevant for software systems and
> to things like efficiently communicate models.
> 
> Of course many issues remains unresolved:
> 
>  - What is the "reality" we are trying to model in a videogame? Maybe we
> should extend our concept of "what's real".

Ah, you beat me to it! :-)  But is it wise to let a dynamic modelling system 
modify our perception of reality, when that model was built purely for 
entertainment purposes? For example, I can accept the existence of games, 
and I can accept the existence of little blue hedgehogs running around 
"inside" those games, but that doesn't mean I'm happy to accept the 
existence of little blue hedgehogs "in real life", so to speak. The 
computer is a great tool for opening up and extending our imaginations, but 
that doesn't mean we should confuse imagination with reality.

>  - As any model is necessarily incomplete, how can we be sure that all the
> relevant part have been modeled?

We can't. We can come quite close to it, though, by testing against a 
requirements specification.

>  - Once we have an "high level model", how do we refine it to a point a
> machine can efficiently execute it?

Top-down design is an obvious first step.

> I've seen some message mentioning "ethics" and "social impacts", I would
> pospone that topics to a later time.

Or a different newsgroup, perhaps.

> I feel the above questions as more fundamental.

They're certainly more relevant to comp.programming.

> A final note. Please consider that not everyone in this list is a native
> English speaker and that the topic we are discussing is not an easy one!
> If
> you can,  try to keep your sentences plain and straightforward so that
> even people like me can uderstand what you mean, I've read some messages
> whitout clearly understand the point the writer was trying to make.

If I have written anything which you didn't understand, I will gladly 
explain it. But somehow, I don't think you'll have any problem 
understanding what I've written; your English appears to be first rate. I 
can, however, see how you might struggle when faced with articles made 
intentionally difficult by their authors.

> I know I am the one to blame (I should improve my english) but any help
> from your side would be appreciated!

When my Italian (just guessing!) is not just as good as, but better than, 
your English, maybe I could justify blaming you for poor language skills. 
Until then, I'll do what I can to write my articles in plain English.

-- 
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 dontmail (1884) 2/16/2004 4:59:57 AM

Kenneth Chiu wrote:

>     x = a*b;
>     y = x^2 + c;
>     return y;
> 
> I honestly think that most programmers use temporary
> variables for these kind intermediate results because it is
> actually _easier_ for them, not because they think the code
> is faster.

In this case, I don't see any reason why it would be detectably
faster or slower. I do break out complex equations--as you show
above--for three reasons: (1) it often helps manage line length
of the source; (2) it is easier to understand; (3) it allows you
to easily inspect intermediate values with a debugger.

There is also the fact that sometimes an intermediate value is
calulated and used more than once, so there can be a small
savings in removing the duplication.  Trivial example:

	x = (n * m) + p
	y = (a * x^3) + (b * x^2) + c

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

Programmer wrote:
) There is also the fact that sometimes an intermediate value is
) calulated and used more than once, so there can be a small
) savings in removing the duplication.  Trivial example:
)
) 	x = (n * m) + p
) 	y = (a * x^3) + (b * x^2) + c

Isn't the optimizer supposed to do that for you ?


SaSW, Willem
-- 
Disclaimer: I am in no way responsible for any of the statements
            made in the above text. For all I know I might be
            drugged or something..
            No I'm not paranoid. You all think I'm paranoid, don't you !
#EOT
0
Reply willem (1478) 2/16/2004 5:15:49 PM

Willem wrote:

>> There is also the fact that sometimes an intermediate value is
>> calulated and used more than once, so there can be a small
>> savings in removing the duplication.  Trivial example:
>>
>>       x = (n * m) + p
>>       y = (a * x^3) + (b * x^2) + c
> 
> Isn't the optimizer supposed to do that for you ?

Should!  If it's on.  If it's good enough.  (It's a lot less
clear if the duplicated expression is complex or involves
function calls.)

Optimizers are Black Magic, so who knows!  (-:

But obviously the real gains are in the main points mentioned earlier.

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

"Willem" <willem@stack.nl> wrote in message <news:slrnc31um5.hoe.willem@toad.stack.nl>...

> Programmer wrote:
> ) There is also the fact that sometimes an intermediate value is
> ) calulated and used more than once, so there can be a small
> ) savings in removing the duplication.  Trivial example:
> )
> ) x = (n * m) + p
> ) y = (a * x^3) + (b * x^2) + c
>
> Isn't the optimizer supposed to do that for you ?

Sometimes it's better to leave it to the compiler, if the compiler
is smart enough to leave the common subexpression in an 80-bit FPU
register instead of moving it to a 64-bit Double variable, frex...

--
Joe Foster <mailto:jlfoster%40znet.com>  "Regged" again? <http://www.xenu.net/>
WARNING: I cannot be held responsible for the above        They're   coming  to
because  my cats have  apparently  learned to type.        take me away, ha ha!


0
Reply joe303 (601) 2/16/2004 5:27:39 PM

"Joe "Nuke Me Xemu" Foster" <joe@bftsi0.UUCP> wrote in message
>
> Dunno and don't care.  I'd go with the easy-to-understand code,
> test and profile it, and if it is in fact too slow, modify it
> and comment, comment, comment.
>
The problem is you assume you have a definite specification. If you are
writing an embedded MPEG codec then probably its got to decompress the worst
case at 60 frames per second, and a program that does it at 120 frames a
second is not superior to one that just manages the 60.
However if the faster the decompressor the more textures you can have, then
a slightly slower version means fewer textures and poorer visual quality.
The degradation won't be catastrophic and the game will still be saleable
with 20% fewer textures in it. The faster things run, the more you can
squeeze in when you have an open-ended spec and fixed hardware.
>
> Then again, I don't rely on obfuscating my code in order to keep a
> job.
>
Well if you're ever made redundant remember you had this handy hint.


0
Reply Malcolm 2/16/2004 8:24:53 PM

Richard Heathfield <dontmail@address.co.uk.invalid> wrote in message news:<c0n3eu$25j$1@sparta.btinternet.com>...
> [Usual Nilges story - 196 lines of junk, mostly snipped. Just one thing that 
> particularly caught my eye this time...]

Gee, you might be ignoring something important, or something. I
realize that the Telly might be more interesting what with Sharpe
knocking about Spain with Wellington, but you might want to improve
your cultural level by actually reading posts to which you reply.
Indeed, this is common courtesy. Or something.
> 
> Edward G. Nilges wrote:
> 
> > For a "normal" person, the descriptor would be his Social Security
> > Number in the USA or his National Health number in the UK.
> 
> (National Insurance Number, actually (or NIN to its friends.) The National 
> Health number is obscure, and hardly used by anyone - except, presumably, 
> the National Health Service on rare occasions.)
> 
> > For a weirdo, the descriptor might actually be a complete narrative of
> > that person's life.
> > 
> > This is in fact the way cops track people. Note that I am not saying
> > whether it is good or bad.
> > 
> > Therefore the fact that older computers had a fixed field does not
> > mean that it's impossible to effectively surveille, and we should
> > conclude we are being watched.
> 
> No, we shouldn't - or at least, we can't sensibly conclude this from the 
> available information presented above. The existence of technology capable 
> of doing X does not imply that X is necessarily done. After all, the 
> technology to turn Illinois into a radioactive wasteland /exists/, and yet 
> nobody has actually done it so far. It may, or may not be true that "we" 
> are being watched, but the (putative) existence of effective programmatic 
> surveillance techniques is not sufficient on its own to force us to the 
> conclusion Mr Nilges suggests.

You might consider reading your boy Jeremy Bentham, who pointed out
that the possibility of surveillance is almost as good as its reality,
and in some cases better, for from his "utilitarian" standpoint, it
saves the government money if we act as if we are indeed being
surveilled.

Bentham's Panopticon, a model prison, was built so one keeper could
spy on any one prisoner at any time. The philosopher concluded that
the possibility of such spying would suffice, from a cost-benefit
standpoint, to control behavior.

In this ng, I'd suggest that a majority of lurkers would make their
feelings known but for the potential of employer surveillance.

> 
> <much, much more nonsense snipped>
0
Reply spinoza1111 (3250) 2/16/2004 10:04:21 PM

Randy Howard <randyhoward@FOOverizonBAR.net> wrote in message news:<MPG.1a996efbfebb72d39896f0@news.verizon.net>...
> In article <c0n3eu$25j$1@sparta.btinternet.com>, dontmail@address.co.uk.invalid 
> says...
> > Edward G. Nilges wrote:
> > > Therefore the fact that older computers had a fixed field does not
> > > mean that it's impossible to effectively surveille, and we should
> > > conclude we are being watched.
> > 
> > No, we shouldn't - or at least, we can't sensibly conclude this from the 
> > available information presented above. The existence of technology capable 
> > of doing X does not imply that X is necessarily done. After all, the 
> > technology to turn Illinois into a radioactive wasteland /exists/, and yet 
> > nobody has actually done it so far. 
> 
> But it's hard not to be tempted by the notion it might be a good idea 
> these days.  emoti:-)

Gee, why is it that when technicians lose arguments they always turn
the topic to homophobic exposure, their gun ownership, or nuclear war?
Randy's post here is offtopic for it does not contribute towards
moving a discussion, centered on programming and its context, forward:
quite the reverse.

Of course, it gets the free topicality pass that is accorded to hatred
and fear which seems always on topic.
0
Reply spinoza1111 (3250) 2/16/2004 10:06:50 PM

"Malcolm" <malcolm@55bank.freeserve.co.uk> wrote in message news:<c0ncvr$bl5$1@news6.svr.pol.co.uk>...
> "Edward G. Nilges" <spinoza1111@yahoo.com> wrote in message
> >
> > Pragmatism is that philosophy which would ascribe higher Truth to
> > the more useful solution. Therefore a Pragmatist project philosophy of
> > computer science might be ranking projects by their utility. It runs
> > into the classic Pragmatist problem which is usefulness, for whom.
> >
> I think you are mixing up pragmatism and utilitarianism. The pragmatist says
> "do what looks likely to work in the near future", the utilitarian says "do
> what gives the greatest happiness to the greatest number".

You have made the correct distinction, but I haven't mixed the two up.
Utilitarianism as you know derives from the early 19th century British
thought of John Stuart Mill and Jeremy Bentham and Pragmatism from the
late 19th century and early 20th century American thought of William
James and John Dewey.

As a Yank I did not mean Benthamite, Millsian or Pareto optimality
which is something can be measure. I meant John Dewey's narrative of
truth as utility.

Pragmatism may need a Utilitarian justification in any society of
greater inequality than early 20th century America, which was equal
EXCEPT for Jim Crow, which manufactured equality's ersatz in the form
of white skin privilege. But because of this ersatz equality,
Americans could speak of truth as utility because in that era white
Americans agreed, more than they do now, on what was "practical".
Black Americans also agreed with the honkies, adding only, please
treat us better...in particular stop lynching us.

This was the illusion of equality, which was dispelled when Dr. King
asked for justice and was martyred, but it formed the narrative
foundation for Dewey's assumption that workability was truth.

And to return, heat shield cherry-red, to programming per se:
Americans justify data systems as long as they more or less work, and
probably don't see the need for formal correctness proving because of
this philosophical tradition.

> >
> > Today, because the tax code in total is regressive it is harder to
> > credit an abstract utility so standalone that everybody can agree on
> > truth==utility and instead we must ask, useful, to whom.
> >
> The philosphy of computer programming is marginally topical. That drifts off
> into a discussion of pragmatism, which might come back to computer
> programming. However now we see the problem with marginal topics. As it
> happens I'm not an American and know very little about your tax system, but
> I suspect that this analysis is highly provocative, and very liable to start
> a wholly off-topic and lengthy thread about US tax codes.

I think you'll have to admit that I am skilled at orbital re-entry.
This is not the place for discussion of the US tax code...apart from
the fascinating question of why the IRS can't modernize its data
systems when in the 1930s its technology was cutting edge.



> >
> > This would of course simulate how we ordinarily identify a person
> > uniquely. We do so in an iterative fashion, "you know, Sally Smith,
> > she was that drummer for the Bone Phone in the 1970s who came
> > from Rancho Cucamonga and later surfaced as a born again in Los
> > Angeles".
> > We keep on adding empirical descriptors until we form a unique
> > individual.
> >
> This is very much cutting edge stuff. You can often create a highly
> convincing simulation of intelligence, but a computer cannot look a Sally
> Smith with a human eye.

No, it can't. However, the length of any text the computer can provide
about Sally is unbounded. I don't think the algorithm I described is
rocket science: indeed, it's just a series of SQL statements presented
to an Oracle or SQL Server data base until the "count" of the
resulting "record set" converges to 1.

Of course, that count might go from small n>1 to 0 without stopping at
1 which means in this case that two chicks were drummers for Bone
Phone in the 1970s, coming out of Rancho Cucamonga and later surfacing
as born-again preachers. But, you keep on adding factoids.


> >
> > Therefore the fact that older computers had a fixed field does not
> > mean that it's impossible to effectively surveille, and we should
> > conclude we are being watched.
> >
>  Though a very good strategy is to refuse or falsify your date of birth.

A better strategy is to be completely honest about who you are, at
least on a Kantian analysis, for if everyone falsifies, the benefits
of technology accrue to no one except perhaps Tony Soprano (who as you
know is the fictional American goombah).

I am significantly disinterested in strategies for individual survival
and individual flourishing which entail at some length the war of all
against all. My country is trying to impose this system on Iraq and it
ain't working.

>  >
> > > A lot of programming is just knocking out code to fulfil some user
> > > requirement, whether expressed formally or not.
> >
> > Yes, it is a form of stenography.
> >
> Not quite, but it doesn't require much intelligence either. For instance,
> you might need a program to snip the border of an image. You need to load
> the image, save it, and do a little bit of logic to snip the edge pixels.
> >
> > Reagan's successful effort to cause the Soviet Union to collapse, by
> > placing destabilising arms in Germany in the 1980s, was a gamble and
> > it could have gone either way. During the critical period, in fact,
> > Chernenko's ill health may have saved Reagan since Chernenko may > have
>  not had the will to press the Soviet button. Had some younger
> > man like Kruschhev (sp?) been in charge, a pistol like Nikita, who
> > had anger management issues, might well have called Reagan's bluff.
> >
>  But as programmers we have no special expertise on Soviet politics.

Interesting. Natan Sharansky, now Israel's conservative Foreign
Minister, thought as a Soviet subject in the 1970s that his insight
into just how really stupid Soviet computer managers were indeed gave
him the right to speak out against Soviet society as a whole,
especially when they would not let him go to Israel.


> >
> > As to "relevance", a discussion of the medical reasons for complete
> > nuclear disarmamant, in place of selective disarmament of rogue
> > states, would belong in the default group sci.medicine assuming such > a
>  group exists and that it forms the base of a tree.
> >
> Let's say that someone argues that nuclear weapons are exposing the soldiers
> who man them to cancer risks. That's clearly a medical issue. However if he
> says that "the medical risks outweigh the military benefits" then he's moved
> from the strictly medical, he has special competence only in one side of the
> equation.

OK, where risk=medical/military, he knows medical and as a citizen
knows military not as well as the military "expert".

The key is however that he gets a pass as a citizen to speak on
military aspects because in a free state, we don't leave military
matters exclusively to military men. We did so in Iraq and they won
the war and lost the peace.

And note that if we're all "experts" only within demarcated
disciplinary bounds, then the military expert is in the same
epistemological boat as the doctor, for his MEDICAL knowledge is the
knowledge of a layperson.

I should add, also, that my Dad was a serving military physician in
occupied Germany.



> >
> > No? If Gdansk has a university then to protect the university one
> > should speak as a faculty member, saying, yo, Nazis not good.
> >
> In your role as a faculty member you have the right to say whether you think
> the university would be better off under Polish or German administration.
> However then the students and the ancillary staff also have their opinions.

....which I do not have to recognize if the students have been suborned
by free beer to the Nazi cause. Whence this flaccid attempt to have
people "rise above" their opinions, by treating them as equivalent to
some other person's opinions?
> >
> > Yes, but a plumber is a tradesman. "Value neutrality" in this sense
> > places programmers on the Craftsman side of Dijkstra's Dilemma
> > ("Craftsman or Scientist?")
> >
> This is a real issue. Implementing a search for a person identified only as
> "Sally Smith" is world away from writing an image cropping utility, but both
> are programming. Similarly building a garage and building a cathederal are
> both "building".
> >
> > This, as I pointed out in my review of After the Gold Rush, has
> > consequences. It means that programmers lose the right to be
> > considered professionals, to set their own hours. And it means that
> > programmer organization, absent full scale trade union organization,
> > and against offshore, is racist and xenophobic.
> >
> Employers want us to have the responsibilities of professionals with none of
> the rights. This is a real issue, but not really about programming itself.

I'd say that it is an issue in programming because systematically,
despite the intellectual challenges, it must of necessity be
invisible: ignore that man behind the curtain.

> >
> > No, programmers with sufficiently developed consciousness know
> > the curious status of knowledge as an artifact and therefore are
> > qualified to speak on how the "knowledge" that Saddam had WMD
> > was manufactured, by means of their awareness of the multistep and
> > artificial, indeed industrial, processes produce what appears to be
> > common knowledge, such as Bush's State of the Union claim.
> >
> In a democracy every adult has a moral responsibility to inform himself
> about major political issues, such as WMD, and to use his vote accordingly.
> However programmers do not have special competence in assessing military
> intelligence, and therefore general political discussion is off-topic
> (though perfectly topical in other forums).
0
Reply spinoza1111 (3250) 2/16/2004 10:28:05 PM

In article <f5dda427.0402161406.52d9e859@posting.google.com>, spinoza1111
@yahoo.com says...
> > But it's hard not to be tempted by the notion it might be a good idea 
> > these days.  emoti:-)
> 
> Gee, why is it that when technicians lose arguments they always turn
> the topic to homophobic exposure, their gun ownership, or nuclear war?

False premise, incorrect stereotype.

> Randy's post here is offtopic for it does not contribute towards
> moving a discussion, centered on programming and its context, forward:
> quite the reverse.

It was a joke.  Even with the special hungarian notation emoticons I
put in just for you, you remain confused.  I'm afraid it's hopeless.


-- 
Randy Howard                
2reply remove FOOBAR 
      
0
Reply randyhoward (3272) 2/17/2004 1:18:20 AM

In article <f5dda427.0402161404.2fcb7718@posting.google.com>, spinoza1111
@yahoo.com says...
> Richard Heathfield <dontmail@address.co.uk.invalid> wrote in message news:<c0n3eu$25j$1@sparta.btinternet.com>...
> > [Usual Nilges story - 196 lines of junk, mostly snipped. Just one thing that 
> > particularly caught my eye this time...]
> 
> Gee, you might be ignoring something important, or something. 

Sadly, that's not the case.  The simple observance of the word
Nilges in the from line is enough to prove that false.  You
simply are the most long-winded individual I have ever encountered.
Very little of the thousands of words you post are:
a) important
b) not a repeat of previous posts, sometimes verbatim
c) on topic 
d) worthy of serious contemplation

As such, it's simply reasonable to skim over your text, and
see if anything worth responding to emerges.  I think that's
exactly what's happening above.

> Indeed, this is common courtesy. Or something.

No Usenet participant is required to read or respond to the
writings of any other, even when the poster is typically
worth reading.

> ... the possibility of surveillance is almost as good as its 
> reality, and in some cases better, for from his "utilitarian" 
> standpoint, it saves the government money if we act as if we 
> are indeed being surveilled.

Add paranoia to the list of Nilges' debilitating illnesses.

> In this ng, I'd suggest that a majority of lurkers would make their
> feelings known but for the potential of employer surveillance.

Hehe....someone posted a nice parody of some song recently in one
of the newsgroups about those that claim they have armies of
silent supporters.  Wish I could find the link.  It's perfectly
appropriate.

Hint: People do not have to worry about employer surveillance on
Usenet.  It's quite trivial to hide your actual name if that's
important to you.
 
-- 
Randy Howard                
2reply remove FOOBAR 
      
0
Reply randyhoward (3272) 2/17/2004 1:26:38 AM

"Malcolm" <malcolm@55bank.freeserve.co.uk> wrote in message <news:c0r8vq$fll$1@news7.svr.pol.co.uk>...

> "Joe "Nuke Me Xemu" Foster" <joe@bftsi0.UUCP> wrote in message
> >
> > Dunno and don't care.  I'd go with the easy-to-understand code,
> > test and profile it, and if it is in fact too slow, modify it
> > and comment, comment, comment.
> >
> The problem is you assume you have a definite specification. If you are
> writing an embedded MPEG codec then probably its got to decompress the worst
> case at 60 frames per second, and a program that does it at 120 frames a
> second is not superior to one that just manages the 60.
> However if the faster the decompressor the more textures you can have, then
> a slightly slower version means fewer textures and poorer visual quality.
> The degradation won't be catastrophic and the game will still be saleable
> with 20% fewer textures in it. The faster things run, the more you can
> squeeze in when you have an open-ended spec and fixed hardware.

Even with an open-ended spec, hot-spots can still be profiled and
swatted.  You do make the effort to find out where the time is
actually spent, rather than merely guessing, don't you?  Or do you
just obfuscate bits of code picked at randumb?

> > Then again, I don't rely on obfuscating my code in order to keep a
> > job.
> >
> Well if you're ever made redundant remember you had this handy hint.

If you have to worry about it that much, perhaps you're in the wrong
line of work anyway, or you're working for the wrong company or PHB.
Any sane boss would be wondering what happens when an 'indispensable'
employee gets run over by a bus, wins the lottery and quits, etc.
Don't look now, someone may have just been assigned to wading through
your code, in preparation for your butt getting booted out the door.

--
Joe Foster <mailto:jlfoster%40znet.com>  Sacrament R2-45 <http://www.xenu.net/>
WARNING: I cannot be held responsible for the above        They're   coming  to
because  my cats have  apparently  learned to type.        take me away, ha ha!


0
Reply joe303 (601) 2/17/2004 3:13:06 AM

Edward G. Nilges wrote:

> Richard Heathfield <dontmail@address.co.uk.invalid> wrote in message
> news:<c0n3eu$25j$1@sparta.btinternet.com>...
>> [Usual Nilges story - 196 lines of junk, mostly snipped. Just one thing
>> [that
>> particularly caught my eye this time...]
> 
> Gee, you might be ignoring something important, or something.

From past experience, I have discovered that the probability that a Nilges 
article contains something important is so low as to be not worth 
considering. There are two reasons that I can think of for replying to 
Nilges articles; the first is to correct any mistakes contained therein 
(including mistaken attacks on people's reputations); the second is that Mr 
Nilges' articles occasionally contain little germs of topicality that have 
the potential to become interesting discussions (a property which they 
share with articles by other lamers and newbies - even cluenessness is 
grist to the mill on occasion).


> I realize that the Telly might be more interesting

Might it? I wouldn't know. I don't waste my time watching television.

> what with Sharpe
> knocking about Spain with Wellington, but you might want to improve
> your cultural level by actually reading posts to which you reply.

Reading Nilges articles is hardly the way to go about improving one's 
cultural level. If I read a Usenet article at all, I do tend to read it all 
the way through. I made an exception in Nilges's case because it became 
apparent that he rarely says anything even remotely interesting or relevant 
in those long, rambling diatribes of his.


> Indeed, this is common courtesy. Or something.

If Mr Nilges wishes others to extend common courtesy to him, he should stop 
extending uncommon discourtesy to others.


>> > Therefore the fact that older computers had a fixed field does not
>> > mean that it's impossible to effectively surveille, and we should
>> > conclude we are being watched.
>> 
>> No, we shouldn't - or at least, we can't sensibly conclude this from the
>> available information presented above. The existence of technology
>> capable of doing X does not imply that X is necessarily done. After all,
>> the technology to turn Illinois into a radioactive wasteland /exists/,
>> and yet nobody has actually done it so far. It may, or may not be true
>> that "we" are being watched, but the (putative) existence of effective
>> programmatic surveillance techniques is not sufficient on its own to
>> force us to the conclusion Mr Nilges suggests.
> 
> You might consider reading your boy Jeremy Bentham, who pointed out
> that the possibility of surveillance is almost as good as its reality,
> and in some cases better, for from his "utilitarian" standpoint, it
> saves the government money if we act as if we are indeed being
> surveilled.

In comp.programming, the issue of surveillance is irrelevant. The issue of 
poor logic is /very/ relevant. Mr Nilges's logic was in error, so I pointed 
out the error. If Mr Nilges wishes to discuss surveillance, by all means 
let him do so - in a newsgroup where such discussions are appropriate. This 
newsgroup isn't it.

<snip>

-- 
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:45:01 AM

Randy Howard wrote:

> In article <f5dda427.0402161404.2fcb7718@posting.google.com>, spinoza1111
> @yahoo.com says...
> 
>> In this ng, I'd suggest that a majority of lurkers would make their
>> feelings known but for the potential of employer surveillance.
> 
> Hehe....someone posted a nice parody of some song recently in one
> of the newsgroups about those that claim they have armies of
> silent supporters.  Wish I could find the link.  It's perfectly
> appropriate.

Google is your friend. Key phrase: "The lurkers support me in email". Here 
is the URL you require:

http://www.bluejo.demon.co.uk/poetry/interstichia/lurkers.htm

-- 
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:56:19 AM

"Joe \"Nuke Me Xemu\" Foster" <joe@bftsi0.UUCP> wrote in message news:<1076903523.884260@news-1.nethere.net>...
> "Malcolm" <malcolm@55bank.freeserve.co.uk> wrote in message <news:c0pasn$416$1@newsg1.svr.pol.co.uk>...
> > ... Or you can break the convention and
> > do the whole transform in registers, which means you need no memory accesses
> > at all. Guess which I chose?
> Dunno and don't care.  I'd go with the easy-to-understand code,
> test and profile it, and if it is in fact too slow, modify it
> and comment, comment, comment.  Then again, I don't rely on
> obfuscating my code in order to keep a job.

This looks like a dialog between Joe and Malcolm and perhaps
it's rude for me to get involved.  But ...

Joe, do you have any clue what you're talking about it?

Anyone who has done JPEG/MPEG and needs to run a profiler to figure
out that DCT will be the critical time-consuming routine, should
stick to easier tasks.   And anyone that thinks "using registers
to avoid memory accesses" is "obfuscating" code, should stick to
*very* easy programming tasks.

There are cliches ("profile before bothering to optimize" is one)
which are repeated over and over *and over* in this and similar
newsgroups.  These cliches often have merit, but so does open-minded
use of one's brain and experience.

Hire two programmers.  One with brains and experience.  One who's
memorized all the cliches.  I know which one I'll bet on.

James
(From: address is unusable; I have other non-secret e-mail addresses.)
0
Reply jdallen2000 (489) 2/17/2004 9:07:25 AM

Richard Heathfield wrote:
 
> From past experience,
> I have discovered that the probability that a Nilges
> article contains something important is so low as to be not worth
> considering.

Check out his post from yesterday on r.a.f.

http://groups.google.com/groups?selm=f5dda427.0402161459.52626e5d%40posting.google.com

In the middle of it, there's another google URL,
http://groups.google.com/groups?&selm=a4f7e49cca7a61afaec0aa42dfac100f%40news.teranews.com

*That* one, is worth considering.

-- 
pete
0
Reply pfiland (6613) 2/17/2004 12:39:17 PM

pete wrote:

> *That* one, is worth considering.

Thanks for the morning chuckle!!!

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

"James Dow Allen" <jdallen2000@yahoo.com> wrote in message <news:266426e1.0402170107.61de6c43@posting.google.com>...

> "Joe \"Nuke Me Xemu\" Foster" <joe@bftsi0.UUCP> wrote in message news:<1076903523.884260@news-1.nethere.net>...
> > "Malcolm" <malcolm@55bank.freeserve.co.uk> wrote in message <news:c0pasn$416$1@newsg1.svr.pol.co.uk>...
> > > ... Or you can break the convention and
> > > do the whole transform in registers, which means you need no memory accesses
> > > at all. Guess which I chose?
> > Dunno and don't care.  I'd go with the easy-to-understand code,
> > test and profile it, and if it is in fact too slow, modify it
> > and comment, comment, comment.  Then again, I don't rely on
> > obfuscating my code in order to keep a job.
>
> This looks like a dialog between Joe and Malcolm and perhaps
> it's rude for me to get involved.  But ...
>
> Joe, do you have any clue what you're talking about it?
>
> Anyone who has done JPEG/MPEG and needs to run a profiler to figure
> out that DCT will be the critical time-consuming routine, should
> stick to easier tasks.   And anyone that thinks "using registers
> to avoid memory accesses" is "obfuscating" code, should stick to
> *very* easy programming tasks.
>
> There are cliches ("profile before bothering to optimize" is one)
> which are repeated over and over *and over* in this and similar
> newsgroups.  These cliches often have merit, but so does open-minded
> use of one's brain and experience.
>
> Hire two programmers.  One with brains and experience.  One who's
> memorized all the cliches.  I know which one I'll bet on.

If you'd bother to read the thread, you'll see that "Malcolm"
appears to be trying to conflate two separate issues, optimizing
code that actually /needs/ to be optimized, and achieving 'job
security' through code obfuscation.  I assumed his DCT example
was merely a red herring (ab)used to try to justify his attempt
to avoid being "made redundant" by becoming "the only person who
understands some vital bit of code."

--
Joe Foster <mailto:jlfoster%40znet.com>  DC8s in Spaace: <http://www.xenu.net/>
WARNING: I cannot be held responsible for the above        They're   coming  to
because  my cats have  apparently  learned to type.        take me away, ha ha!


0
Reply joe303 (601) 2/17/2004 4:48:54 PM

"Remo D." wrote:

> About books, Programmer Dude said:
> 
>> and--a personal favorite--PROGRAMMING ON PURPOSE (P. J. Plauger).
> 
> Is the second one a collection of articles from "Computer Language"?

Yep.

> Simply the best programming magazine I've never read!

I agree.  I started taking it, IIRC, around volume (year) three or
four.  I promptly ordered all the back issues, and took it until
its demise.


> - The more faithfully the model mimic the reality, the more our
> software will satisfy the user

True, but satisfying the customer also requires that our model
truly represent what the customer wants and needs.

> - If "programming" means creating models, we should focus our
> interest in finding wich modelling concepts are most relevant
> for software systems and to things like efficiently communicate
> models.

Plauger's book--his series of essays--are about various models of
problem analysis ("inside out", "top to bottom", "right to left",
"hardest first") as well as software construction.  In his first
essay he makes a point about the tools required to make a table.

A saw is very useful, but makes very ugly legs.  A lathe makes
great legs, but can't fulfill a saw or hammer's job.  His point
is simply that NO tool, NO model is right for all purposes.

He makes a great example about the *uselessness* of traditional
structure diagrams with regard to compilers (because they tend
not to decompose into nice structure charts because of the
recursive aspect of parsing).

-- 
|_ 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:25:16 PM

In article <4031c993@news2.power.net.uk>, invalid@address.co.uk.invalid says...
> Randy Howard wrote:
> 
> > In article <f5dda427.0402161404.2fcb7718@posting.google.com>, spinoza1111
> > @yahoo.com says...
> > 
> >> In this ng, I'd suggest that a majority of lurkers would make their
> >> feelings known but for the potential of employer surveillance.
> > 
> > Hehe....someone posted a nice parody of some song recently in one
> > of the newsgroups about those that claim they have armies of
> > silent supporters.  Wish I could find the link.  It's perfectly
> > appropriate.
> 
> Google is your friend. Key phrase: "The lurkers support me in email". Here 
> is the URL you require:
> 
> http://www.bluejo.demon.co.uk/poetry/interstichia/lurkers.htm

That's it thank you.  I tried google, but couldn't come up with the
magic incantation.

-- 
Randy Howard                
2reply remove FOOBAR 
      
0
Reply randyhoward (3272) 2/17/2004 8:55:31 PM

Programmer Dude wrote:
> 
.... snip about Plaugers book ...
> 
> He makes a great example about the *uselessness* of traditional
> structure diagrams with regard to compilers (because they tend
> not to decompose into nice structure charts because of the
> recursive aspect of parsing).

Enter Wirth and railroad diagrams.  Great for understanding, not
so easy to feed to a parser generator.

-- 
Chuck F (cbfalconer@yahoo.com) (cbfalconer@worldnet.att.net)
   Available for consulting/temporary embedded and systems.
   <http://cbfalconer.home.att.net>  USE worldnet address!


0
Reply cbfalconer (19183) 2/18/2004 3:26:23 AM

Malcolm wrote:
> No it's not. Often you don't want anyone to understand it - for instance if
> you don't want to be made redundant then it helps to be the only person who
> understands some vital bit of code. Code is only "broken" if it doesn't
> perform specified output for specified input.

I'm not sure if Malcolm is being serious or whimsical; I suspect a little
of both.  It is true that code obfuscation sometimes has commercial value
(an obvious example being copy-protection mechanisms).
I still remember a certain Dr. L's startled look of dismay when I told
him how his "secret" image compression software worked.

Anyway, the Subject of this thread embraces Ethics and Aesthetics,
so I'm happy to see Malcolm challenge a narrow-minded cliche.

"Joe \"Nuke Me Xemu\" Foster" <joe@bftsi0.UUCP> wrote in message news:<1077036559.91103@news-1.nethere.net>...
> "James Dow Allen" <jdallen2000@yahoo.com> wrote in message <news:266426e1.0402170107.61de6c43@posting.google.com>...
> > There are cliches ("profile before bothering to optimize" is one)
> > which are repeated over and over *and over* in this and similar
> > newsgroups.  These cliches often have merit, but so does open-minded
> > use of one's brain and experience.
>
> If you'd bother to read the thread, you'll see that "Malcolm"
> appears to be trying to conflate two separate issues, optimizing
> code that actually /needs/ to be optimized, and achieving 'job
> security' through code obfuscation.

My message was 4 nodes away (in the reference graph constructed by
Google) from the message with the peculiar Malcolm paragraph I include
above.  I prefer to address points one at a time, and consider
just the message not the messenger.

And I apologize to you, Joe, if I sounded gruff.  I was just objecting
to one position that happened to be in your message.

.... But I did take your comments somewhat personally!
I happen to be the proud inventor of the World's Fastest Jpeg Compressor.
It might be fun to mention some of the peculiar design choices in
that software, but any brief discussion would mostly elicit corrective
instruction from undergraduates trying to be helpful.  (For a fuller
discussion of the DCT portion of my compressor, refer to "An approach
to fast transform coding in software", in Signal Processing:
Image communication 8 (1996).  A few of my U.S. patents are related
to this software.)

Even with all the optimizations (I did complete 8-point DCT in less than
40 machine instructions -- none of them multiplications -- believe it
or don't), DCT is still the time-consuming part of JPEG (when other
parts are also optimized) so the comment that a profiler should be
run to confirm that DCT speed mattered seemed almost hilarious.

I enjoy ``pushing the envelope'' in software methods.  In a recent
thread I linked to my Whist solver, which employs an unusual goto.
There were several critical responses, but in 13 years no one has
ever accepted the challenge to offer an alternative routine.

I've started another thread about a simple problem where a
bizarre method achieves O(1) time, and routine methods require
O(N).  Perhaps a comp.programmer will achieve O(1) with
straightforward code: I'll be interested to see.

James Dow Allen
Note:  The From address above is unusable.  I can be contacted
at Yahoo.com using the 13 letters of my name all run together.
0
Reply jdallen2000 (489) 2/18/2004 12:47:09 PM

"James Dow Allen" <jdallen2000@yahoo.com> wrote in message
>
> > No it's not. Often you don't want anyone to understand it - for
> > instance if you don't want to be made redundant then it helps to be
> > the only person who understands some vital bit of code. Code is
> > only "broken" if it doesn't perform specified output for specified
> > input.
>
> I'm not sure if Malcolm is being serious or whimsical; I suspect a little
> of both.
>
Generally what you find in a games environment is that people try to assert
ownership of "their" code, by making it difficult for other people to
understand. It's not a conscious decision, it's purely an instinct to
protect your own position. Management isn't clued up enough to prevent this,
because they are not programmers.
>
> Even with all the optimizations (I did complete 8-point DCT in less
> than 40 machine instructions -- none of them multiplications -- believe
> it or don't),
>
I'd like to see this. I don't really understand the mathematics of fast
transforms - I can implement them but I couldn't prove how they work.


0
Reply Malcolm 2/18/2004 8:45:19 PM

In article <c10iu0$82k$1@news7.svr.pol.co.uk>, malcolm@55bank.freeserve.co.uk 
says...
> Generally what you find in a games environment is that people try to assert
> ownership of "their" code, by making it difficult for other people to
> understand. It's not a conscious decision, it's purely an instinct to
> protect your own position. Management isn't clued up enough to prevent this,
> because they are not programmers.

Well, that would certainly explain some of the common quality problems seen
with a lot of computer games.  Hopefully it's not as widespread as you
imply, or there isn't much hope for improvement in the future. 


-- 
Randy Howard                
2reply remove FOOBAR 
      
0
Reply randyhoward (3272) 2/18/2004 10:50:16 PM

Randy Howard <randyhoward@FOOverizonBAR.net> wrote in
news:MPG.1a9da8224f89afeb989700@news.verizon.net: 

> In article <c10iu0$82k$1@news7.svr.pol.co.uk>,
> malcolm@55bank.freeserve.co.uk says...
>> Generally what you find in a games environment is that people try to
>> assert ownership of "their" code, by making it difficult for other
>> people to understand. It's not a conscious decision, it's purely an
>> instinct to protect your own position. Management isn't clued up
>> enough to prevent this, because they are not programmers.
> 
> Well, that would certainly explain some of the common quality problems
> seen with a lot of computer games.  Hopefully it's not as widespread
> as you imply, or there isn't much hope for improvement in the future. 

Partly it depends on what the software is. If it's a 'one-off' product, 
which many games tend to be, having undecipherable code isn't much of a 
problem or much of a redundancy saviour - at worst, it last only as long 
as the project which in computer game circles isn't long on average.

If this was software that was going to be supported for more than two 
whole minutes, then it'd obvious be a potential problem. Programmers who 
apply the laziness principal wouldn't resort to such things... yet 
another reason why lazy programmers are the best ones!

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/19/2004 12:51:33 AM

"Ian Woods" <newspub2@wuggyNOCAPS.org> wrote in message
>
> Partly it depends on what the software is. If it's a 'one-off' product,
> which many games tend to be, having undecipherable code isn't much > of a
problem or much of a redundancy saviour - at worst,
>
"at best" ITYM
>
> it last only
> as long as the project which in computer game circles isn't long on
> average.
>
It's not unknown for a game to take 3 years to develop. Since in Britain it
is much harder to sack you after 2 years, this gives some breathing space.
>
> If this was software that was going to be supported for more than
> two whole minutes, then it'd obvious be a potential problem.
> Programmers who
> apply the laziness principal wouldn't resort to such things... yet
> another reason why lazy programmers are the best ones!
>
Lazy programmers don't bother with comments, don't bother to find out which
constructs are portable and which aren't, and don't try to separate general
from program-specific routines.
On the other hand they don't try clever optimisations that are useless in
terms of efficiency but complicate things enormously, and they don't
reinvent the wheel - for instance writing a new string library just for the
fun of it even when ANSI C is perfectly adequate.


0
Reply Malcolm 2/19/2004 8:38:44 PM

Richard Heathfield <dontmail@address.co.uk.invalid> wrote in message news:<c0n3r4$f1r$1@hercules.btinternet.com>...
> Edward G. Nilges wrote:
> 
> > "Don Kim" <donkim@nospam.donkim.net> wrote in message
> > news:<J95Xb.15873$IF1.923@fed1read01>...
> 
> <snip>
> 
> >> In OO, the notions of deriving "is-a" and "has-a" relationships, is
> >> remarkably similar to Wittgenstein's hierarchy of propositional
> >> derivisions.
> > 
> > I agree that objects make it easier to talk sensibly about the impact
> > of a data system.
> 
> Is this true? If so, why?

I've already provided the reasons: nouns and adjectives are in general
easier to understand than processes described with abstract verbs.
Cudgel thy brains.
> 
> > In fact, object orientation was invented by the
> > Scandanavian computer scientist Ole Johann Dahl in the form of Simula
> 
> Further information for those who habitually doubt Mr Nilges:
> 
> "Professor emeritus Ole-Johan Dahl (1931 - June 29, 2002) was a Norwegian 
> computer scientist and is considered to be one of the fathers of Simula and 
> object-oriented programming along with Kristen Nygaard." (taken from a 
> Wikipedia entry)

This is hilarious. Because you unconsciously replicate Fascist use of
media, the central mission is merely replicating, in an almost
mechanical fashion, your core working set of falsehoods. The truth of
course is that I'm about the only poster that has at all adhered to
Internet guidelines concerning informal citation, but because this ng
is dominated by police agents, "investors", and bad-tempered retirees,
posters literally don't know what an informal cite is, and they
actually confuse the informal cite with "name dropping".

But because in a mechanical fashion and indeed the clerkish fashion of
a school leaver you stick mulishly and without humor to your task of
replicating falsehoods, you here miss the fact...that your doltish use
of Wikipedia simply confirms my informal cite, as Arthur O'Dwyer's far
more classy research simply confirmed my informal cite of Knuth's
article on structured programming.

Yet you are stupid enough to present your confirmation of my cite as
somehow evidence of my wrongs, because you are at a clerkish low level
which is overawed by masses of texts such as your trollish posts!

I am certain that prior to your doltish use of Wikipedia you did not
even bloody know who Dahl was and you shall soon enough forget!

> 
> > because in his society, in which trade unions had a significant say in
> > the way industrial processes were automated, he needed to negotiate
> > their specific behavior, and to do so, he had to describe the
> > software.
> 
> I would appreciate independent corroborating evidence of this claim, because 
> it smacks too much of Nilgesque nonsense to be likely.
>
Dolt, just get a subscription to the New York Times online and look up
last year's obituary for Dahl which confirms that he was confirmed
with properly communicating with Scandinavia's labor unions.
 
You simply are not qualified to discuss programming in general.
> <lots of nonsense about objects snipped>

You block, you stone, you worse than senseless thing.
0
Reply spinoza1111 (3250) 2/25/2004 12:56:14 PM

Edward G. Nilges wrote:

> Richard Heathfield <dontmail@address.co.uk.invalid> wrote in message
> news:<c0n3r4$f1r$1@hercules.btinternet.com>...
>> Edward G. Nilges wrote:
>> 
>> > "Don Kim" <donkim@nospam.donkim.net> wrote in message
>> > news:<J95Xb.15873$IF1.923@fed1read01>...
>> 
>> <snip>
>> 
>> >> In OO, the notions of deriving "is-a" and "has-a" relationships, is
>> >> remarkably similar to Wittgenstein's hierarchy of propositional
>> >> derivisions.
>> > 
>> > I agree that objects make it easier to talk sensibly about the impact
>> > of a data system.
>> 
>> Is this true? If so, why?
> 
> I've already provided the reasons: nouns and adjectives are in general
> easier to understand than processes described with abstract verbs.

Most of us are okay with verbs, actually. So-called "do-ing words" or 
"action words". I recommend them to Mr Nilges. They are worth further 
study.

> Cudgel thy brains.

This advice clearly didn't work for Mr Nilges, so I see no reason why I 
should try it myself.

>> 
>> > In fact, object orientation was invented by the
>> > Scandanavian computer scientist Ole Johann Dahl in the form of Simula
>> 
>> Further information for those who habitually doubt Mr Nilges:
>> 
>> "Professor emeritus Ole-Johan Dahl (1931 - June 29, 2002) was a Norwegian
>> computer scientist and is considered to be one of the fathers of Simula
>> and object-oriented programming along with Kristen Nygaard." (taken from
>> a Wikipedia entry)
> 
> This is hilarious.

Is it?

> Because you unconsciously replicate Fascist use of
> media, the central mission is merely replicating, in an almost
> mechanical fashion, your core working set of falsehoods.

I am puzzled by this reaction, since I was attempting to demonstrate that Mr 
Nilges was, for once, more or less correct.

> The truth of
> course is that I'm about the only poster that has at all adhered to
> Internet guidelines concerning informal citation,

Fnord.

> but because this ng
> is dominated by police agents, "investors", and bad-tempered retirees,
> posters literally don't know what an informal cite is, and they
> actually confuse the informal cite with "name dropping".

A false premise delivers a meaningless conclusion.

> But because in a mechanical fashion and indeed the clerkish fashion of
> a school leaver you stick mulishly and without humor to your task of
> replicating falsehoods,

Mr Nilges here implies that he is not a school leaver, in which case I 
presume he is still at school. He would do well to listen to his teachers 
more often.

> you here miss the fact...that your doltish use
> of Wikipedia simply confirms my informal cite,

That was precisely its intention.

> as Arthur O'Dwyer's far
> more classy research simply confirmed my informal cite of Knuth's
> article on structured programming.

Indeed it did.


> Yet you are stupid enough to present your confirmation of my cite as
> somehow evidence of my wrongs,

Mr Nilges needs to learn to read. I presented my confirmation of what he is 
pleased to call his "cite" as evidence that, for once, he was actually 
right.

<generic Nilges offensiveness snipped>


-- 
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/25/2004 5:31:21 PM

Richard Heathfield <invalid@address.co.uk.invalid> wrote in message news:<403cdf94@news2.power.net.uk>...
> Edward G. Nilges wrote:
> 
> > Richard Heathfield <dontmail@address.co.uk.invalid> wrote in message
> > news:<c0n3r4$f1r$1@hercules.btinternet.com>...
> >> Edward G. Nilges wrote:
> >> 
> >> > "Don Kim" <donkim@nospam.donkim.net> wrote in message
> >> > news:<J95Xb.15873$IF1.923@fed1read01>...
> >> 
> >> <snip>
> >> 
> >> >> In OO, the notions of deriving "is-a" and "has-a" relationships, is
> >> >> remarkably similar to Wittgenstein's hierarchy of propositional
> >> >> derivisions.
> >> > 
> >> > I agree that objects make it easier to talk sensibly about the impact
> >> > of a data system.
> >> 
> >> Is this true? If so, why?
> > 
> > I've already provided the reasons: nouns and adjectives are in general
> > easier to understand than processes described with abstract verbs.
> 
> Most of us are okay with verbs, actually. So-called "do-ing words" or 
> "action words". I recommend them to Mr Nilges. They are worth further 
> study.
> 
> > Cudgel thy brains.
> 
> This advice clearly didn't work for Mr Nilges, so I see no reason why I 
> should try it myself.
> 
> >> 
> >> > In fact, object orientation was invented by the
> >> > Scandanavian computer scientist Ole Johann Dahl in the form of Simula
> >> 
> >> Further information for those who habitually doubt Mr Nilges:
> >> 
> >> "Professor emeritus Ole-Johan Dahl (1931 - June 29, 2002) was a Norwegian
> >> computer scientist and is considered to be one of the fathers of Simula
> >> and object-oriented programming along with Kristen Nygaard." (taken from
> >> a Wikipedia entry)
> > 
> > This is hilarious.
> 
> Is it?
> 
> > Because you unconsciously replicate Fascist use of
> > media, the central mission is merely replicating, in an almost
> > mechanical fashion, your core working set of falsehoods.
> 
> I am puzzled by this reaction, since I was attempting to demonstrate that Mr 
> Nilges was, for once, more or less correct.

I'm always correct, mate, except when I'm not.
> 
> > The truth of
> > course is that I'm about the only poster that has at all adhered to
> > Internet guidelines concerning informal citation,
> 
> Fnord.
> 
> > but because this ng
> > is dominated by police agents, "investors", and bad-tempered retirees,
> > posters literally don't know what an informal cite is, and they
> > actually confuse the informal cite with "name dropping".
> 
> A false premise delivers a meaningless conclusion.
> 
> > But because in a mechanical fashion and indeed the clerkish fashion of
> > a school leaver you stick mulishly and without humor to your task of
> > replicating falsehoods,
> 
> Mr Nilges here implies that he is not a school leaver, in which case I 
> presume he is still at school. He would do well to listen to his teachers 
> more often.
> 
I still can learn if that is what you mean.

> > you here miss the fact...that your doltish use
> > of Wikipedia simply confirms my informal cite,
> 
> That was precisely its intention.
>
Yeah, well I mighta been nicer had we not your track record of
harassment, mate.
 
> > as Arthur O'Dwyer's far
> > more classy research simply confirmed my informal cite of Knuth's
> > article on structured programming.
> 
> Indeed it did.
>
I merely think youse guys are trying to back off and save face, for
from day one my cites have been confirmable. Howya doing on the
Plauger cite, Dude?
 
> 
> > Yet you are stupid enough to present your confirmation of my cite as
> > somehow evidence of my wrongs,
> 
> Mr Nilges needs to learn to read. I presented my confirmation of what he is 
> pleased to call his "cite" as evidence that, for once, he was actually 
> right.
>
No, I'm always right except when I'm not.
 
> <generic Nilges offensiveness snipped>

You have harassed me for two years and should expect no less.
0
Reply spinoza1111 (3250) 2/26/2004 9:53:22 AM

Edward G. Nilges wrote:

> Richard Heathfield <invalid@address.co.uk.invalid> wrote in message
> news:<403cdf94@news2.power.net.uk>...
>> 
>> > Because you unconsciously replicate Fascist use of
>> > media, the central mission is merely replicating, in an almost
>> > mechanical fashion, your core working set of falsehoods.
>> 
>> I am puzzled by this reaction, since I was attempting to demonstrate that
>> Mr Nilges was, for once, more or less correct.
> 
> I'm always correct, mate, except when I'm not.

In the interests of correctness, I should point out that Mr Nilges is not in 
fact my mate. I should also point out that his statement here /is/ in fact 
correct, in that he /is/ always correct except when he isn't. I point this 
out only because for Mr Nilges to be correct in his comp.programming 
articles seems to be a rare event which should therefore be accorded due 
ceremony.

<snip>
 
>> > But because in a mechanical fashion and indeed the clerkish fashion of
>> > a school leaver you stick mulishly and without humor to your task of
>> > replicating falsehoods,
>> 
>> Mr Nilges here implies that he is not a school leaver, in which case I
>> presume he is still at school. He would do well to listen to his teachers
>> more often.
>> 
> I still can learn if that is what you mean.

I await supporting evidence of that assertion.

> 
>> > you here miss the fact...that your doltish use
>> > of Wikipedia simply confirms my informal cite,
>> 
>> That was precisely its intention.
>>
> Yeah, well I mighta been nicer had we not your track record of
> harassment, mate.

To confuse "harassment" with "correction" is a mistake.

>> > as Arthur O'Dwyer's far
>> > more classy research simply confirmed my informal cite of Knuth's
>> > article on structured programming.
>> 
>> Indeed it did.
>>
> I merely think youse guys are trying to back off and save face, for
> from day one my cites have been confirmable.

What Mr Nilges thinks is, as so often, at odds with reality.

> Howya doing on the Plauger cite, Dude?

Since it was Mr Nilges who "cited" Plauger, it is for Mr Nilges, not Chris 
Sonnack, to provide the source of the citation.

>  
>> 
>> > Yet you are stupid enough to present your confirmation of my cite as
>> > somehow evidence of my wrongs,
>> 
>> Mr Nilges needs to learn to read. I presented my confirmation of what he
>> is pleased to call his "cite" as evidence that, for once, he was actually
>> right.
>>
> No, I'm always right except when I'm not.

Again, this would appear to be correct, thanks to the stated exception.

>  
>> <generic Nilges offensiveness snipped>
> 
> You have harassed me for two years and should expect no less.

To confuse the words "harassed" and "corrected" is a mistake.


-- 
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/26/2004 10:54:24 AM

101 Replies
39 Views

(page loaded in 0.597 seconds)

Similiar Articles:


















7/4/2012 1:51:11 PM


Reply: