Re: Theodore Adorno, a prophet of data systems design

From: Edward G. Nilges (spinoza1111_at_yahoo.com)
Date: 01/10/04


Date: 10 Jan 2004 13:27:56 -0800

Richard Heathfield <dontmail@address.co.uk.invalid> wrote in message news:<btopn1$kc8$1@titan.btinternet.com>...
> Edward G. Nilges wrote:
>
> > Richard Heathfield <invalid@address.co.uk.invalid> wrote in message
> > news:<3ffd6e68@news2.power.net.uk>...
> >> Edward G. Nilges wrote:
> >>
> >> > You see, the implicit rule is that it's about "algorithms" (which most
> >> > programmers aren't qualified to discuss at a theory level,
> >>
> >> That's simply not true. Programming is /about/ algorithms (and data
> >> structures). A programmer who is not qualified to discuss algorithms
> >> might as well pack up and go home.
> >
> > 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.
>
> Mr Nilges's rather loose acquaintance with the concept of proof will not
> distract those subscribers for whom his articles are a familiar burden, but
> nevertheless he has, perhaps unwittingly, stumbled upon a minor truth,
> insofar as many (I will not go so far as to say "most" without seeing some
> statistical evidence to back it up) programmers are perhaps not familiar
> with the idea of "proving" an algorithm to be correct. (Some are, of
> course.) But as Donald Knuth famously observed, proofs can be overrated.
> They are tricky to get right, and embarrassing to get wrong. 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.

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.

However, these stories as told around de campfire ignore two things.

The first is that they mystify and conceal the concept of proof to
programmers and the result is in part that proof is replaced by
stylistic argumentation and childish quarrels.

I was honored to be able to learn proof by recursion by having to
write a five page proof FOR INDUCTION ITSELF inside Quine's system
described in that American logician's book, Set Theory and Its Logic,
before I wrote code and before I had my first computer class. This
makes me informally equal to the task of informally proving, not that
a complex program is "correct" in the sense of user acceptance but
that it will have a certain behavior.

You determine the set of elements over which the program iterates,
and, you determine that it has defined behavior for zero members.
Then, you prove the conditional statement "for all n, if the behavior
applies for input of length n then it applies to input of length n+1"

This also generates a testing heuristic: test it for 0, test it for
one, test it for many things.

Richard Heathfield failed to note that my concept of proof mentions
not only a binary "proof" of absolute correctness but also rational
software prediction as when a recursive argument is used to establish
not a "proof of correctness" but a minimal condition.

The result is that the entire concept of proof including the rational
prediction of program behavior by informal means, which is the sort of
activity that takes place in a structured walkthrough undisrupted by
corporate thugs, is in danger of disappearing...especially as the only
place where the concept of proof might appear in the high school,
geometry disappears under pressure of government cutbacks initiated by
corporate thugs and clueless ratepayers.

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.

Proof whether formal and informal and the relatively innocent joy of
symbolic manipulation disappears, and as we see it's replaced by
character assasination of a particularly futile sort and out of
control rage as the ape returns in the dialectic of enlightenment.
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.

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

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.

The central problem, the central regression, is that consistently, the
unexamined and reified concept of computing "power" replaces computing
truth.

It is convenient, in other words, to think of writing and running a
program in isolation from content, in the same way it is convenient
for the American to hop in the car and drive aimlessly West (of
course, in your rather smaller country, this is simply not possible
since one falls in the Irish sea).

Of necessity and a priori, no technical gear whatsoever can address
the phenomenological moment at which it is seen that the program
corresponds to truth. Nor is this a "flash" of intuition to by further
mystified for as Kant showed, if consciousness is a miracle, it's all
about us and needs no proof itself, for it underlays its own
questioning.

Therefore it's convenient to think of what one does as the mere
expenditure of energy in a uniquely aimless venture to be measured by
various velocities including meaningless benchmarks, and these
conveniently to management become the apparent velocity at which one
"works" replicating conventional attitudes and the expected
"results"...which, as expected, fail at such a large scale that
there's always someone else we can blame.
 
>
> > It is possible to argue without the academic tool of symbolic logic
> > for the correctness of an algorithm instantiated in a program and to
> > deductively predict algorithm behavior, but without academic tool this
> > is best conducted in groups. 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, 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.
 
> > For example, in ordinary programming discussions (as we've seen here)
> > there is absolutely no level distinction made between the level of
> > correctness and the level of style, because 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."

In the name of a rejection of authority, a "real" authority is
established, I think, on the ruins and this phenomenon has occured in
data systems since the 1960s. For the very good reason that my
generation had to get on with our lives while significant numbers of
us demurred from the grand plan, in the same way our brothers and
sisters in the former Soviet Union were appalled by their own
country's behavior in Hungary in 1956 and Czechoslovakia in 1968, some
of us elected technical subspecialties rather than law or politics.

I think this phenomenon writ large created today's technical psyche in
which anti-authoritarianism has to be reconciled with getting the job
done, and there's nothing at all wrong with this. As I've said, I
think you are authoritative on C and I respect this.

But if technical power and authority are severed from meaningful
control over the real conditions of life, the technical power and
authority themselves turn rancid because they are all you have left,
and you are incapable of seeing their boundaries...as where you claim
that C is viable for new development.
 
> > 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? The poster in question in a truly
anti-authoritarian network 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.

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

I sense here the philistinism which not only won't listen to modern
music but who thinks his resistance to Berg or Schonberg is
virtuous...and who therefore enters a process in which his musical
tastes continually narrow rather than expand.

I make this analogy because my experience in listening to people is
that you have to exercise the ability to initially put aside your own
prejudices which I am afraid were controlling in response to Giuseppe,
to Mr Wehnert and to the use of Hungarian notation.

To open the page, and say, "yecchh, #define, what a maroon", "bleegh,
ugly colors, what a dingbat", or "spew, Hungarian, what a clueless
***" is a natural human response. I make it myself.

But I don't confuse it with an aesthetic or cognitive response which
must fully contain the complete comprehension of the fully examined
intention of the author.

 
> 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 and mine with these
comments which are valid, but need to be ordered, in a lexical style,
after a full reading of the text.

> My own colour sense is certainly not going to win me any prizes at a
> Best-Of-Web awards ceremony; but at least my Web pages are readable.
> Therefore, since (in the context of a programming discussion) colour only
> matters if it gets in the way, nobody here who has cause to visit my site
> complains about the colours. In fact, I did once get ONE complaint, which I
> believe was in email, about the colours I used for syntax-colouring, as a
> result of which complaint I changed the colour-scheme. I found this to be a
> more constructive reaction than accusing the complaining party of being
> childish.
>
> > Stylistic flaming isn't responsible discussion of algorithms but at
> > best a dodge which is used in industrial situations to assert
> > authority and save time.
>
> Well, no. Firstly, this newsgroup isn't an "industrial situation". Secondly,
> style flames are /very/ rare in this group. In practice, a reasoned
> discussion of style choices is far more likely. Thirdly, the only way to
> gain "authority" in a newsgroup of peers is to know what one is talking
> about, and one doesn't acquire a reputation for knowing what one is talking
> about by flaming Hungarian Notation. Fourthly, such authority is not
> authoritarian, a kind of usurped power, an abuse of freedom. Rather, it is
> simply a manifestation of the respect one earns - almost accidentally - as
> one shares one's hard-earned knowledge with the newsgroup. That is why
> people like Chris Sonnack and Chuck Falconer and Arthur O'Dwyer and Willem
> are respected in this newsgroup - not because they have asserted authority
> (which they don't), but because they have demonstrated that they possess
> and are willing to share a high degree of knowledge of the subject of
> computer programming.
>

The problem is that the authority is almost by definition local, and
that dialectically on a universal newsgroup, the very ability to carve
out space makes the space revert to the discourse cascade of falsity
described by Sunstein in Republic.COM.

For example, and in recent years, reputable or well-known people
outside the Internet have learned not to access the Internet in a
non-anonymous fashion because the Internet has longed confirmed what
Erich Fromm of the Frankfurt School only theorized.

This is that the "normal" personality of modern cities is
"abnormally", in historical and world terms, filled with rage and
hostility, especially at authority, and to the extent that he
externally conforms.

Thus Michael Kinsley of MSNBC tried to interact under his own name on
the Internet in the 1990s, and was frightened out of his wits by the
public postings and the email he received. His political views are
centrist and harmless and it seems he was merely the target because
the "normal heart", as WH Auden called it, in the city is so filled
with feelings of isolation and despair, that the idea of "fame" fills
the normal heart with rage.

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. It's better for
newbies to learn real computer science and above all to learn how
unimportant "efficiency" is compared to correctness.

Just my opinion...but you know that.

> >> > I have shown in countless ways that your reading of the charter is
> >> > incoherent and self-contradictory,
> >>
> >> Yet Another Unsupported Assertion. Throw it on the pile with the others.
> >>
> > Well sure, if you can't connect the dots, each assertion is
> > "unsupported".
>
> He who wishes to draw a picture has the responsibility for dot-connection.
> If I make an assertion on this newsgroup without providing supporting
> evidence, I consider it perfectly reasonable for people to ask me to
> support that assertion. If I cannot, then it is incumbent on me to withdraw
> that assertion. That is the only honest thing to do.
>
We've read the charter, and it doesn't support your reading of the
charter. You claim with respect to CONNECTING political and social
phenomena that such CONNECTION is off topic but this shows that your
"relevance engine" is flawed.

Your "relevance engine" is a finite state automaton which scans for
keywords as in

     (^|[ ]+)Fascism($|[ ]+) => off topic

This is a refusal to parse at the level of your humanity, for I have
been genuinely concerned since 1971 about the way in which
authoritarian personalities simultaneously love computers while using
them to produce actual results that are not only unjust but so often
just wrong.

The charter actually directs your hobby-horses to subsidiary
newsgroups, the charter explicitly states this is a default group, and
the charter does not explicitly ban political and social discussion
that connects the discussion with technical matters and the human
activity of programming.

Certain Open Source conventions DO include the rule that the Open
Source contributor is not to embed his political and social views in
his documentation. This may be because IF you are agreeing to give up
meaningful compensation for your life's work, to enrich IBM, it's best
not to consider, with sober senses, the real conditions of your life.
But this language doesn't appear in the newsgroup charter.

 
>
> > Everything is possible and nothing is true.
>
> In fact, not all things are possible, and some things are true (and
> therefore other things are false).
>
> >> <lots more junk>
> >>
> >> > So bugger off.
> >>
> >> Another attempt at censorship, I see. Well, I think I can safely ignore
> >> it.
> >>
> > Bull***! If I am impressing some girl in a pub with my erudite good
> > looks, and you horn in on the discussion, and I say bugger off, this
> > isn't "censorship".
>
> It is, however, impolite. Furthermore, this is not a pub. The analogy
> doesn't hold.
>
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.
 
> >
> >> > 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 and describe it in the
structural sense, possibly because one of the first working-class
applied compsci classes I taught was comparative programming
languages.

Had I not spoken up, a significant difference would have been lost.

The meaning happens to be in the DIFFERENCE between the safer facility
of VB and the unsafe facility of C.
 
>
> >> > But you have, my dear fellow, nothing to offer me
> >>
> >> Only because you appear incapable of reading for comprehension.
> >
> > The mistake here is to try to undercut your opponent by a GLOBAL
> > statement so absurd that you look stupid making the accusation.
>
> Those who are aware of Mr Nilges's posting history in this newsgroup will
> disagree.
>
> >
> > It's a Fascist and authoritarian trope
>
> No, it's a programming newsgroup. Mr Nilges's apparent obsession with
> Fascism is not relevant here. I have therefore snipped that rather long
> part of his article.
>
> > Being able to program becomes in fact ersatz for humanity. OK, I can't
> > program, and the tooth fairy just wrote the program (for using my
> > quickBasicEngine for compiling and interpreting business rules entered
> > by the user) that I finished this evening.
>
> Yet another unsupported assertion by Mr Nilges, I see.
>
> > I still deserve, as you do,
> > to be treated with common respect.
>
> Since Mr Nilges does not treat others with common respect (e.g. by sticking
> to the point, by acknowledging his errors instead of fighting last-ditch
> stands, refraining from insulting them, etc etc), it is arguable whether he
> deserves to be treated with the common respect he withholds from others.
> Nevertheless, I don't plan to start hurling Godwin-invoking insults any
> time soon.
>
> > 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. For each correction, you then
mention it ten times, and I fear this is unconsciously a Fascist move,
since people learn in corporations tricks, such as this replication of
the negative, without knowing their provenance.

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.

You've made a total of perhaps ten corrections to my stated
understanding of the C language over the course of two years. The most
recent was when you pointed out the semantics of the for loop. I
should point out that in ALL cases, I have learned Platonically from
you and in the manner of rememberance of facts and factoids that I
used daily when condemn'd to work in C by the primitive technology of
the early 1990s.

But you've spent far more time copying and pasting mention of those
corrections in a discourteous way in an attempt now seen to be a
failure to discredit me.

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 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, in part, perhaps, because Europeans, unlike
Americans, don't get around even within their own countries. I showed
clearly you were wrong.

You've been forced to backpedal on the issue of the Plauger article
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. You made a mistake in using a search engine which a newbie
would make.

Because I am far more interested in my insights than your mistakes, I
don't replicate their mention at warp speed.

Desist, before you damage your genuine reputation.

>
> > The commodity produced has so little to do with human needs and is in
> > so many ways inimical to them that men rage to inject a vanishing
> > humanity into it, but lacking a language for expressing anything but
> > anger, there is literally no "beautiful code". It doesn't exist.
>
> Maybe for Mr Nilges there is no such thing as "beautiful code". That's a
> shame. Some of us are more fortunate.

Dijkstra never believed in "beautiful" code and instead thought of
applied mathematics as sado-masochistic; he refers to "cruelty" more
than once. David Gerlenter, the reputable compscientist attacked by
the Unabomber, doesn't like computers.

Programming is not about mathematical elegance. We knew this in the
1970s when programmers refused to maintain structured programs because
they were used to unstructured programs.

Mathematical elegance exists as a matter strictly as a matter of
reader response by a community of mathematicians in reputable
universities who have learned since the dawn of the Internet to seal
their borders to nutbars. At the time I worked with Nash, in my lowly
status, they opened their borders to him because one member in good
standing saw, like G. H. Hardy saw in the work of Ramanujan, that the
applicant was one of them.

Programming is so subordinated to administrative needs that it doesn't
have the ability to support the material basis for this type of
discourse community. This is in fact proven by a fact I've observed as
a reader of computer journals, that during each tech bust (from the
tech bust of 1970 to that of today), countless "programmer's journals
of record" disappear from the face of the earth.

In this context, "beautiful code" is a narcissistic predicate seen
primarily in the mind of the programmer who, in Hegel's terms, sees
his own humanity reflected in the material world in inverse proportion
to his subordination to an administered reality which forms absolute
mastership.

The "beauty" of this code is genuine but constituted in frozen labor.
What's beautiful is that so many programmers work so hard and don't
shoot themselves.

But I think the whole point of Adorno's comment "no-one can write
poetry after the Holocaust" is that there is NO aesthetic beauty in
the context of ugly behavior in the ethical sphere.

"My code is beautiful and your code sucks" removes the beauty from
your code.

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. This is because
Knuth is a good person, even though he's a Lutheran (sorry, just
kidding).

He was at pains to speak the truth in The Art of Computer Programming
and this is what makes his Mix assembly code beautiful.