Re: Why I've returned



On Jan 11, 4:20 pm, Ben Bacarisse <ben.use...@xxxxxxxxx> wrote:
spinoza1111 <spinoza1...@xxxxxxxxx> writes:
On Jan 11, 1:38 pm, Ben Bacarisse <ben.use...@xxxxxxxxx> wrote:
pete <pfil...@xxxxxxxxxxxxxx> writes:
spinoza1111 wrote:

http://www.sparknotes.com/cs/c++fundamentals/review/quiz.html.

Question number eight is wrong.

8. Which of the following statements will not affect the value of x?
(A) x++;
(B) x += x--;
(C) x = x++;
(D) x = --x + 1;

The whole idea of being right or wrong is rooted in the failed
project of Wittgenstein and Popper's absurdly normative idea of
falsification.  We must look to the work of Thomas Kuhn and Jacques
Derrida for a way out.  Only by generating a huge weight of words can
this code be deconstructed to reveal its meaning as the interplay
between the patriarchal constructs of "variable", "sequence point" and
"value".

You're mocking a person, Ben, who somehow had the time to read about
technology and literary theory.

It was a parody of an absurd idea.  Why do you think I was mocking you
or your learning?  I have the greatest respect for people who read
widely and crave learning.  However, to me, the idea that the meaning
of a simple bit if C++ can be determined by any means other than by
inspecting the document that defines it's meaning is a daft one, and
that (daftness) is sometimes best illustrated in parody.

If, as seem likely from other messages, you hold a similar view you
must feel I am attacking it.  I am, but not you.  If you hold it so

I understand.

passionately and fervently that is seems to be part of who you are
then, yes, it will feel personal but I can't not say I think it absurd
simply because of the depth of your belief.

Watch it you don't make a fool of yourself,

I already have.  It was foolish (although not profoundly so) to post a
message that adds nothing to the discussion like this one of mine.
More so if it caused offense.

The context, Ben, is that Richard Heathfield and Randy Howard
systematically vandalize threads created by people who cross them, and
I have seen them done so since 2000. You entered a fight which needed
to be fought.



because in fact, so few people here are adequate programmers
that most don't do technical discussion.

I have done exactly that, in detail, elsewhere.  I do want a technical
discussion of why you think you have improved on Pike's code.

I HAVE NOT. Working too fast, I transliterated the code and made
mistakes.

However, I stand behind my claims that the Pike code is not beautiful.
To recap:

(1) It has an undocumented bug/feature in that asterisk may be used in
the first position of the regex, or after an initial carat, and in
this position, and only this position, the asterisk is treated as
data.

(2) Addressed to computer science students, who world-wide may or may
not have the C language required to major at Kernighan's Princeton,
the code silently expects the student to understand that "value
parameters may be used on the stack as work areas" and "a final call
of a string-processing function may be off by one". Knowledge of an
unsafe computing artifact has equal standing with science and this is
academic malpractice.

(3) A test for the same thing appears in two different places and two
different functions

(4) Kernighan does not call it a "simple grep". On p 3, he says the
Pike code is part of a simple grep and is an Implementation
(subheading) of "A Simple Regular Expression Matcher". But regular
expressions, at a minimum may contain parenthesized subsequences to
which regular expression operators may be applied. A simple recursive
call to the main match() in matchhere() might accomodate this but this
is completely not addressed.

(5) The code does not process strings.


Instead, they engage, in a
form of Ted Mack's Original Amateur Hour, in literary and stylistic
criticisms,

Ah, you think maybe I was attacking you style and not your content?
No, my target was the content.  Option (D) is undefined because the
language definition says it is.  No amount of philosophy, empirical
evidence, or textual deconstruction can alter that (in my view).

I'm afraid that what I take from deconstruction is that I simply do
not have to accept preconditions insofar as they depart from a higher
vision of the truth. And I'm afraid that human beings devolve back to
ape level when they s*** at the very phrase "a vision of the
truth".

C does not define reality. It's a programming language, a set of
agreed upon conventions, and there IS such a thing as a buggy program
text, buggy that is by virtue of a higher tribunal than the C
Standards board, a flawed tribunal whose members have a direct
financial interest in the success of C.

Having been there, I am well aware that in the 1980s people like
Kernighan and John Hennessy, the RISC computer architect, rejected the
idea of using "paper" notations or artificial languages for expressing
algorithms, and the Hennessy rejected the idea of teaching computer
science by inventing what I call in my book a "Nutty Professor"
virtual machine: a set of instructions implemented using an
interpreter.

The savage contempt Hennessy expressed at ASPLOS 1987 for stacks,
virtual machines and CISC was like the savage contempt some CS
professors were expressing at the same time for CS as taught with the
professor's own notation or "vanity" architecture.

Now, a theme of Derrida was that you need to watch your ass when
academics, over and above the calm search for truth, start making
nasty personal remarks about competing paradigms. In Derrida's
analysis of de Saussure on the primality of oral language, he finds
irrationality in Ferdinand de Saussure's angry reaction to any
alternative to Saussure's claim that "written language is
uninteresting and a picture of spoken language".

I can apply Derrida's notion of a "binary opposition" to "interpreter-
versus-compiler". Interpreters are for girls: compilers are for men.
Interpreters are "slow" (except when in practice they are fast, like
the firmware interpreter for 1401 code on the old IBM 360 mainframe,
which ran faster than a native 1401): compilers are "fast" (except
when some hot shot codes lousy code, of course).

Virtual machines are sneaky interpreters in drag.

Facing the irrationality of the binary opposition merely lets us make
better decisions. Purdue University, for example, discovered that
computing students of the 1950s needed an interpretive Fortran because
this could do bounds checks; having my Visual C Sharp interpreter
catch my error shows the use of runtime bounds checking.

[To preserve the binary opposition, many spouters of programming's
conventional wisdom admit that they are good for debugging but when
men release code for production, they boldly go where no man has gone
before, and remove the bounds checks. Interestingly, Barney Stroustrup
says that this is like setting sail in a "debugged" boat without life
preservers.]

Seeing Niklaus Wirth standing isolated in the middle of the reception
area of the Palo Alto Hyatt made me realize that Hennessy was
deliberately rigging the conference to advance a set of dubious claims
that stopped Wirth's crusade for safe and human (if a bit slower) code
in its tracks. Once again, I could see that the Europeans were being
reminded that they were girliemen.

I'm tired of macho programming. It produces little boys who are
forever inadequate based on the limits of the human mind and who never
make peace with their limitations. The sad results include the
bullying we see here.

Likewise in the contemporary drive to teach computer science in C, I
realized that the quirks of C would be treated as exactly equivalent
to insight, causing many good CS majors to drop out (old joke: "How do
I debug a C program?" "Change your major.") As I've said, I was
personally involved in this because through Princeton's information
centers I taught C to prospective majors, who needed to know C to take
the entry level class.

Actually, philosophy can say a lot about these language wars. And once
you add Marx, you get some real fireworks.


--
Ben.- Hide quoted text -

- Show quoted text -

.