casts

S

spinoza1111

spinoza1111said:

Yes, there is a correct answer.




If the primitives starting in str are used, then "a C
string cannot contain a Nul" is a true statement. But if mem*
functions are used, or some pretentious clown's library, then
this is untrue.
No.
N869
7.  Library
7.1  Introduction
7.1.1  Definitions of terms
[#1]  A  string  is  a  contiguous  sequence  of  characters
terminated by and including the first null  character.
And you're still stupid.
That is NOT what a string is.

Yes, it is, by definition, what a string is, in C.
A string is a series of symbols used
by humans to communicate with each other and store data in
computers.

You can think of it that way if you like, but the C language defines
the term otherwise. When C programmers are communicating together,
they are likely to use the term in the way that C defines it, and so
your using another definition is therefore likely to cause confusion
unless all parties to the discussion continually remind themselves of
the new definition. But strings are such a fundamental concept that
to use another definition for them is a little like coming up with a
different meaning for "the". It can make conversation really
difficult.

That's bullshit. In fact, we see right here that C programmers'
"terminology" varies quite widely because of C's lack of a formal
semantic definition prior to standardization, and after owing to the
fact that C CANNOT be standardized: it's too "powerful", that is, too
dependent on a Von Neumann architecture.

I don't see C experts communicating successfully here at all. Instead,
even putative experts are constantly arguing over fine points, which
fine points would not exist had C been a proper language, and making
quite elementary mistakes (such as failing to set the first character
of a malloc string area to Nul).

Because C programs outside highly disciplined OS and compiler shops
(that in many cases use code generation) are leaky and bug-prone over
their lifetime, C programmers haven't earned the right to redefine the
pre-computer, pre-existing notion of a string. The silliness starts
with the reservation of Nul and continues from there, since the
connection of a code with a human character is arbitrary, and the
motivation to view a "binary" file as text is a valid and necessary
decision, even if Nul has, like other non-graphic characters, to be
translated to \x00 or &#00000.

What makes conversation difficult here:

* Your unprofessional specialization on C and refusal to learn newer
approaches such as OO

* Your constant snide enabling of the politics of personalities
whenever the conversation exceeds your intellectual level
 
S

spinoza1111

spinoza1111said:



Observation: "here" is comp.lang.c, a newsgroup for discussions about
C programming...
That's what I'm talking about: the C programming languages, and its
deficiencies.
When holding discussions in this, the comp.lang.c newsgroup, it does
not seem entirely unreasonable for discussions to specialise on C.

As I have said, you discuss personalities in addition to the newsgroup
topic, and, in an off-topic manner, you enable a tone of hatred and
anger which is inappropriate and by definition off-topic. You discuss
people in the third person in a way which sheds no light whatsoever on
C although I have noticed in recent weeks an attempt on your part to
restrain yourself, which is laudable, but is evidence of the problem.

Whereas the defects of C, such as the fact that a working C program is
easily transformed into a compiling but invisibly nonworking C program
whereas this is much more difficult with C Sharp and Java, and the
fact that C does not support strings (or if you prefer, the question),
are all on-topic.
 
T

Tom St Denis

No, it's a failure of the language. I take it as axiomatic that when
smart people do poorly in a programming language, and dull fellows do
well, the language is defective.

You're assuming that the failed libraries were in fact written by
experienced smart people. I'd like you to consider the fact that
there are many shit programmers out there who write shit code in
virtually every language.

So you fail at logic.
Oh? So it can make its own rules? I suggest you read Aho/Sethi/Ullman.

C doesn't define regex standards. Soooo.... it's off topic here.
Rant only about on-topic REAL issues please.
I'm the author of a book on applied compiler design. I think I know
what I'm talking about.

And if you think regex construction lies more in an algebra text than
a compiler text that speaks volumes to your understanding of computer
science.
Eye roll. Crotch grab.

Dude, what you do in private does not need to be aired here.
The complete Dijkstra repository of all his proto-blogs is available
at a Univ of Texas Web site. I have found no mention of C there.

I don't get what you're trying to prove. Dijkstra does not define
what is and isn't C.

My point was you are speaking to his opinions and I question on what
you're basing this. usenet posts from the 80s don't really count.
I have already addressed this issue. Where x is an arbitrary C program
whose internals are at time t unknown, a C expert E must be retained
to read the C code. This is not true for higher-level languages.

That statement alone wins you a "you're full of shit" award, let alone
the other bombshells of stupidity you've dropped.

You're contention is that you can pick anyone off the street to pick
up a java or pascal or python or ... project and run with it? Am I
hearing this right? Only C programs require "professionals?"
No, you take off, hoser. The defects of C are on-topic, far more so in
fact than the defects of people, a favorite topic here.

It'd be easier to remain topical if you were bound by the confines of
reality.

Tom
 
T

Tom St Denis

The fact that C supports strings has been amply demonstrated.

What I don't get is he looks at C's lack of OOP style strings as a
failure of C, but doesn't consider Javas lack of pointers to be a
failure of Java.

It's almost like he's manufacturing outrage...
 
W

Walter Banks

spinoza1111 said:
As I have said, you discuss personalities in addition to the newsgroup
topic, and, in an off-topic manner, you enable a tone of hatred and
anger which is inappropriate and by definition off-topic.

Mr. Pot meet Mr. Kettle.
 
S

spinoza1111

spinoza1111wrote:

Mr. Pot meet Mr. Kettle.

No, the situations only seem equivalent, because when you look at the
posts, you forget that the events to which the correspond take place
in time, and in time, Heathfield initiates and enables attacks on
others to which, if they have any balls, reply. We're talking vectors
and not sets.
 
S

spinoza1111

spinoza1111said:



If the nonworking is truly invisible - that is, if there is no way to
detect incorrectness - then how do you know it's nonworking? And of

Gee, Mr Science, let's factor out time itself. The incorrectness, of
course truly invisible, unknown before time T. This is a time after
which the overpaid C "consultant" has been paid when some poor user
discovers the bug. Even before that time, the EFFECTS of the bug can
be tectonically felt as in the case of veterans denied health care
because of undescribed "computer problems".
course it's trivial to construct an incorrect program in any
language, simply by writing a program to solve the wrong problem.

Gee, Mr Logic, (Ex)[isaProgram(x) & ~(language(x)=C) && incorrect(x)]
fails to imply ~sucks(C). "The possibility of writing incorrect
software in any language" is a consequence of the Turing "halting
prorblem" and neither implies by itself nor is part of a demonstration
that C doesn't suck.
The fact that C supports strings has been amply demonstrated.

Erat demonstrandum? Quae hic locus, quae regio, quae mundi plaga, as
Hercules asks in Seneca's tragedy? Differentialibus assus tuus cognis
tu holus in groundus?

The "support" C gives strings is logically equivalent to the "support"
that a Turing machine gives strings: a Turing machine can "support" a
C-like string if it is assumed that a string need not contain a marker
character and you can write thousands of quintuples of the form
(state, symbol, move, newState, newSymbol): or if you can write even
more to do math on the string length.

But no-one here claims to be an ace Turing machine programmer.

Java and C Sharp provide a much stronger support that is capable of
being well-defined. When you declare a string in these languages, it
behaves according to our intuitive expectations of what a string
should be:

* Any character can be in the string
* The string is pragmatically unbounded in the sense that its bound
occurs when the bound of the running computer's memory is obviously
reached
 
S

spinoza1111

You're assuming that the failed libraries were in fact written by
experienced smart people.  I'd like you to consider the fact that
there are many shit programmers out there who write shit code in
virtually every language.

Most shit programmers prefer languages that conceal their shittiness.
This is why most shit programmers refuse to learn languages including
C Sharp and Java.
So you fail at logic.



C doesn't define regex standards.  Soooo.... it's off topic here.
Rant only about on-topic REAL issues please.


And if you think regex construction lies more in an algebra text than
a compiler text that speaks volumes to your understanding of computer
science.

Yes, it does indeed. "Computer science" is not the collective opinions
of a bunch of greedy ruffians.
Dude, what you do in private does not need to be aired here.


I don't get what you're trying to prove.  Dijkstra does not define
what is and isn't C.

My point was you are speaking to his opinions and I question on what
you're basing this.  usenet posts from the 80s don't really count.

Dijkstra didn't post to usenet.
That statement alone wins you a "you're full of shit" award, let alone
the other bombshells of stupidity you've dropped.

No, Reading Rainbow, your reaction shows serious logic and
comprehension problems.
You're contention is that you can pick anyone off the street to pick
up a java or pascal or python or ... project and run with it?  Am I
hearing this right?  Only C programs require "professionals?"

No, a Java or C Sharp program which compiles with neither errors nor
warnings, and which is accepted to work, can be recompiled on a
different system with a separate Java or C Sharp installation, and it
will manifest the same acceptable behavior, and this is not the case
with C.

The failure of your logic: you are only able to form "strong" (that
is, overly predictive) claims and cannot understand minimal
preconditions.
 
L

luserXtrog

Erat demonstrandum? Quae hic locus, quae regio, quae mundi plaga, as
Hercules asks in Seneca's tragedy? Differentialibus assus tuus cognis
tu holus in groundus?

Genitive case, Nozy!

<deletia>
 
S

spinoza1111

Genitive case, Nozy!

I studied Latin in high school (our Latin teacher, Father Weiland,
could hit the wastebasket with a wad of paper, or an inattentive
student with an eraser, by throwing the missile over his shoulder) but
do not pretend to know it today. I believe the quote, from Seneca's
Hercules Furens, is accurate. The part that begins "differentialibus"
is mock Latin.
 
S

spinoza1111

spinoza1111said:







Then you didn't test it properly. This applies just as much to non-C
programs as to C programs.

(Sigh) (Eye roll) (Crotch grab) (Fart blow)
(Aspirandus) (Rollus orbis oculorum) (Crotchus grabbus) (Venti
flatulenti)

"Testing can prove the presence of bugs, not their absence". The use
of Java and C Sharp does not obviate the need for testing, it only
makes it an order of magnitude easier. The ease is unrelated to the
skill or intelligence of the programmer, since intensive C programming
at an advanced level produces, in my direct experience, distorted and
stunted intellects who systematically transform quality into quantity
by putting in unpaid work hours, to follow up on repeated, but
elementary, bugs. These people are in my experience characterised by a
variety of psychological disorders including poor anger management and
the abuse of alcohol, drugs and food. They are often deficient, as we
see here, in reading comprehension and logic.
 
T

Tom St Denis

Most shit programmers prefer languages that conceal their shittiness.
This is why most shit programmers refuse to learn languages including
C Sharp and Java.

I can't help but read this as "wyah wyah I suck at C so I'm gonna
troll usenet instead of doing something truly fun because I have a
shallow and depraved lifestyle that is so inactive usenet is
considered a highlight..."
Yes, it does indeed. "Computer science" is not the collective opinions
of a bunch of greedy ruffians.

Ok, but that doesn't change the fact that the discussion of regex
belongs in a compiler text, not an algebra text.

No, a Java or C Sharp program which compiles with neither errors nor
warnings, and which is accepted to work, can be recompiled on a
different system with a separate Java or C Sharp installation, and it
will manifest the same acceptable behavior, and this is not the case
with C.

First off, that's not even right, the Java API *has* changed over time
and different VMs treat programs differently. There are businesses
out there that their sole occupation is porting Java games from one
mobile phone to another.

On the other hand, I've written C applications that build in 20
different UNIX/Linux/BSD platforms from a single source.

You seem to think that because POSIX.1 C applications don't map well
to Windows that C is somehow deficient, or something, to be honest I
don't really know where you're coming from in this. A lot of us here
have written C applications that "just work" on other platforms from
where they were originally written. Heck, I write software that
simultaneously targets PPC, ARM, and x86 [32 and 64-bit] and I don't
even have a "#ifdef ARM" anywhere except for optimizations [inline
asm].

Not only that, but what's to stop me from writing a C VM that then
hosts C applications in a sandbox like Java and runs "anywhere"? That
is not a function of the C language though. So your rant is lost
here.

It's quite obvious that you're not really an experienced developer,
let alone computer scientist, you think regex has something to do with
math [more than compiler theory that is], you think all Java
applications run anywhere for all of time, you think that C can't be
sandboxed, you think a lot of things, and they're just not true.

And last but not least, you think we care enough about you to
persecute you. Truth is, if you stopped posting this instant, I and
probably the rest of the world, wouldn't miss you. Which isn't meant
to be an offense, it's just the truth. I suspect the same is true for
myself and most others around here. Individuals just don't count that
much, team contributions on the other hand do. CLC is a place where a
group of people can discuss C language issues. And right now you're
just a distraction. Nothing positive is coming out of this
discussion. So why not join the winning team there eh champ? Stop
trolling and contribute meaningful dialogue.

Tom
 
S

spinoza1111

I can't help but read this as "wyah wyah I suck at C so I'm gonna

I don't "suck at C"; I no longer use it. I used it in the early 1990s
and was asked to teach it to prospective computer science majors at
Princeton. I assisted John "A Beautiful Mind" Nash with C.

However, I noted that as I tried to do anything significant or
elaborate, especially with GUIs, I was spending too much time on
infrastructure: for example, a struct seemed to me to require
additional routines to print it and inspect it for validity. I
discovered that primitive Visual Basic as of its early (1995) object-
oriented release did a better job of encapsulation, and wrote a
compiler in a later edition of Visual Basic, publishing said compiler
as the software for "Build Your Own .Net Language and
Compiler" (Apress 2004).

The compiler would have been far more difficult, if more "efficient",
in C.
troll usenet instead of doing something truly fun because I have a
shallow and depraved lifestyle that is so inactive usenet is
considered a highlight..."

I type fast. This allows me to work six days a week as a teacher and
run or work out 10..20 miles or mile-equivalents per week. I take a
break now and then to banter here with you slobs.
Ok, but that doesn't change the fact that the discussion of regex
belongs in a compiler text, not an algebra text.

Regular expressions were developed before computers by John von
Neumann et al., and their function is NOT to be an obfuscated machine
language for processing data. Instead, a regular expression specifies
a class of languages. As I show at
http://spinoza1111.wordpress.com/20...many-systems-for-parsing-regular-expressions/,
the programming use of regular expressions obscures their mathematics
since they require sentinels for EOF, and process strings either
lazily or greedily, where the processing method is irrevelant to the
mathematical regex. The result is the misery of a variety of
incompatible regexp processors.
First off, that's not even right, the Java API *has* changed over time
and different VMs treat programs differently.  There are businesses
out there that their sole occupation is porting Java games from one
mobile phone to another.

C did a great deal in creating the ignorant perception amongst
software managers that because C isn't portable, Java isn't portable
to the same extent.

On the other hand, I've written C applications that build in 20
different UNIX/Linux/BSD platforms from a single source.

I don't care to listen to you boast if you don't care to treat my
opinions with any collegiality, Bubba. In my thirty years as a
developer I became overfamiliar with the arrogant "lead" or "senior"
developer who is usually just the fattest man in the group with the
biggest mouth, and who claims that his software works without testing.
You seem to think that because POSIX.1 C applications don't map well
to Windows that C is somehow deficient, or something, to be honest I
don't really know where you're coming from in this.  A lot of us here
have written C applications that "just work" on other platforms from
where they were originally written.  Heck, I write software that
simultaneously targets PPC, ARM, and x86 [32 and 64-bit] and I don't
even have a "#ifdef ARM" anywhere except for optimizations [inline
asm].

Not only that, but what's to stop me from writing a C VM that then
hosts C applications in a sandbox like Java and runs "anywhere"?  That
is not a function of the C language though.  So your rant is lost
here.

It's quite obvious that you're not really an experienced developer,

Although I was probably programming in machine language, and debugged
a compiler in machine language, while you were in shit-stained diapers
watching Scooby Doo, being an "experienced developer" in my experience
usually involves drinking some form of Jonestown Kool-Ade. Since so
few managers or users, and indeed few developers themselves, know much
beyond a specified skill set, external markers of inward grace often
substitute for knowledge and real experience in naming the
"experienced" developer. For example, I went from "experienced" to
"inexperienced" when in 1981 I started to work out and got slimmer,
because one such marker is that the developer should be an unhealthy-
looking white guy.
let alone computer scientist, you think regex has something to do with
math [more than compiler theory that is], you think all Java

Well, I first encountered regular expressions in "Formal Languages and
Their Relation to Automata" by Jeffs Hopcroft and Ullman, published in
1972. This was a math book.
applications run anywhere for all of time, you think that C can't be

Of course, not all Java applications run anywhere all the time. But,
far fewer C applications do so in my experience.

sandboxed, you think a lot of things, and they're just not true.

And last but not least, you think we care enough about you to
persecute you.  Truth is, if you stopped posting this instant, I and
probably the rest of the world, wouldn't miss you.  Which isn't meant
to be an offense, it's just the truth.  I suspect the same is true for
myself and most others around here.  Individuals just don't count that
much, team contributions on the other hand do.  CLC is a place where a
group of people can discuss C language issues.  And right now you're
just a distraction.  Nothing positive is coming out of this
discussion.  So why not join the winning team there eh champ?  Stop
trolling and contribute meaningful dialogue.
You are blind but you see a truth in a perverted way. It is that the
purpose of digital technology wasn't to glorify individual ace
programmers, but to make the rich, richer, to advance American
hegemony, and to keep the rest of us in cubicles defined by our social
position. Despite my early fascination with computers, I could see
where all the interesting things having to do with writing assemblers
and debugging compilers was, although challenging and interesting,
leading in the direction of moronization and social rigidity.

As such, you're right. The system isn't set up for people to
demonstrate that they are geniuses or incisive social critics. It's
set up for them to sacrifice their in-duh-viduality as team members
for a paycheck and health insurance if they're lucky.

However, you naturalize, reify, hypostatize and fetishize this
situation. Lacking any deep culture, I'd wot, you think this is the
only possible world. Yet at the same time, you're not really
reconciled to it because you do boast, don't you, about your studly
accomplishments in a zero sum way, where they must be at all times
opposed to someone else's necessary failure.

In psychological terms, society has made you internalize a judgemental
father, who emerges in your bad-tempered snarling at the harmless
expression of viewpoints.

The hostility, and unmanaged anger, that comes out in you emerges
because you feel in fact unrewarded for mastering your job, and
because in fact, programmers are treated consistently like marginal
dogshit.

But: the fact that you're moved to express this hostility shows where
Fascism comes from. Because you must manifest all sorts of
intelligence and discipline, but are nothing more than an abstract
"resource", your anger is targeted at anyone who refuses the terms of
the deal. I see this type of anger emerging in the USA in health
insurance "town meetings", and it is an anger which is used to advance
the interests of the rich and powerful...not you.

I've probably forgotten more than you know about C. In my experience,
it forces the developer to think in inhumane and twisted ways and to
take his anger out on the victims of his malpractice.
 
T

Tom St Denis

I don't "suck at C"; I no longer use it. I used it in the early 1990s
and was asked to teach it to prospective computer science majors at
Princeton. I assisted John "A Beautiful Mind" Nash with C.

Not that I don't believe you about your "helping John Nash" I just
don't care. It's not something that will win over credibility with
me. I don't revere Nash as a computer science genius or whatever.

Maybe you should make up something about teaching Knuth how to
multiply or something.
However, I noted that as I tried to do anything significant or
elaborate, especially with GUIs, I was spending too much time on
infrastructure: for example, a struct seemed to me to require
additional routines to print it and inspect it for validity. I
discovered that primitive Visual Basic as of its early (1995) object-
oriented release did a better job of encapsulation, and wrote a
compiler in a later edition of Visual Basic, publishing said compiler
as the software for "Build Your Own .Net Language and
Compiler" (Apress 2004).

GDB can print contents of structures. If [and I have] needed to see
the contents of a structure quickly I'd just debug, set a breakpoint
and print it out. Takes all of 5 seconds.
The compiler would have been far more difficult, if more "efficient",
in C.

C isn't always about efficiency as it is about just getting control
over data in precise manners. A big reason I despise languages like
Perl or Python for bit-twiddling things like ASN.1 or crypto work
isn't because they can't do the job, it's because they can't do it
well.

And really, what you're missing [because you have no clue what you're
talking about], is you'd write your data engine [task that does the
heavy lifting] in C, and your front end GUI in any language that makes
you happy and just use bindings to glue the two together.

Nothing saying you can't write your GUI in VB and your [say] DSP code
in C.

Right tool for the job.
I type fast. This allows me to work six days a week as a teacher and
run or work out 10..20 miles or mile-equivalents per week. I take a
break now and then to banter here with you slobs.

26 minutes to get to the gym eh?
C did a great deal in creating the ignorant perception amongst
software managers that because C isn't portable, Java isn't portable
to the same extent.

I've worked in Java before. I've hit the 1.4/1.5/etc walls before.
Part of my job when I was a software dude at AMD was to look into
performance problems in Java and it was always a different story with
different versions of the API/jvm/etc.

Java code is not only not 100% portable, but it's also not guaranteed
to be bug free. You can easily code in race conditions in Java such
that 99% of the time it works for you, but I open the app on my SMP
box and voila bug. So this idea that only C applications suffer from
portability issues is just a lie.
Although I was probably programming in machine language, and debugged
a compiler in machine language, while you were in shit-stained diapers
watching Scooby Doo, being an "experienced developer" in my experience
usually involves drinking some form of Jonestown Kool-Ade. Since so
few managers or users, and indeed few developers themselves, know much
beyond a specified skill set, external markers of inward grace often
substitute for knowledge and real experience in naming the
"experienced" developer. For example, I went from "experienced" to
"inexperienced" when in 1981 I started to work out and got slimmer,
because one such marker is that the developer should be an unhealthy-
looking white guy.

Now you're getting delusional. I've visited many software shops and
have seen people of all shapes and sizes. Being a fat, scruffy
looking dude with long hair is not the marker of a successful software
developer.

Also, age doesn't really matter. I'm hardly some 13 yr old kid
posting ramblings from space. You could be 30 years old than me and
it still wouldn't change the fact that you're posting falsehoods and
crying persecution when nobody agrees with you.
let alone computer scientist, you think regex has something to do with
math [more than compiler theory that is], you think all Java

Well, I first encountered regular expressions in "Formal Languages and
Their Relation to Automata" by Jeffs Hopcroft and Ullman, published in
1972. This was a math book.

Automaton have everything to do with computer science and not strictly
math. Look at conways game of life. Sure there is a mathematical
expression, but it's really an algorithm. Algorithms use math in the
way paragraphs use words. Building a grammar [paragraphs] and
building a vocabulary [words] are two different subjects are they not
even if they're umbrellaed by one subject header? I'd expect to study
sorting algorithms in a comp.sci class enough though their analysis
makes use of math. Language constructs, such as those that define a
regex are firmly founded in Compiler Theory. Where do you think you
get the concept of an LL or LR(1) parser from in the first place?

So you may use some math formalism to describe a grammar, but it's
still not a math subject.
Of course, not all Java applications run anywhere all the time. But,
far fewer C applications do so in my experience.

Then I'm sorry for your experiences. That still has nothing to do
with the C language though. What you're really bitching about [it
seems] is the lack of a C VM that can run your C applications
sandboxed like Java applications. That's not a function of the C
language though, that's a function of available C tools.
You are blind but you see a truth in a perverted way. It is that the
purpose of digital technology wasn't to glorify individual ace
programmers, but to make the rich, richer, to advance American
hegemony, and to keep the rest of us in cubicles defined by our social
position. Despite my early fascination with computers, I could see
where all the interesting things having to do with writing assemblers
and debugging compilers was, although challenging and interesting,
leading in the direction of moronization and social rigidity.

I'd say taking away the learning experience of manipulating raw data
[like strings, structures, lists, arrays, etc] *IS* what is dumbing
down the computer society. You have "developers" nowadays that
couldn't qsort an array if their life depended on it. They couldn't
figure out how to manipulate a string, or really form proper list/tree/
etc structures, etc.

Sure it's nice to have tools to make common tasks simpler, but too
many people go for the end game before learning how to get there.

Net result is when they face a problem that doesn't have an immediate
API solution to, they can't reason how to solve it correctly,
properly, efficiently, etc.
As such, you're right. The system isn't set up for people to
demonstrate that they are geniuses or incisive social critics. It's
set up for them to sacrifice their in-duh-viduality as team members
for a paycheck and health insurance if they're lucky.

I have no idea what this has to do with C.

<snip rest of insane rant>

You still haven't really come up with a "problem" that is actually the
fault of the C language. Let's examine them

1. Only C applications are non-portable. That's false.
2. C has no VM like Java. That's not a C language problem
3. C developers are losers. um ... don't know what to say there
4. C promotes developers to do bad work. Again, this is one persons
opinion
etc...

Let me phrase this another way, to use Nash like thinking, what's a
win scenario for your little game you're devising? Is that where we
all collectively agree that you're right, C is bullshit, we revoke all
C compilers from the planet and all switch to Windows 7 and program in
Visual Basic?

Essentially, what are you trying to accomplish here?
 
T

Tom St Denis

Tom St Denis would probably be the last to claim that he is a C
expert; nevertheless, from what I have seen of his C (which is quite
a lot - he is the author of a cryptography package), and from what I
have seen of yours, I can unhesitatingly conclude that he knows far
more about C than you do. How much you have forgotten about C can
only be surmised, but it would have to be a huge amount for you to be
able to claim that you were ever competent in the language. Prove me
wrong - show me any C you've ever written that is not riddled with
misunderstandings about the language.

Thanks for the endorsement. While we're throwing cards on the table,
I never really claimed to be an C specification expert. Mostly I talk
from the experience I have and what I do know from the C spec. Do I
think I'm a competent developer who can use C proficiently to write
solid secure applications? Yes. Do I know the ISO C99 spec inside
and out? No.

I doubt we'll see anything substantial from him to prove that he
actually knows how to really develop software, in any language,
proficiently. His claims about C being the inferior choice, for
example in GUI applications, shows that he doesn't understand how to
abstract tasks away. Everything must be hammered with the same tool
in his mind.

Tom
 
S

spinoza1111

spinoza1111said:



You have yet to demonstrate this.



Tom St Denis would probably be the last to claim that he is a C
expert; nevertheless, from what I have seen of his C (which is quite
a lot - he is the author of a cryptography package), and from what I
have seen of yours, I can unhesitatingly conclude that he knows far
more about C than you do. How much you have forgotten about C can
only be surmised, but it would have to be a huge amount for you to be
able to claim that you were ever competent in the language. Prove me
wrong - show me any C you've ever written that is not riddled with
misunderstandings about the language.

Knowing how to code and details isn't a substitute for a lack of the
big picture: this is a fallacy of the self-appointed "expert". Again,
I could get hardcore with C, but this very act, as I have said, is so
full-time as to stunt the personality and rot the mind.

What you're saying is tantamount, dear chap, to saying that the
operator of a nuclear plant, who works on the control panel, is able
to defend nuclear power, whereas people who don't work in the plant
and glow green cannot protest the use of nuclear power.
 
S

spinoza1111

Thanks for the endorsement.  While we're throwing cards on the table,
I never really claimed to be an C specification expert.  Mostly I talk
from the experience I have and what I do know from the C spec.  Do I
think I'm a competent developer who can use C proficiently to write
solid secure applications?  Yes.  Do I know the ISO C99 spec inside
and out?  No.

I doubt we'll see anything substantial from him to prove that he
actually knows how to really develop software, in any language,
proficiently.  His claims about C being the inferior choice, for
example in GUI applications, shows that he doesn't understand how to
abstract tasks away.  Everything must be hammered with the same tool
in his mind.

If by "abstracting tasks away", you mean unethically forcing your
client to bankroll Yet Another development of a vanity system for
supporting GUIs, yeah I dunno how do dat. In True Basic, I was able to
develop a system for hydrostatic stability in 1986 that allowed a
vessel's captain to point to parts of the vessel and determine weight
and balance. Whereas in C a few months later I found myself having to
invent string processing.
 
S

spinoza1111

Not that I don't believe you about your "helping JohnNash" I just
don't care.  It's not something that will win over credibility with
me.  I don't revereNashas a computer science genius or whatever.

Cf. The Essential John Nash. In a 1954 he anticipated problems and
solutions in multiprocessing. His code was far better than that of
full-time expert programmers.
Maybe you should make up something about teaching Knuth how to
multiply or something.
However, I noted that as I tried to do anything significant or
elaborate, especially with GUIs, I was spending too much time on
infrastructure: for example, a struct seemed to me to require
additional routines to print it and inspect it for validity. I
discovered that primitive Visual Basic as of its early (1995) object-
oriented release did a better job of encapsulation, and wrote a
compiler in a later edition of Visual Basic, publishing said compiler
as the software for "Build Your Own .Net Language and
Compiler" (Apress 2004).

GDB can print contents of structures.  If [and I have] needed to see
the contents of a structure quickly I'd just debug, set a breakpoint
and print it out.  Takes all of 5 seconds.

That's not what I'm talking about. I am talking about the clearly
available and permanent existence of a toString() method that converts
a structure into string data.
C isn't always about efficiency as it is about just getting control
over data in precise manners.  A big reason I despise languages like
Perl or Python for bit-twiddling things like ASN.1 or crypto work
isn't because they can't do the job, it's because they can't do it
well.

You prefer C methods of thinking and representation, but this is not
an argument for their superiority except from a narcissistic
standpoint. Second-rate people cannot think outside their notations
and for example find Polish notation incomprehensible. I never found C
incomprehensible, by the way: I just found it unsafe at any speed.
And really, what you're missing [because you have no clue what you're
talking about], is you'd write your data engine [task that does the
heavy lifting] in C, and your front end GUI in any language that makes
you happy and just use bindings to glue the two together.

This creates an unnecessary binary opposition between "heavy lifting"
and GUI with a nasty and unexplored sexism encased within, for of
course, men who are (cf Susan Faludi's book STIFFED) unmanned by
corporate life will seek to compensate by factoring problems into hard
"male" and soft "female" components unthinkingly. Whereas this isn't
appropriate in many instances. The consequence of the factoring is
often that the GUI team, as "women" is starved for resources and the
GUI is crap.

Nothing saying you can't write your GUI in VB and your [say] DSP code
in C.

Right tool for the job.

Right, "Joe the Plumber". Look, if you want to use "tools" in other
than a metaphorical sense, get a job as a plumber.
26 minutes to get to the gym eh?


I've worked in Java before.  I've hit the 1.4/1.5/etc walls before.
Part of my job when I was a software dude at AMD was to look into
performance problems in Java and it was always a different story with
different versions of the API/jvm/etc.

What probably happened:

(1) Your boss got a sales call from some Java flack
(2) He asked you to look into it
(3) You were going to be God-damned before you learned a language that
would make you feel all girlie, so you sure as hell "looked into"
"performance problems". You didn't look at anything else.

Java code is not only not 100% portable, but it's also not guaranteed
to be bug free.  You can easily code in race conditions in Java such
that 99% of the time it works for you, but I open the app on my SMP
box and voila bug.  So this idea that only C applications suffer from
portability issues is just a lie.

The difference being you have to work at it, whereas creating race
conditions unintentionally is easy in C.
Now you're getting delusional.  I've visited many software shops and
have seen people of all shapes and sizes.  Being a fat, scruffy
looking dude with long hair is not the marker of a successful software
developer.

Also, age doesn't really matter.  I'm hardly some 13 yr old kid
posting ramblings from space.  You could be 30 years old than me and
it still wouldn't change the fact that you're posting falsehoods and
crying persecution when nobody agrees with you.

Who's crying "persecution"? You're engaged in some pretty deep
psychological transference.
let alone computer scientist, you think regex has something to do with
math [more than compiler theory that is], you think all Java
Well, I first encountered regular expressions in "Formal Languages and
Their Relation to Automata" by Jeffs Hopcroft and Ullman, published in
1972. This was a math book.

Automaton have everything to do with computer science and not strictly

I'd credit you with knowing what you were talking about more if only
you knew the plural of automaton.
math.  Look at conways game of life.  Sure there is a mathematical

I first programmed a version of Conway in 1973 on a machine with 8K
RAM, and was honored to meet Conway years later, so by all means, let
us look at Game of Life.
expression, but it's really an algorithm.  Algorithms use math in the

No it is not. An algorithm is a procedure for solving a problem which
normally is guaranteed of success but not always. Conway Life is an
ontology (a world with an unbounded number of two-state cells) and a
set of rules.

Regarding Conway life as an "algorithm" results in the numerous buggy
Life simulators in which the "glider" pattern fails to create a new
cell beyond the boundary of the Life array and as a result, the glider
turns into a dead 2*2 block. The fact is that Conway's life is not an
algorithm and cannot be properly programmed, since Conway's world is
infinite in all directions.


way paragraphs use words.  Building a grammar [paragraphs] and
building a vocabulary [words] are two different subjects are they not
even if they're umbrellaed by one subject header?  I'd expect to study
sorting algorithms in a comp.sci class enough though their analysis
makes use of math.  Language constructs, such as those that define a
regex are firmly founded in Compiler Theory.  Where do you think you
get the concept of an LL or LR(1) parser from in the first place?

No, Compiler Theory, Ace Ventura, is grounded in math including a pre-
existing theory of regular expressions.

For example: *A is satisfied by a substring containing the letter A
preceding the last A. To "program" this regular expression, you must
invent a new "character", $, representing the end of the line. This
has nothing to do with math and it in fact destroys the theory,
replacing it with a barbarous form of machine-language programming.

So you may use some math formalism to describe a grammar, but it's
still not a math subject.

WRONG. Regarding computer science as independent of math creates
systems which redefine mathematical truth as above.
Of course, not all Java applications run anywhere all the time. But,
far fewer C applications do so in my experience.

Then I'm sorry for your experiences.  That still has nothing to do
with the C language though.  What you're really bitching about [it
seems] is the lack of a C VM that can run your C applications
sandboxed like Java applications.  That's not a function of the C
language though, that's a function of available C tools.
You are blind but you see a truth in a perverted way. It is that the
purpose of digital technology wasn't to glorify individual ace
programmers, but to make the rich, richer, to advance American
hegemony, and to keep the rest of us in cubicles defined by our social
position. Despite my early fascination with computers, I could see
where all the interesting things having to do with writing assemblers
and debugging compilers was, although challenging and interesting,
leading in the direction of moronization and social rigidity.

I'd say taking away the learning experience of manipulating raw data
[like strings, structures, lists, arrays, etc] *IS* what is dumbing
down the computer society.  You have "developers" nowadays that
couldn't qsort an array if their life depended on it.  They couldn't
figure out how to manipulate a string, or really form proper list/tree/
etc structures, etc.

The problem being that:

(1) In C, the tyro learns that sentinels may stop strings. WRONG.
(2) In C, the tyro learns to care too much about "efficiency". WRONG.
(3) In C, the tyro learns to confuse the notion of an ordered n-tuple
with the very different notion of a buncha stuff in memory. BZZT
(4) In C, the tyro learns to buttfuck things at the last minute to
"get it done". WRONG.
(5) In C, the tyro learns that everything is Von Neumann and that
associative memory is a pipe dream. BZZT
(6) In C, the tyro learns to prize brevity over comprehension. WRONG.
(7) In C, the tyro cannot implement the common operation of summation
using a truly constant limit. WRONG.
(8) In C, the tyro learns that a program is just a text which can be
preprocessed as a text safely. WRONG.
(9) In C, the tyro is seduced by a "power" to do wrong.

There is in fact no reason why primitive operations and basic design
skills cannot be taught without having to treat the mistakes of
Ritchie as holy writ. A string object can be developed in Java or C
Sharp by assuming that there are no strings.

Sure it's nice to have tools to make common tasks simpler, but too
many people go for the end game before learning how to get there.

My first program was in machine language, Ace Ventura. What language
was your first language in? Yet I certainly didn't go on to think that
all data should be in the form of variable length strings in six bit
BCD addressible on the left with a word mark on the right. Instead I
wrote assemblers and debugged a compiler for Fortran II to escape
these constraints.

In the 1970s, working in Cobol, I heard a lot of fashionable talk
about C and took a class in it. I thought it semicool and (it goes
without saying) better than Cobol. But then I started to use Rexx, IBM
assembler, and proprietary Northern Telecom languages in Silicon
Valley.

The C developers were moaning and whining about wanting a DEC VAX, the
fashionable machine of the early 1980s. But then, the VAX was found to
have machine instructions that nobody ever used, instructions
something like "halt, add zero, catch fire, and eject the drinks
tray".

Dijkstra was wrong about object orientation.
Net result is when they face a problem that doesn't have an immediate
API solution to, they can't reason how to solve it correctly,
properly, efficiently, etc.

That speaks volumes not about lack of training in C, but about lack of
general culture and excessive coddling by matriarchal homes.

CS education used whatever was available in the old days. Then it used
interpreters like PUFFT (the Purdue University Fast Fortran
Translators) to avoid student code bringing down the whole kit and
kaboodle. Then they used Pascal. That was fun. Then it used C ("how to
debug a C program: change your major"). Today it uses Java. Onward and
upward. The language is irrevelant, and C was the worst choice.

I have no idea what this has to do with C.

No, you don't, because you separate social issues from technology.
<snip rest of insane rant>

You still haven't really come up with a "problem" that is actually the
fault of the C language.  Let's examine them

1.  Only C applications are non-portable.  That's false.

That's not what I said, Reading Rainbow. I said that C is not as
portable as it should be, since its "power" results in the logical
possibility of bugs surfacing when the code is ported at a higher rate
than in other languages.
2.  C has no VM like Java.  That's not a C language problem
3.  C developers are losers.  um ... don't know what to say there
4.  C promotes developers to do bad work.  Again, this is one persons
opinion
etc...

Let me phrase this another way, to useNashlike thinking, what's a
win scenario for your little game you're devising?  Is that where we
all collectively agree that you're right, C is bullshit, we revoke all
C compilers from the planet and all switch to Windows 7 and program in
Visual Basic?

This is an isomorph to unsolved social problems (such as absence of
health insurance in the US) in which the argument is made that we've
invested so much in the nonworking solution that we might as well go
on.
 
T

Tom St Denis

If by "abstracting tasks away", you mean unethically forcing your
client to bankroll Yet Another development of a vanity system for
supporting GUIs, yeah I dunno how do dat. In True Basic, I was able to
develop a system for hydrostatic stability in 1986 that allowed a
vessel's captain to point to parts of the vessel and determine weight
and balance. Whereas in C a few months later I found myself having to
invent string processing.

You clearly have not worked in a team larger than yourself. It's
typical in large enough organizations that you have a team dedicated
to the GUI, another to localizations, another to QA, another to the
underlying engine [whatever the application does], etc...

I'm happy you were able to write your "My First Program (tm)" in Basic
in 1986, but not all applications amenable to that development
process. You complain that C sucks at GUI work. I don't disagree.
But I also contend that languages like VB or Perl or Python or ...,
tend to suck at doing math, bit twiddling, etc, sort of work.

So you split the difference, write the engine in C, and GUI in a
language where that is better suited. If you do your work properly
the C code amounts to a library that performs the required work that
you can reuse in other applications/platforms. So only your GUI work
runs the huge risk of being platform specific [e.g. GTK+ in Linux, GDI
in Win32, etc...].

This sort of experience and forethought is what separates people like
me [real developers] from people like you [angry usenet trolls who act
like little kids].

Tom
 

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

Members online

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top