Re: Theodore Adorno, a prophet of data systems design
From: Richard Heathfield (dontmail_at_address.co.uk.invalid)
Date: 01/11/04
- Next message: Ben Pfaff: "Re: Theodore Adorno, a prophet of data systems design"
- Previous message: pete: "Re: Theodore Adorno, a prophet of data systems design"
- In reply to: Edward G. Nilges: "Re: Theodore Adorno, a prophet of data systems design"
- Next in thread: Ian Woods: "Re: Theodore Adorno, a prophet of data systems design"
- Reply: Ian Woods: "Re: Theodore Adorno, a prophet of data systems design"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Sun, 11 Jan 2004 06:53:39 +0000 (UTC)
[535 lines. Ouch. I'll do what I can to cut it down.]
[Later: I succeeded. It's a few lines shorter now, despite my additions.]
Edward G. Nilges wrote:
>> >
>> > Most programmers cannot discuss how to prove algorithms correct or
>> > deductively predict the behavior of programs. This is a large part of
>> > the theory of algorithms.
>>
<snip>
>> To see a correct algorithm proof is a rarity. Peter van der Linden tells
>> a most entertaining story about a proponent of proofs who tried to show
>> the "correctness" of a particular construct using a proof, but the proof
>> contained two errors and - worse still - the construct was not, in fact,
>> correct at all!
>
> I've seen that example.
If Mr Nilges's source is the same as mine, he may also have seen this
paragraph from the same author:
"For more details on the problems with program verification, there's a very
readable paper in "Communications of the ACM", vol 22, no 5, May 1979,
called "Social Processes and Proofs of Theorems and Programs"*, written by
Richard De Millo, Richard Lipton, and Alan Perlis. It provides the
background on why program proofs are not practical now, and probably won't
ever be. The primary point that program proofs prove is that the present
process of program proving is not a practical proposition."
*With a title like that, it sounds like it should be right up Mr Nilges's
street.
> The most famous example of a proof that was not an immediate "proof"
> was the complex proof of the four-color theorem made by a group of
> researchers at the University of Illinois, which had to use a computer
> program because of the complexity of the case analysis.
That wasn't a program proof. That was a computer-assisted *mathematical*
proof. Duh.
<snip>
> Furthermore, any notion of actually laying out actual code for an
> informal provability by informal inspection...which happens to imply
> the minimization of temporary variables and minor order(n*n)
> looping...becomes literally incomprehensible.
It appears Mr Nilges is wriggling again, but he only succeeds in impaling
himself further onto his hook. He may indeed find code with temporary
variables incomprehensible; fortunately, he is not typical of programmers
in general.
> Meanwhile the all-important meal tickets, those guaranteed jobs, head
> for the door in offshore because uh 80% of the actual systems produced
> don't work.
Why is it, then, that the failure rate attested to by experienced
programmers is nothing like 80%? For example, I've been cutting code since
1982, and I've found that the rate is far lower: around the 5% mark, in
fact (I do not claim that this figure is representative, but it is perhaps
at least illustrative).
>> Would the discussion of algorithm proofs be topical in c.p though? It
>> seems to hinge on how one reads the bit about actual programming
>> experience.
>>
>> But of course one doesn't need to be a proofs expert in order to be able
>> to discuss algorithms intelligently.
>>
> Empirical proof to the contrary abounds.
Perhaps this is only because Mr Nilges posts so much to this newsgroup.
> For example, you've described the C for loop as more "powerful" than
> the VB For loop DESPITE the fact that informal proofs are simpler for
> any for loop which copies the limit into a work area or stack and
> keeps it constant.
Mr Nilges stumbles here into a rather silly mistake; he tries to suggest
that the greater the complexity of a formal proof for a given construct,
the less valid it is to describe that construct as "powerful". I see no
reasonable connection between these two halves of his "reasoning".
> The central problem, the central regression, is that consistently, the
> unexamined and reified concept of computing "power" replaces computing
> truth.
This may or may not be true (personally, I am sceptical), but Mr Nilges has
not shown it to be true.
>> > It is no longer conducted in groups in
>> > large part because authoritarian thinking confuses the declarative
>> > with the normative.
>>
>> As a matter of fact, such arguments /do/ take place here quite
>> frequently, and I see no evidence of the "authoritarian thinking"
>> mentioned above. Rather, I see lots of common sense arguments based on
>> solid experience. Perhaps Mr Nilges doesn't read those (generally very
>> interesting) threads in which such discussions take place.
>>
> It's a waste of time for me to wade through toxic sludge to get at the
> occasional insight
If Mr Nilges thinks of discussions of programming as "toxic sludge", perhaps
comp.programming is not the wisest choice of newsgroup for him. After all,
discussions of programming are the very raison d'etre of the newsgroup.
> , and frankly, if this newsgroup did not committ the
> REAL sin of Sodom and Gonnoreah, discourtesy by default to strangers,
> more useful content would be generated by simple courtesy towards new
> posters.
Any poster, new or old, is shown approximately the same courtesy that they
show themselves in their new posting. There will undoubtedly be the
occasional kook or flame warrior who sometimes attacks even the most polite
of newbies, but *anyone* can post here - even kooks and flame warriors -
and we can't stop such attacks completely without depriving people of that
freedom. Note that, the more one posts, the more of an idea other people
form about that person's skills, abilities, knowledge, and (perhaps most
vitally) attitude. If a subscriber to this newsgroup continually throws
off-topic material at it, eventually people are going to start complaining.
And if he adds to this silliness the further silliness of attempting to
maintain clearly insupportable "technical" arguments, people are eventually
going to start mocking him. That's pretty much human nature for you.
>> > stylistic critique appeals
>> > to people as a way of asserting authority easily.
>>
>> In fact, this newsgroup isn't about "asserting authority". Nobody here
>> has any authority at all except the natural authority that stems from
>> knowing what one is talking about. There is a big difference between
>> "authoritative" and "authoritarian". Mr Nilges seems (if I am reading his
>> articles aright) to see the latter everywhere, whereas I hardly see it
>> anywhere. But I recognise the former in many of those who contribute to
>> this group.
>>
> "There thou might'st see the great image of authority: a dog's obeyed
> in office."
That's *an* image of authority, and of the wrong kind of authority at that.
(That is, it is not the kind of authority that is relevant in
comp.programming; whether it is relevant elsewhere is, of course,
off-topic.)
Nobody in comp.programming has that kind of authority over anyone else in
comp.programming (except, perhaps, by chance, such as the possibility that
an employee and his employer might both be subscribers to this newsgroup).
>> > Mathematical skill happens to be in some small measure to see beyond a
>> > particular style such as the color of a Web page or the use, versus
>> > the non-use of Hungarian notation.
>>
>> The point is simple, from the point of view of a discussion newsgroup:
>> does a particular style choice aid, or hinder, readability? If a style
>> choice hinders readability, people will find it harder to read - by
>> definition. Since, in order to discuss something (on a newsgroup) one
>> ought first to read it, this *matters*.
>>
> Sure, it matters, but how much?
To answer this question, one must ask the person who posted the material,
since the answer depends on how valuable the poster of the material
considers the newsgroup to be. If the poster of the material doesn't wish
the newsgroup to discuss his material, why tell the newsgroup about it? And
if he does wish the newsgroup to discuss his material, he would be
well-advised to make that material readable.
> The poster in question in a truly
> anti-authoritarian network
Nobody is claiming (as far as I know, anyway) that comp.programming in
particular, or Usenet in general, is /anti/-authoritarian. It's just not
authoritarian.
> would have started a useful discussion
> including clarification for newbies just what floating point is and
> how to use it. Instead, his time was wasted.
He wasted his own time, by posting material that was so poorly presented
that it actually repelled the reader. If we wish to have a discussion about
what floating point is and how to use it, nothing is preventing us from
doing that.
>> From a comp.programming perspective, Web page colours don't matter -
>> UNLESS they make the Web page hard to read.
>>
>> From a comp.programming perspective, naming conventions don't matter -
>> UNLESS they make the code hard to read.
>>
> "Hard to read" by whom?
The context, which I made transparently clear, is that of a comp.programming
perspective. So the answer is: "hard to read" by the readers of
comp.programming.
>> It may be that the guy with the weird colours had written something
>> incredibly brilliant and insightful - but if we can't read it, how will
>> we know? We are under no obligation to read it, after all, and why
>> /should/ we read it if it has been made hard to read? Finding an
>> acceptable presentation style is /his/ problem, if he wishes his ideas to
>> be read and discussed. (This is not difficult - a straightforward text
>> rendition would have been perfectly acceptable to most normal people, in
>> a way that a garish, clashing, almost painful colour scheme is not.)
>>
> So don't feel constrained to waste his time
None of his respondents wasted his time. Rather, people commented on his
rather unreadable choice of colours, so that he could fix them and then
perhaps solicit further discussion. Had he chosen to follow that advice,
the chances are good that further discussion would have followed. He chose
instead to ignore it (unless the situation has changed in the last few
days, I suppose). That's his choice. If anyone wasted his time, it was he
himself.
> The problem is that the authority is almost by definition local,
Not in comp.programming, which is an international newsgroup.
<lots of junk snipped>
> For this reason, the communities formed are isolated and because
> isolated they become dominated by a dubious authority. I've seen
> nothing in Chris' work to indicate to me that he is anything more than
> very good at what he does inside a narrowly defined sphere and I fear
> that to cultivate this type of narrow expertise by becoming followers
> of you and of Chris is a recipe for unemployability.
Firstly, nobody with a brain will "follow" Chris, me, or anyone else just
because we can present a reasoned and informed argument in this newsgroup.
Furthermore, I'm not in the business of persuading people to follow me, and
I'm sure Chris isn't, either. Mr Nilges may find it hard to believe that
anyone might seek to help people /without/ seeking to control them, but
that says more about Mr Nilges than it does about anyone else. As for
"narrow expertise", it may or may not be true that I have a "narrow
expertise", as Mr Nilges puts it. If it is not true, then it is irrelevant.
And if it /is/ true, then I suggest that to have a narrow expertise is
preferable to having no expertise whatsoever.
> It's better for
> newbies to learn real computer science and above all to learn how
> unimportant "efficiency" is compared to correctness.
Correctness is vital. If the result of my program isn't correct, it's
probably not worth having. But efficiency is *also* vital. If the result of
my program only arrives after I die, I cannot benefit from it. That is why
a study of algorithm efficiency is important. If newbies don't learn this,
instead trusting that Moore's Law will always cover their poor algorithm
choices and their poor algorithm implementations, they will end up writing
programs that take hours instead of seconds, and millennia instead of
minutes.
> We've read the charter,
I'm curious about who Mr Nilges means by "we".
> and it doesn't support your reading of the
> charter.
Yes, it does.
> Your "relevance engine" is a finite state automaton which scans for
> keywords as in
>
> (^|[ ]+)Fascism($|[ ]+) => off topic
On the contrary, I read the charter without looking for hidden depths
therein, and I discover that the charter makes it very clear that
programming stuff is topical - preferably stuff with which you've had
direct programming experience. Does anyone here having experience writing a
computer program to implement Fascism? No? Well, then.
> The charter actually directs your hobby-horses to subsidiary
> newsgroups, the charter explicitly states this is a default group,
I invite Mr Nilges to quote the part of the charter that "explicitly states
this is a default group". In fact, the concept of "default group" is not
one with which I'm familiar except through Mr Nilges's dark hints. If this
is a common Usenet concept which appears to have passed me by, perhaps
someone other than Mr Nilges would be so kind as to clarify its meaning for
me. (If it is indeed a common Usenet concept, Mr Nilges will, after all,
not be the only one who knows what it means.)
> and
> the charter does not explicitly ban political and social discussion
> that connects the discussion with technical matters and the human
> activity of programming.
Neither does it explicitly ban Flopsy, Mopsy, Cotton-Tail, and Peter.
> But you are behaving as if it were a pub in which you can shout people
> down by repetitious postings. You are courteous but too persistent. So
> bugger off, mate, in this regard.
Mr Nilges chooses to use scatological language instead of reasoned argument.
This is, perhaps, because he doesn't /have/ a reasoned argument.
As a matter of fact, my postings are only repetitious when they are in
response to repetitious material. For example, Mr Nilges frequently makes
rather wild, speculative assertions, just as if they were facts. Or maybe
they /are/ facts; it might be impossible to tell without further
information. Under such circumstances, I will generally ask Mr Nilges to
provide some supporting evidence for his assertions. Yes, this is
repetitive; but it is nevertheless an appropriate response. (Incidentally,
Mr Nilges rarely, if ever, provides these supporting assertions, perhaps
hoping instead that people will believe the original assertion /as if/ it
had been supported by evidence.)
>> >> > I mean, I am just tickled pink to relearn from you just how much of
>> >> > a mistake the semantics of C's by-reference For happen to be,
>> >>
>> >> C doesn't have by-reference semantics of any kind, least of all for a
>> >> for-loop.
>> >>
>> > You don't understand the term.
>>
>> But I do. Mr Nilges has chosen to redefine it for his own purposes. That
>> is his problem, not mine.
>>
> I was the first to notice the distinction
This is self-evidently true, the distinction in question being the
distinction between Mr Nilges's definition of "by reference" and everyone
else's definition of "by reference". It is trivial to make up a new
definition for a term and then claim to be the first to notice the
distinction between the old meaning and the new "meaning".
> The meaning happens to be in the DIFFERENCE between the safer facility
> of VB and the unsafe facility of C.
In terms of for-loops, neither once-only evaluation nor per-iteration
evaluation is either safe or unsafe. What is unsafe is writing code that
*relies* on once-only evaluation when per-iteration evaluation is actually
used (or, of course, vice versa).
>> > But your behavior, in inviting retaliation, means there is none.
>>
>> If Mr Nilges does not wish me to post corrections to his incorrect
>> material, he should perhaps consider refraining from posting incorrect
>> material.
>
> You have in fact posted mentions of corrections completely out of
> scale to your actual corrections.
I invite Mr Nilges to provide relevant statistics to support this statement.
> For each correction, you then
> mention it ten times,
Ah, a statistic. My, that *was* fast. But I'm afraid I am not convinced. I'd
like to see the message IDs for the messages which Mr Nilges has used to
compile his statistics. If he presents these message IDs, I will cheerfully
check them. If he doesn't, I'll assume the figure is the merest guesswork.
> In fact, Chris Sonnack did the dogwork in rewriting my two examples of
> May 2002, a simple word parser and a more complex parser for
> propositional logic, in his favorite style. He was able to do so
> quickly because my style was readable in the absolute sense.
That isn't what Chris thought.
> You've made a total of perhaps ten corrections to my stated
> understanding of the C language over the course of two years.
Actually, I made approximately that many in a single article:
<3D1A361C.D393D56B@eton.powernet.co.uk>
which was dated 26 June 2002. Furthermore, I don't see what C has to do with
this. I do not only correct many of Mr Nilges's C mistakes, but many of his
other mistakes too.
> The most
> recent was when you pointed out the semantics of the for loop.
Mr Nilges calls this the "most recent", but if he had only read the article
I cited, he could have learned of his mistake eighteen months ago.
> I
> should point out that in ALL cases, I have learned Platonically from
> you
Mr Nilges is clearly using a different meaning of "ALL" from the common
English meaning.
> You were I fear exposed when you tried to question my employment at
> Princeton by interrupting a discussion between myself and a former
> staff member
If Mr Nilges wishes to conduct private conversations, he would do well to
restrict them to email. Any article posted to Usenet is in the public
domain, and any Usenet subscriber whose news server carries it is free to
read it and to reply to it.
> by implying I claimed to have worked on the IBM 1401 at
> Princeton in the early 1970s, during a time when I was working on a
> 1401 at Roosevelt,
I do not recall implying any such thing. I do recall expressing interest in
Mr Nilges's reply to the staff member's article.
> in part, perhaps, because Europeans, unlike
> Americans, don't get around even within their own countries. I showed
> clearly you were wrong.
I certainly don't recall Mr Nilges showing any such thing. If he thinks
otherwise, perhaps he would be so kind as to provide the relevant message
ID, so that we can all share the joke.
> You've been forced to backpedal on the issue of the Plauger article
Mr Nilges incorrectly assumed that I had said something which in fact I had
not said. What Mr Nilges calls "backpedalling" is my continued refusal to
say something I have no intention of saying.
Nevertheless, it is interesting that Mr Nilges uses the expression "forced
to backpedal", because it perhaps gives us some insight into the way his
mind works.
Nobody is perfect, and we all make mistakes from time to time. When you or I
make a mistake in comp.programming - well, we might not always realise it
straight away, and we might, at least for a while, try to defend our point
of view. Eventually, though, it becomes absolutely clear to everyone
concerned that we've made a mistake. When this happens, you and I adopt the
sensible course - we hold our hands up to the mistake, we admit it, and we
might even apologise for being so bloody-minded as to doubt our disputants.
As a result, we gain knowledge (because we were wrong and now we are right)
and we gain respect (because we've demonstrated that we're capable of
learning).
The example that springs most immediately to mind is that of Gerry Quinn,
whose handsome apology to the good folks of alt.folklore.computers went a
long way towards persuading me that he might be worth reading despite his
rather aggressive stance on - er, let's call it "software pricing models".
To accept that one is wrong, when one /is/ wrong, is strength.
Mr Nilges, however, appears to see it as weakness. He appears to think that
"backpedalling" is a Bad Thing, to be avoided if at all possible. This
would certainly explain his rather childish hanging onto long-dead
technical "arguments" that completely fail to persuade anyone with even a
modicum of programming experience.
It may be, therefore, that he is a hopeless case, and that any attempt to
reason with him is futile. I'm still not totally sure of that, however,
since there are occasional flashes of honesty (witness his recent
retraction in the VB.NET thread parallel to this one - if people don't
believe Mr Nilges can retract, I'll dig out a message ID on request).
> because although I haven't yet found the source, it is clear to others
> that based on Plauger's interest in the "people" side, the article
> exists.
Mr Nilges has not yet demonstrated the existence of the article. Rather, he
seeks to "prove" its existence via indirect means. Does anyone else
remember this article?
> You made a mistake in using a search engine which a newbie would make.
Mr Nilges's mistake appears to be in thinking that I thought that such a
search would be conclusive. Of course, had it revealed the article, it
would indeed have been conclusive in showing that the article exists (and
it was in this spirit that I made my rather cursory search). In not
revealing the article, it proves neither the existence nor the
non-existence of the article. At best, it provides a tiny amount of
evidence against the existence of the article.
> Because I am far more interested in my insights than your mistakes, I
> don't replicate their mention at warp speed.
If Mr Nilges paid a little less attention to what he thinks to be "insights"
and a little more attention to those who correct him, he might become a
better programmer. I don't hold out much hope for this, but it /is/
possible.
> Desist, before you damage your genuine reputation.
Mr Nilges has at last grasped a truth - that one's reputation is in one's
own hands. As for my own reputation, I am not convinced that I have done
anything to damage it unless, perhaps, it is that I spend far too much time
rebutting the "arguments" of a fool.
> Programming is not about mathematical elegance.
Maybe not to Mr Nilges. To some of us, striving towards elegance is a sine
qua non.
> For example, it is literally easier to get the code for an algorithm
> from Knuth DESPITE the fact that it's written for a nonexistent Nutty
> Professor machine, Mix, and was written using Go Tos.
I find it easier still to read Knuth's excellent machine-independent
algorithm descriptions. Whilst it is true that these descriptions use the
words "go to", it is clear that Mr Knuth would rather use those two words
than circumlocute his way around the unfashionable truth that going-to is
precisely what has to happen next. Rolling up these descriptions into loops
is generally not the difficult part of implementing an algorithm found in
Knuth.
> This is because
> Knuth is a good person, even though he's a Lutheran (sorry, just
> kidding).
If it was kidding, it was kidding in very poor taste. To attack a
programmer, in a programming newsgroup, on the basis of his religion is an
offensive act. But then, Mr Nilges is no stranger to such acts, as anyone
reading his articles will quickly discover.
-- 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
- Next message: Ben Pfaff: "Re: Theodore Adorno, a prophet of data systems design"
- Previous message: pete: "Re: Theodore Adorno, a prophet of data systems design"
- In reply to: Edward G. Nilges: "Re: Theodore Adorno, a prophet of data systems design"
- Next in thread: Ian Woods: "Re: Theodore Adorno, a prophet of data systems design"
- Reply: Ian Woods: "Re: Theodore Adorno, a prophet of data systems design"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]