In the Matter of Herb Schildt: a Detailed Analysis of "C: TheComplete Nonsense"


N

Nick Keighley

No, you have it wrong. Mono has to be ported from one platform to
another since it is written in C and C++, and these languages are not
portable in that, at a minimum, they need to be reviewed carefully for
dependencies on the compiler, the runtime of C/C++, and the new
hardware. But if two platforms have mono or .Net, application software
that compiles without errors and with unsafe code turned off is
completely portable in that it needs no change.

why didn't they write Mono in C#?
 
Ad

Advertisements

B

blmblm

[ snip ]
With all due respect, don't call me a liar.

Fair enough. But you've demonstrated over and over again in this
newsgroup that you often perceive events differently from others,
and while I don't call that lying, it does make me skeptical ....
I don't know how to finish that sentence diplomatically. Maybe
it can't be done.

[ snip ]

[ snip ]
Here, you're ignoring and codependently enabling the fact that Seebach
doesn't moderate clcm competently, refuses to engage, and conducts
vicious personal campaigns against others based on "competence" while
being himself incompetent in C.

This is what Vaughan calls "normalized deviance". Just as "the
elephant in the living room", the deviant behavior of the alcoholic,
becomes normalized, here, incompetence and the politics of personal
destruction are so normed as to make the normal "trolling".

Well, at least I think I understand what you mean, though I'm not
sure I agree that it's taking place. Progress?
 
S

Seebs

Fair enough. But you've demonstrated over and over again in this
newsgroup that you often perceive events differently from others,
and while I don't call that lying, it does make me skeptical ....

It is very probable that he is not lying. I would go with "delusional";
he makes statements which are unambiguously false and contrary to data
he's quoted or otherwise demonstrated he has access to, but there's nothing
to suggest that he knows that.

So, for instance, he got corrected many, many, times on his claim that I'm
not working as a programmer, but kept making it. However, it's typical of
his symptoms that he'd simply not process sentences which would make him
be wrong.

clcm is moderated according to its charter. I have no intention of trying
to fact-check posts, and that's not the charter of the group.

If you want to engage me, come play on a forum which isn't about serious
discussions about C. I'd be happy to play just for lulz (I have no illusions
that there is any hope of ever seeing Nilges respond lucidly to corrections
or new data), but I'm not gonna waste time in a real newsgroup.
Well, at least I think I understand what you mean, though I'm not
sure I agree that it's taking place. Progress?

Well, to be fair... I would grant that Nilges has done a great deal to
normalize incompetence and the politics of personal destruction. However,
he's wrong to imply that it's "normal" behavior that's being called
trolling; no, it's incompetence and the politics of personal destruction.

I've never called anyone a transvestite Nazi-sympathizer in this newsgroup.
Nilges has. I rest my case.

-s
 
S

spinoza1111

They did write most of Mono in C#.  Mono has a JIT runtime written in C
(for portability).  However, the compiler, an interpreter, the class
library, and essentially everything else, is written in C#.

Of course, for that menagerie to get bootstrapped onto a new platform
someone has to care, and for the most part, they don't.

Nilges is fun to read, but don't ever assume that he actually knows what
he is talking about.  He clearly has *heard* of Mono before, but it is
unlikely that he has actually used it for anything.  It is even less
likely that he has looked at the code behind Mono, or tried to port an
application based on .NET to Mono.

If he had, he wouldn't be singing the praises of C# portability.

Seriously, if you are concerned about porting your code to a wide array
of platforms then you probably should target gcc, or ANSI C.  Although
targeting Mono will certainly get your code running on more platforms
than Microsoft's .NET.

Jason

That's strictly an empirical consequence of network externalities.
There's a lot of C compilers and a lot of dime a dozen programmers who
think they know C, and far fewer C# compilers and implementation of
mono. The fact remains that any arbitrary C program can contain
obscure dependencies both because of aliasing and the fact that the
Standard leaves surprising things undefined that would be defined in a
proper language; order of actual parameter evaluation and what is
shifted in at the rhs (or lhs depending on endianness) when a number
is negative.

A lot of people here are autistically convinced that in programming,
they've found a world of precision in which their defective ability to
relate like decent human beings to others (so richly displayed in the
treatment of Schildt and Chinese visitors here) won't matter since
they will write secret messages to the computer. But the fact is that
in the real world, a promise to port Java or C# to a platform on which
mono or .Net is available is more easy to keep.

However, the dream here of the sheep is that "I'm special because I
can code in C". Then you look at their code (unstructured switch, off
by one one line strlen, % **** all replaced by dick, to name three
recent Coding Horrors of Seebach) and you realize that they're a dime
a dozen who must insist that they use the One True Language for the
sake of amour-propre.
 
S

spinoza1111

spinoza1111wrote:


No, it's *your* argument. Therefore, *you* have it wrong.




You are mistaken. Again.
Oh, I'm sure you love "the right kind" of teachers...the ones who
agree with you.

"Those however who always defiantly stirred up trouble against the
teacher and, as one called it, disturbed the lesson, the day – indeed,
the hour – they graduated from high school, they sat down with the
same teachers at the same table with the same beer, as a confederation
of men, who were born followers, rebels, whose impatient blows of the
fist on the table already drummed the worship of the masters."

- Adorno
 
S

Seebs

Several years later, I bumped (metaphorically) into him again, and he
asked me a question about C that was troubling him. I answered it, but
then reminded him of the above episode. He replied that his intention in
correcting me back then was to set me on the road to becoming a C
expert, so that he'd have a C expert handy when he needed one.

That's amusing. $dayjob has both me and Chris Torek, so we are pretty
well set for C experts. (Trivia point, he's one of the people who set
me on the course to actually knowing C.)

-s
 
Ad

Advertisements

N

Nick Keighley

this was asked slightly tongue in cheek. If C# is the ultimate in
portability and the lack of Mono implementaions is all that prevents
it from running on certain platforms then the obvious solution is
rewrite Mono in the Most Portable Language!

I was also aware that many portable languages are written in
themselves. And that there is often some sort of bootstrap process.
For instance a subset compiler written in... er... C.

Thinks like Python and Perl have lumps of C to get them off the
ground.
They did write most of Mono in C#.  Mono has a JIT runtime written in C
(for portability).  However, the compiler, an interpreter, the class
library, and essentially everything else, is written in C#.

Of course, for that menagerie to get bootstrapped onto a new platform
someone has to care, and for the most part, they don't.

can't you just compile the JIT compiler then run everything else from
the JIT? Presumably the C code doesn't quite compile out of the box...
Nilges is fun to read, but don't ever assume that he actually knows what
he is talking about.

oh never! I was just taking his arguemnts to a logical conclusion. And
also trying to push him into understanding boot straps.
 He clearly has *heard* of Mono before, but it is
unlikely that he has actually used it for anything.  It is even less
likely that he has looked at the code behind Mono, or tried to port an
application based on .NET to Mono.

If he had, he wouldn't be singing the praises of C# portability.

Seriously, if you are concerned about porting your code to a wide array
of platforms then you probably should target gcc, or ANSI C.  Although
targeting Mono will certainly get your code running on more platforms
than Microsoft's .NET.

thanks.
 
N

Nick Keighley

That's strictly an empirical consequence of network externalities.

that's simply gibberish

There's a lot of C compilers and a lot of dime a dozen programmers who
think they know C, and far fewer C# compilers and implementation of
mono.

there could be said to be two aspects to portability. There's the
"high level" portability where you are so abstracted from the hardware
that portability is trivial, and there's practical portability where
you need something that will run anywhere. It doesn't matter how
abstract Java is, you can't run on Machine-X unless Machine-X has a
Java translator. Writing your Java translator in Java doesn't help
because Machine-X has no Java translator to run the Java translator!
You need a bootstrap. And damn near everything has a C89 compliant
compiler (or cross compiler). C is where the rubber hits the road.
The fact remains that any arbitrary C program can contain
obscure dependencies both because of aliasing and the fact that the
Standard leaves surprising things undefined that would be defined in a
proper language; order of actual parameter evaluation and what is
shifted in at the rhs (or lhs depending on endianness) when a number
is negative.

it's not hard to write code that doesn't depend on such things.
A lot of people here are autistically convinced that in programming,
they've found a world of precision in which their defective ability to
relate like decent human beings to others (so richly displayed in the
treatment of Schildt and Chinese visitors here)

you've made this charge before. What Chinese vistors to this ng were
mistreated? (I don't think "Han from China" was actually from China-
or got anything he didn't deserve).

[my nephew is autistic. Even if Seebs doesn't find this sort of stuff
offensive I do]
won't matter since
they will write secret messages to the computer. But the fact is that
in the real world, a promise to port Java or C# to a platform on which
mono or .Net is available is more easy to keep.

the point is, it's trivial to keep!

<snip>
 
H

Herbert Rosenau

Will not help anyway. I've fallen deep in finding that java is not
compatible but lts the interpreter crash with nothing than a hand ful
own code and standard java classes on the same real mashine but nothig
else different than the OS the interpreter has to run under. Plain
08/15 java, same version, same subversion, same library but different
OS.
which need fairly powerful machines, limit what you can do (this may
be perfectly fine for some applications) and do things that hard real-
time systems can't tolerate (like garbage collection, and JIT
compilation).
Just because you don't know how to write portable code in C, [...] does
not mean that others can't.

<snip example>

[which] show, in fact, that C code is NOT PORTABLE. You're
bragging about doing your job, but portability means "run anywhere
without change or the need for research to disprove portability".

no that's /a/ definition of portability. It isn't what some people
want. Java code will only run where a JVM is available. Your anti-lock
brakes probably don't run Java. Portability is not a binary attribute.
Portability often covers a range ("will run on Linux" "will run on
Posix" "will run where sizeof(int) > sizeof(char)" "will run on any
C89 platform").

By that I have written some big programs using C. This compiles and
runs flawless on some highly different hardware and OSes with higly
different compilers without any test for compiler or OS. This is
compatibility more than java ever will have.



--
Tschau/Bye
Herbert

Visit http://www.ecomstation.de the home of german eComStation
eComStation 1.2R Deutsch ist da!
 
Ad

Advertisements

D

David Thompson

(Sorry for extra delay, I misplaced this.)

On 2010-04-16 08:47:16 -0500, (e-mail address removed) said:

I believe I've heard of implementations where a mismatched return
type will indeed produce spectacular failures -- say, if someone
tries to call a function returning int, but the function actually
called returns void, the return goes to the wrong place entirely
and Bad Stuff Happens.

Haven't seen one, usually all I see is stack garbage. Although
that can produce surprises sometimes too.
Mismatched type -- declaring something to return T1 when it actually
returns T2 -- is one error. Declaring the right type (or near enough,
e.g. short vs int on a machine where both are returned in the same
register) but returning an undefined value by falling off the end or
C89 return with no expression is a different error.

All implementations I've seen return struct types, except sometimes
quite small ones, and sometimes other 'unusually' large types such as
'quad real' or complex, via a hidden pointer argument, so misdeclaring
one of those return types can certainly cause real trouble. AFAIK all
C implementations for x86 at least normally return floating point in
x87/FPU reg rather than integer reg(s) -- at least real, I haven't
tried any C99 complex yet -- so a misdeclaration gives garbage, but
I've never seen them rely on other x87 stack elements over such a call
which could affect downstream, although it could be I just write code
that is too well structured and straightforward <G?>.

I've used a machine where the CPU (general) registers are stacklike
and 16bits, and the callsite wrongly expecting e.g. short vs long,
could cause bizarreness later. But the C compiler on that machine
'fixed' it by generating an extra instruction to force the regstack to
the expected size, albeit possibly a garbage content, apparently
because this was (too) common in realworld programs.

As noted VMS had a huge set of defined error/status values, so if your
garbage main return hit a quasirandom one DCL might *say* things like
"main power failed" or "system fire alarm". But these things hadn't
actually happened, your garbage status just claimed they had.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top