"C: The Complete Nonsense" is the major evidence.
Hmm. So you're saying that something I wrote up in maybe an hour or two
something like fourteen years ago is clear evidence as to what I have ever
learned? That's interesting.
Added to that is
your writing here. No first rate person would say that optimization
I hear... bagpipes?
.... No, surely not. That's no true scotsman.
justifies abandoning left to right (or right to left, or any fixed)
ordering,
Well, oddly, a number of people frequently regarded as "first rate" think
so.
although third rate programmers defend unreliable code as
being more efficient, invalidly reasoning that if the code is
unreliable it must be fast.
Ahh, but no one has made such an argument. You're also forgetting the
key distinction between the language and the code. We're talking about
the language, not code written in it. Code written by experienced
C programmers is not rendered "unreliable" by the order of evaluation
rule selected, *because they write code with that rule in mind*.
This shows lack of reading comprehension. Herb wrote that free "must
only be called with a pointer that was previously allocated with one
of the dynamic allocation system's functions (either malloc(), realloc
(), or calloc())."
In your example, after the first free(x), x is no longer allocated.
But it was previously allocated. He doesn't say "one that is now allocated",
he says "one that was previously allocated". That's sort of the point.
Common sense tells the reader that at the point where the second free
() is executed, x is not allocated, therefore not "previously
allocated" although allocated in the past. The adverb and participal
is ambiguous but clear in context.
Not really.
Logically, if I am NO LONGER allocated, I am not "previously
allocated" although I was allocated in the past.
Have you ever heard the phrase "previously owned"? Hint: "Previously
owned by a little old lady" does not mean "and still owned now, because
if she'd sold it it would no longer be previously owned."
The reader comes to
the passage knowing that free deallocates.
Yes, and is told that as long as it was previously allocated, it's fair
game. Ashes were previously on fire. That doesn't mean they're on fire
now, it means they were in the past. Putting out a fire doesn't make it
no longer the case that it "was previously on fire".
If you are as you say autistic,
That is what the nice lady told me, and since she's a specialist in the
field, and her judgement coincides with that of a number of other specialists,
and because her proposed explanation has both explanatory and predictive
power, I have provisionally accepted her claim.
then I ask the court for summary
judgement and costs,
Denied. *bangs gavel*
because while I have compassion for autism,
Like hell.
your autism disqualifies you from writing on programming.
No it doesn't.
This is because
part of autism includes inability to deal with natural language and
use common sense.
Not so. Perhaps before you start having "compassion" you should start
with "comprehension".
I certainly am a bit light on the unconscious set of responses people
usually refer to as "common sense". However, I have demonstrated a great
deal of facility with natural language -- which is quite common among
us "high-functioning" autistics. (The term covers pretty much anyone who
can get dressed in the morning without professional help, I figure I'm
probably covered.)
The proof, as they say, is in the pudding. Ask anyone who's ever worked with
me whether or not I can use natural language competently. No, really, go
on. Ask them. Ask them about the books I've written. (Note: I only have
one book out there in print that I'm listed as an author of, but that doesn't
mean there aren't other books I've written; it just means that the others
were, say, written for an employer or something.)
Apologize to Herb and seek treatment.
Nothing doing. I don't apologize for things that weren't wrong, and I'm
already as treated as one gets for autism.
Evidence of that would be an apology.
No. Evidence of that would be writing clearly and effectively, and (for
instance) successfully explaining issues pertaining to C, or human interface
design, or other things to people. Which, conveniently, I've done
professionally at some length.
Only if you're lazy. Sounds like more catering to incompetence and a
good way to cover up free() statements when programmers have failed to
balance malloc() and free().
Interesting theory, but... Considering how atrociously poor your demonstrated
knowledge of C is, why should I accept your judgement? What have you done
that qualifies you to comment?
If you're autistic, you have language difficulties.
Not really. I'm on the hyperlexia side of things. I have difficulties
with some specific categories of communication (such as speech acts), but
in terms of general language usage, I'm fine.
(Hint: It doesn't fit the stereotype if I go out of my way to wave the
word "autistic" in front of you because it will make you do funny things.)
If you have
language difficulties, you have no standing in pronouncing things
"semantically incoherent".
Ahh, but what if instead I have abnormal facility with language? That would
sort of reverse things.
It's like the half-literates here who say I
can't write or am verbose.
You obviously can write. I don't know about verbose, but you certainly
run on tangents at great length, and you're not a particularly effective
communicator, I'd say. You've simply been unable to offer coherent
support for many of your positions, and your hammering on the degree
and later on the autism thing suggests that you have no clue at all about
the role of ethos in effective persuasive writing.
They have no opinion I need respect, and
the echo chamber of the Internet is the only reason why your tirade
was influential.
I don't even know that it was influential. The closest I've seen is that
when some anonymous idiot who kept using open proxies to spam wikipedia
about how offensive he found the claims of "criticism of Schildt" finally
hit a wall, the wall was that someone pointed out that page and my
nominal credentials, which got the wikipedia editors to finally say "yes,
that's substantive".
Sure, I'll research Glassborow et al. But all I have seen so far are
repetitions to the effect that "Schildt sucks and contains thousands
of errors". I have not seen any list of those errors: your document
makes reference to them but lists fewer than 100.
I don't think I've claimed thousands. I'd probably say there's over a hundred
errors, including minor stuff and repetitions, and at least twenty or thirty
significant errors that cannot be adequately explained as typos. In a third
edition, no less.
Another smoking gun: your strange belief that something can be
"clear" (understandable, generative of justified true belief of
something true by my argument last month, which you haven't refuted)
Your arguments bored me, you refused to answer direct questions, so I plonked
you. I unplonked you when I found out you were funny.
yet untrue is repeated without change or consideration of its
weirdness.
And you think *I* have difficulties with language?
Let's try examples:
* The feline's autoambulatory facilities permitted an exposition of the
question of whether comestibles could be had.
* The cat can check whether it has food, because it can walk.
* Nevertheless a significant component of feline comestible-discovery
tactics relies on quantum entanglement derived powers not dissimilar
to those purportedly held by the prognosticators who advertise on
television.
* The cat uses psychic powers to see whether it has food.
These are, in order:
* Unclear, but true.
* Clear, and true.
* Unclear, and untrue.
* Clear, and untrue.
Schildt's writing frequently expresses a given thought eloquently and
unambiguously; however, it is unfortunately the case that some of the
beliefs thus expressed are untrue.
It shows, because like the C Standard they are a bureaucratic way of
certifying behavior that should not be certified.
You make a lot of random guesses about the contents of classes you never
took.
Gee, a lot of
compilers evaluate things every which way. Their vendors' CEO might
have my Daddy by the balls. Best call them all standard.
Again, no matter how many times you make this stuff up, it ain't what
happened. K&R (1978) stated that order of evaluation was not specified
by the language, and ISO C (1989) formalized that without altering it,
because no one seemed to feel it needed to be altered.
Gee, little
Johnny can't read for the key point, such as "allocate and free should
be isomorphic, in one to one correspondence, and he takes his rage out
on people who can on the Internet. Let's let him take a class in
communications and pass him."
This would be way, way, cooler if you'd not misused "isomorphic".
While it's true that a 1-1 relationship may be an isomorphism, not all
1-1 relationships are isomorphic. It's 1-1 and onto that makes something
isomorphic.
The problem is that the ability to generalize and separate essentials
from accidents should pre-exist the exposure to programming.
No, the problem is that a good writer has to indicate which are the essentials
and which are the accidents, because otherwise even a fairly smart reader
may not be abel to tell which is which.
Consider. In 1978, C was unambiguously defined to allow arbitrary orders
of evaluation. And yet. Years later, you were using C in Microsoft
environments, and formed the belief that "nine out of ten" compilers
evaluated left-to-right -- despite the fact that you haven't been able
to name a single compiler which did so, and the two compilers other
people have been able to test thus far did not.
Which is to say, that years after your first CS class (1970, you tell us),
you were unable to separate essentials from accidents.
You don't
give Schildt's readers enough credit for this
I was active on Usenet during a time when many of his readers were
posting here, and demonstrably, they could not separate essentials from
accidents in this respect.
They had been told that there was "The Stack", which was a single block
of memory, and they were shocked to discover that this might not always
be the case.
You may have mistaken your own way of thinking, which you admit is
autistic in some measure, with that of the "normal" person.
No, I haven't. Not ever, really -- for me, the realization that other
people had a way of thinking was pretty much the same as the realization
that it was not the same as mine. There may have been as much as a year's
gap between those, but probably much less, and it happened before I was
reading reliably.
This isn't
to say that a normal person is better than you. It's to say that you
need to develop great software and not try to be a technical writer.
I'll totally think about that. However, what I've consistently found is
that, while I'm certainly a decent software developer, it's the ability
to translate from thinking-like-machines to thinking-like-people that's
been my most significant marginal advantage -- and that shows up mostly
in technical writing.
You should develop a tool, a super-lint, to find problems caused by
side effects in code that assumes left to right.
No, I shouldn't.
This may sound familiar, but:
You may have mistaken your own way of thinking, with that of the
"normal" person.
Because you totally have.
That's because no
matter how well YOU know that left to right may not apply, this is a
natural thing for intelligent people to assume,
I'd like to suggest a bit of a homework assignment for you. Please
go find a dictionary, and look up the word "evidence". See if your
amazing intelligence will allow you to perceive ways in which it could
be related to the statement you just made.
and their intelligence
should have caused the Standard to standardize left to right.
I have bad news for you.
It's true that you have never provided any support for your premise.
And it's also true that your conclusion is not related to your premise.
But. It turns out that two wrongs do not make a right. And a conclusion
which is unrelated to an unsupported premise is not "proven".
It also
should have abandoned "sequence points"
I don't see why.
and mandated that pre and post
increment and decrement be applied only to lValues.
How the **** am I supposed to try to take you seriously when you demand
that the standard "should have" mandated that pre and post increment and
decrement be applied only to lvalues? Why don't you demand that it
"should have" specified that execution starts at main(), or that it
"should have" included <stdio.h>, or that it "should have" been written
in English and distributed in printed form with black text on white
pages?
Hint: Of course they have to be lvalues. In fact, they have to be
*modifiable* lvalues. Duh.
-s