Re: Statement on Schildt submitted to wikipedia today



On Sep 10, 7:23 am, Seebs <usenet-nos...@xxxxxxxxx> wrote:
(Yes, I am actually still around!)

On 2009-09-08,spinoza1111<spinoza1...@xxxxxxxxx> wrote:

== Proposal from Edward G. Nilges 7 Sep 2009 ==
The vandalism of Schildt continues. I propose that the following text
be added to the discussion of the controversy. I shall also post this
for discussion at comp.lang.c and submit it to comp.lang.c.moderated.

What discussion of the controversy are you referring to?

The controversy on Schildt's books here and on Amazon, Peter.

Other commentators, however, have found that Seebach's and Feather's
objections to Schildt's work result from their POV which is that of
self-serving "language lawyers" concerned less with clear explanation
to working programmers and more with being "right all the time, even
when it's undefined" in the words of one wag.

You're never gonna get this into Wikipedia.  Name your sources.  Who said
it?  When?  Where?

I don't care. Wikipedia is a violation of tax law in that it was
founded for profit but portrays itself as nonprofit. Its editors no
longer know subject matter and are thieves of intelllectual
production.


In any event, who are these "other commentators"?  How have they "found"
this?  Don't present the claim that someone somewhere said something --
present the evidence itself.

A text is a text, not "evidence".

For example, Schildt
describes how things work in terms of the most common features of C
runtimes, features that are not part of "the language".

I would tentatively grant this.  I haven't looked at his stuff in some
years, but when I did, he described things pretty much as they existed
on DOS systems, or possibly early Windows.  Many of the things he said
were untrue for other common systems.

At the time most of his audience needed him to focus on MS DOS and
Windows. Peter, is this why you made trouble for him? Because I was
well acquainted with anti-IBM snobbery in the past, and anti-Microsoft
snobbery in the present. I have no problem with pointing out the
defects of IBM and Microsoft software and hardware: expert IBM and
Microsoft people are very familiar with them: but your campaign
marshaled ignorance in my view.


This is an
excellent way to help programmers, typically men and women who want a
"shirtsleeves" POV and to understand how things work,

Well, how they work sometimes.

And why (the stack narrative being essential in explanation).

only to have
Seebach condemn him, in a spirit with a nasty overtone of religious
fundamentalism (made merely nastier by the secular, sordid and
pecuniary goals of programming language standardization in service to
corporations) for daring to speak of such Eleusinian mysteries as the
"stack"...which looks backwards to an era when programmers in
corporations were admonished or terminated for excess curiosity.

Wait, huh?

Hi, I'm "Seebach".  Pleased to meet you.  

Hello, Mr. Seebach.

I am mystified by these
criticisms.  I don't see how you find any "religious fundamentalism"
in my views of programming.

That's because complementarily to your mathematical and scientific
intelligence, you have failed to see a textual isomorphism between
religious fundamentalism and your technical fundamentalism.



Lemme be blunt, though:  I don't even remember most of this stuff.  I
think it's been ten years since I last looked at the Schildt books.  I
remember being utterly gobsmacked to find an example using <> instead
of != in a book nominally about C, so I went and grabbed the book,

Sounds like a trivial reason to be gobsmacked.

did a quick writeup, and basically forgot about it.  I don't think I had
even been actively involved at C standardization back then, but I could be
wrong; you'd have to go look at the dates, I don't know them.

I have never heard of "an era when programmers in corporations were
admonished or terminated for excess curiousity".  Certainly, I've never
seen one, and I've been working as a programmer fairly close to full time
for a while now.  (For the curious, I work at Wind River, now a subsidiary
of Intel, so I guess we're a big company.)

This is the reality for programmers (especially minority and female
programmers). How nice for you to be so ... esconced.



It is widely believed today that C99 as a standardization effort
failed rather miserably.

Again, don't use the passive voice to disguise the principal actors.  Who
believes this?

You run the risk that people will think it's just you, and since no one
knows who you are or what you're talking about, that's sort of a weakness..

A number of people at clc have conceded this, litera scripta manet.


The reason, according to some,

Again, according to whom, specifically?

is that it was
less concerned with the needs of working programmers, and more
concerned with spending public monies (in the spirit of the Bush-
Clinton years of privatization) on protecting corporate profits, here
making as many compilers as possible "work" by leaving common sense
functionality "undefined", so that compiler developers could be shed
by compiler development and other corporations, and their investment
protected.

Sadly, Usenet is a text-only medium, but what I clearly need here is a
picture of a giant temple in Cambodia, captioned "WAT?"

Nixon invaded Cambodia while I was discovering that IBM refused to fix
a broken Fortran compiler that we needed in my computer science class.
Middle class white students at the Univ of Chicago had no such
problem, and I fixed the compiler a year later in machine language and
made it available to students. I can connect. Can you, Peter?



As it happens, I was an active participant in the C committee during the
C99 era.  I did this on my own dime; the extent of support I received from
my employer (BSDi, at first, later Wind River) was that they counted only
half the time I spent at meetings as vacation, making it possible for me to
attend meetings.

You should have negotiated a better deal.

The major corporate interests were compiler developers, and the people
representing them were compiler workers -- who seemed enthusiastic about
building substantial new functionality into the language.

As employed compiler developers, I am certain they were. I was
likewise enthusiastic as a compiler developer. The problem is that
there's a sharp separation between people's roles as compiler
developers paid to actually feel enthusiastic and those people years
later, homeless or without medical insurance owing to the lack of
interest in actually fixing C as opposed to standardizing mistakes on
behalf of their former employers.

I assure you, if you wanted to shed compiler developers, dropping the IEEE
annex and the type-generic math functions would have been MUCH more
significant.

Meanwhile, we committed everyone to supporting 64-bit math even on 16-bit
processors, committed to standard division semantics, and otherwise
standardized things substantially.

Very good as far as it goes.

In fact, the bulk of the "undefined behavior" cases are there, not so that
compiler writers can do LESS work, but so that they can do MORE work -- such
as aggressive optimizations.

....at the cost of making C comprehensible in the vast majority of
cases.

There was no interest outside Open Source in making
correct, much less excellent, C compilers in 1999, C compilers having
become commodities, and there was no fiduciary reason for companies to
fix compilers to conform to a more precise standard: therefore, the
standard was made as undefined (not a standard, in other words) as
possible in a giveaway to corporations which looked forward to the
monies handed over to banks in 2008.

I do not believe that, even today, C compilers are "commodities".  I did
some experimentation with IBM's research compiler and compared it to gcc
on the Cell; the differences were really quite noticeable, and given that
this is an environment targeted at supercomputing apps, I think a 10%-20%
difference in performance of generated code pretty much refutes the notion
that compilers are a "commodity".

It appears to many of us that Schildt was a sacrificial lamb, a
representative of an individual knower,

Uh, no.

He was a representative of someone who wrote books about issues he knew
nothing about.  (Not that I can claim that there's no errors in my books;

Up to this point ("knew nothing about") you sound sensible. But as in
the case of Clive Feather, you make global/null claims about him. And
then you start in on him, and you appear at that point to have an
unhealthy obsession.

if my esteemed critic would like a copy of Portable Shell Scripting to
comb through for errors, I'm pretty sure there's at least a dozen.)

You concede this. But you seem to assume that you should be forgiven
for errors, whereas the Outsider may not.


and of the type of
knowledgeable programmer who (like Carthage) had to be destroyed, for
his knowledge is now the private property of corporations, to be
preserved or destroyed at will.

Uh, no.  His "knowledge" was, as it happens, just plain wrong.

But when we investigate what's wrong, we find trivia, MS-DOS v unix
differences, and style.

(Wording amended as requested in next sentence):

In all of this, the public interest
was unmentioned, and the public was damned, not only by corporations
but also by people corrupt enough to work for free, nor for the wretched
of the earth, but for Moloch itself: the corporation.

I can make no sense of "corrupt enough to work for free".  The volunteer
work I've done over the years (and there isn't that much of it) doesn't
exactly seem "corrupt" to me.  I do things because I believe them to be
important.

Seebach and Feather have not only gone after Schildt. They also
continue to savage professional reputations whenever their standard is
questioned.

Er, we have?

Yes, in clc.

I am unaware of this.  I am all for people questioning the standard.  I hear
there's a new one being worked on, and it sounds like they're continuing
to focus on things that compiler developers want to add based on feedback
from the users who need the best performance they can get from their
compilers.

Note how your language, from "want" to "performance", excludes
correctness while you scapegoat Schildt for incorrectness, not of
software, but in teaching software, an activity which requires
"incorrectness" in the form of metaphors and narrative.

FYI, what compiler developers "want" has nothing to do with
correctness or even efficiency. And wrong answers at high speed isn't
what users "need".

Psychologically, you've displaced the guilty secret, that it's nearly
impossible to produce safely correct software in C, in part owing to
your standardization, onto Schildt.


This despite the fact that the standard destroyed the very
ability to teach C save in the most cautious, and fundamentalist way,
such that "professors" today are well advised to be *imams* in
*madrassahs* teaching *taliban*. In a sense this is an insult to Islam
for the *imams* giving *fatwas* are concerned with the highest things,
whereas the new prophets of C are concerned with the lowest and most
sordid things.

I'm afraid I don't know enough of these words to understand the analogy.

Look them up in wikipedia, then.

I recently did a technical review for the second edition of Kim King's
excellent _C: A Modern Approach_.  I don't see anything in it that I would
call "cautious" or "fundamentalist", and I found it a delightful book.

Edward G. Nilges, Hong Kong 7 Sep 2009

Hello, Edward.  Let me tell you a story.

Long ago, I was in college.  I had an Amiga.  And I wanted to learn to
program.  I used the college computers, which ran UNIX, and I used the Amiga
in my dorm room.

I tried to program, and I had some issues, because I kept getting answers
that didn't work for me.  People told me to use getch() to read characters
without echoing them, but it didn't work.  Why?

* MS-DOS, which they used:  getch() is in <conio.h> and does what they said.
* UNIX:  getch() is in <curses.h> and may or may not do what they said, but
  requires you to switch to a wholly different I/O mechanism.
* Amiga:  getch() is not defined by my compiler.

I ran into a lot of trouble with this, until someone (pretty sure it was
Chris Torek) explained to me about the difference between the standard and
the specific implementation.  I was fascinated by this concept, and started
exploring it.

Sure enough:  If I wrote according to this "standard", my code worked on my
Amiga and on the UNIX machines.  If I separated out parts I couldn't make
standard, I could have most of a program work on both systems, with a few
narrowly-defined bits which were system-specific.

This meant that I could make progress.  I could write programs and expect
them to work.  I could predict what they'd do.  I could, in short, *get
things done*.

I got more involved in, and interested in, the standard.  I spent a few years
going to C meetings (something Schildt never did that I know of; he was a
"member", but he just paid for a membership, he never participated that
I'm aware of), listening to people explain what their customers wanted their
compilers to do.  We spent a lot of

read more »...

"The rest is silence". Hey, sweet Prince, this is no country for old
men: but when you were farting around with the Amiga I had had 14
years of experience as a bottom feeding programmer who'd evolved into
a compiler developer on the IBM mainframe.

I read the Algol 60 report in 1971 and I support language
standardization.

However, standardizing C was by 1999 lipstick on a pig, since aliasing
means that the standard cannot address the unsafety of C, only help C
programmers get wrong answers faster given your emphasis on
optimization. Standardization also sent the wrong message: that C was
appropriate outside of OS development and for new OS development.

Because of aliasing and because of its vaunted "closeness to the
machine", C is a fuzzy bounded language and more usefully viewed as a
set of human practices. It is not at all a formal, mathematical
notation and cannot be standardized. Therefore, Schildt was under the
US Constitution alone free to experimentally present his results using
C on the most common platform and present and explain those results to
programmers with no choice of language on the job.

You set out to destroy him. You did not, as did Niklaus Wirth at
ASPLOS 1987, question the interest in "optimization" when Dijkstra's
1999 question, how not to make a mess of it, hasn't been answered.

The result is that USA consumer electronics makes profits in part
owing to the unexplainable failure of complex devices which the user
is forced to replace rather than fix.

The result is the culture of clc wherein individuals similar to
Schildt are bullied for sins which the community itself is guilty of.

We only work here, Mr. Seebach, in the US without health insurance as
temps. We're tired of being bullied by employers to put lipstick on a
pig. We're never (never) given enough time to do it right because at
the top, US and UK computer scientists have been always more
interested in premature optimization and the profits of corporations.
--
comp.lang.c.moderated - moderation address: clcm@xxxxxxxxxxxx -- you must
have an appropriate newsgroups line in your header for your mail to be seen,
or the newsgroup name in square brackets in the subject line. Sorry.
.



Relevant Pages

  • Re: subroutine stack and C machine model
    ... It is a fact that the C language has been defined by the ISO C standards ... A mistake has been certified standard for too long. ... I've known plenty of good programmers who have switched to C from other ... Microsoft compiler used Int precision, ...
    (comp.lang.c)
  • Re: Should anyone be using modern Fortran any more?
    ... and I've taught F77 Fortran to London University ... out needing all the features) is the CVF F90/95 compiler. ... government organisations to upgrade to the newest standard. ... on teaching and upgrading programmers by employers or the self-employed ...
    (comp.lang.fortran)
  • Re: Statement on Schildt submitted to wikipedia today
    ... to working programmers and more with being "right all the time, ... so that compiler developers could be shed ... The major corporate interests were compiler developers, ... processors, committed to standard division semantics, and otherwise ...
    (comp.lang.c.moderated)
  • Re: Youre appointed as Portability Advisor
    ... Let's say you're appointed as the Portability Advisor for a multi-national company that makes billions of dollar each year. ... You're sitting there 100% aware that the Standard explicitly forbids you to write to member A of a union and then read from member B, but how much do you care? ... What _can_ cause problems tho is aspects of the compiler: ... If there was a consenus between many of the world's most skilled and experienced C programmers that a certain rule in the Standard were unnecessarily rigid, would it not be worth the compiler vendors' while to listen? ...
    (comp.lang.c)
  • Re: Brian Kernighan, maybe Im not worthy, maybe Im scum
    ... what experienced programmers do, ... optimization, ... Thugs" ad nauseum fits that a lot more closely than discussing compiler ... be modified outside a loop, and guessing ...
    (comp.programming)