It is extremely difficult to be good at something while holding it
in contempt.
On the contrary. Uncritical "understanding" is usually superficial
rote learning suitable for clerks, not for free people.
I suspect he knows plenty about them. There's a big difference between
knowing about something and thinking the entire world is like that.
I'm not saying that the entire world is "like that" any more than Herb
was. You deliberately made a false interpretation to shame a
colleague.
For example, are you even aware that on p 51 of Heinemann, Pollice and
Selkows ALGORITHMS IN A NUTSHELL from O'Reilly, there's a picture of
the stack going "down" in memory and the heap going "up"? And when are
you going to make a fool of yourself by constructing another Vitriolic
Tirade against THIS book?
Your grievous error in interpretation would be like one made by an
autsitic, learning-disordered student who questions, not without some
validity, the fact that in Geography, the Northern Hemisphere is
"above" the Southern Hemisphere, and points out that as seen from
space, the hemispheres could be reversed with respect to the
observer's force of gravity as created by his spacecraft.
I made no progress in learning to write Chinese until I learned that
the strokes MUST be written in a certain order: generally,
horizontals, verticals, and then minor strokes. You neglect that Herb
isn't only telling students "the way the world is", he is also
teaching them "how to" get started and indeed to learn, on their own,
where he was WRONG.
Your autistic insight is that the stack and the heap do not have to
share the same allocated chunk of memory, nor does one have to go up
or down. But in traditional schooling, you'd be beaten for questioning
the model for the same reason Asian students were beaten for not
questioning Western schemata.
Today, both Schildt and Heineman et al. need to make the Platonic idea
concrete because that is the way things are. Nobody can access your
mystical apprehension of the pure abstraction even if you have such a
thing in your mind except by agreement on conventions. You're not
beaten, but that doesn't authorize you to "beat" the teacher.
He is making a point which you are missing. He has a lot more information
His "point" was farcical. He could see that I had used parameters in a
disciplined fashion, passing them intending them to be read only and
not in fact changing them (there was no point in the code where one of
these values was changed).
Looking for trouble as you were when you wrote The Vicious Tirade, he
probably just ran the gcc compiler with diagnostics set to some
maximal setting in hopes of blindly finding something "wrong" so as to
be able to join, and disrupt, a technical discussion which he isn't
qualified to join...in contrast to many others here, Richard hardly
ever notices an actual bug: instead, he tends to notice, in a debased
and Scholastic way, violations of conventions. Like many people here,
he prefers to laugh at unfamiliar coding styles to actual bug-finding.
That takes work.
Like the idiot he is, he thought he hit pay dirt when his gcc
compiler, with error reporting probably set to a maximal setting threw
out a lot of warnings (not errors) on the parameters, the gcc compiler
detecting that the parameters were read only.
He then "sagely" advised me to be like the mentor he pretends to be to
use const. Anxious to be fair even to Fat Bastard, I tentatively
agreed to use it since it seemed to be a SOMEWHAT useful way of making
the code incrementally better in the next release.
But then a real C expert, a genuine C programmer (Malcolm Mclean)
advised us all that config was a patch.
Referring with a deliberate abstraction to the mistakes of your foes
and the wisdom of your friends has no place here. This thread concerns
different ways to convert infix to Polish notation. You seem to be
helping the guy with an interesting assembler solution I haven't had
time to examine. Please stick to this task.
and experience than that to offer. By showing only the mechanically-generated
complaints, he's making a significant point -- it is stupid to waste human
engineer time reviewing something when there are problems sufficiently
obvious that a tool can catch them.
The "problem" was that not using const wasn't a "problem", sky pilot.
Right now, in the unrealesed fifth version, I have (1) #defined CONST
to be const and (2) placed it in front of all parameters intended to
be read-only. This way I can compare using it with omitting it.
On the one hand, you and Fat Bastard pretend that C is for rough tough
real programmers who don't need a nanny compiler or safe language to
prevent them from fucking up. On the other hand you advise the use of
patches made to make C safer. This is your libertarian paradox, for
most "libertarians" are in fact control freaks.
Even if this were true, it wouldn't be a compelling argument... But
it's not true.
You can be all macho if you want. However, "defending" yourself in
the way you do is absolutely rooted in ego -- as is any form of macho
behavior. Which is to say, fine, you can be all proud of not being
a "soft male". Me, I'm not going to let whether people think I'm soft
or not keep me from doing the best work I can at a technical level.
Lots of luck with that as a life plan, because at this point, real
"programming" jobs are in fact so "rationalized" as to provide the
techies the illusion that their "skill" makes a difference while
actually enforcing such alienation and so many checks and balances
that it doesn't matter, in most corporate jobs, whether one's a
traditionally skilled programmer.
Which is to say, you can be macho, or you can be a software engineer,
but you can't be both. Pick one.
I already have. You speak truth occasionally. The fact is that
"software engineers" are software practitioners willing in all cases
to knuckle under any authority no matter how illegitimate who in
return are allowed to fantasize that they have a special "skill", but
who rarely get to exercise the skills of actually creating large
software systems by themselves, a privilege we had prior to 1980. For
this reason, this New Model "software engineer" lives in fear that
what Adorno, again, called "the secret contour" of his social
weakness, his lack of any control over the objective conditions of his
life, and as a result he comes in here, not macho, that would be
refreshing, but as a whining, sniveling bully looking for the
incompetence he fears he manifests.
You get to write tools on the job. Very good. I'm glad you show the
initiative and a modicum of skill. I also crafted a complete compiler
installation toolset at Bell-Northern Research using Rexx, assembler
and PL.I. But my job was making significant modifications to the
compiler based on requests from field engineers who had to use it. The
most significant was rewriting the complete back end to support a new
PBX that unlike the older models had a 24 bit and not a 16 bit word.
Herb has created a complete "tiny C" and works professionally as a
programmer, not a bug checker upper onner, and this meant you had no
standing in writing "C: The Complete Nonsense". Now, this difference
in experience, and in academic certification, would be out the window
had you found a showstopper global bug to his whole approach that
would render the whole book useless.
But YOU DID NOT. You found that specific code examples had bugs in
them, but in general, it is wise for the C programmer to think as if
there's a run time stack folliwing the code in low memory and a heap
in high memory for the SAME reason that all computers are Turing-
equivalent. Even if the programmer is in what you called the "Gettier"
problem space (where I think I saw Madonna in Central Park, but it was
only a life-size cut-out, but in fact she was behind the cut-out) if
he knows the Gettier-problematic metaphor completely and it fits in
all essentials the "real" situations, guess what.
His code works, and Turing discovered that when we compute we can use
what Wittgenstein called (in Tractatus) any old crotchet, any old
conveniences AS LONG AS they constitute the (Wittgensteinian) "great
mirror" of the abstract mathematical reality.
Imagine someone who THINKS he's programming an IBM 1401. He confronts
a 6'*8'*3' blue and grey box and (for convenience of xposition)
programs it using the "customer engineering" panel, throwing switches
and observing lights on the main panel. But one day he opens it to
discover nothing except a motherboard, aan industrial Intel chip
programmed to simulate the 1401.
Is his teacher a fraud? In purely academic terms, yes. But in commerce
and industrial terms the fact is that most people who work in the
corporation are subject to much more serious levels of fraud than the
gentle stories of a Schildt.
You have personalized a more general anger against the failures in
your life in Herb Schildt, and I think you'd be a better person if you
got a real programming job and withdrew "C: The Complete Nonsense".
You might have to work in India to get a genuine programming job: my
last programming job was in China. But do stop taking your
frustrations out on Schildt.