Paul N a écrit :
As no-one seems to have said it, I will - you do appear to be right
here.
You are keen to see the C language develop, and have proposed a number
of changes to the language, which you have discussed here vigorously.
As far as I can tell, no-one else here is in favour of major changes
to the language. (I may of course be wrong about this, particularly as
I don't read comp.std.c which I believe is the correct place for
formal discussions about such changes.) Most people here seem in
favour of either leaving the language exactly as it is, or of only a
bit of mild tinkering.
Not even the mild tinkering. I have often brought the example of the
asctime() function specification bug where an obvious overflow could
be avoided by dimensioning correctly a buffer or changing the specs
slightly.
I proposed (in comp.std.c) a change to the standard where a few lines
of code were modified.
Most people rejected the idea. asctime() overflows?
That's OK.
This seems to apply to everyone here - not just
"the regulars" but all the others who post here, regularly or not. I
don't recall seeing much discussion about why people are adverse to
change (though Richard H has said a little in response to your post
above). I presume it is that most people regard C as a "tight"
language, in which the source code can quickly and easily be converted
into compact, fast-running object code, and they worry that adding
extra "bells and whistles" to the language will detract from this.
Obviously you have a point here. But is this "performance" obsession
justified?
The overflow check that I proposed, for instance brings no measurable
change to the generated code and it will default to "off" so it is
not necessary to pay *anything* in performance terms to have this
optional feature.
Still, absolutely nothing.
If, on the other hand, you want to use some of the computer's power to
make life easier for the programmer (and why not? computers are a lot
bigger and faster than they used to be, there should be resources to
spare) and don't mind a bit of "bloat", then there are already
modifications to C that provide useful facilities, notably the
language C++, and people may feel that starting from there is better
than going back to C and striking out a new route from there.
The problem is that C++ took a route that has led to a language of
such a complexity that not even the creator of the language is able to
modify anything to it. See the "concepts" catastrophe when the
standards committee proposed to add some checking to template
arguments. Not even the creator of the language was able to develop
a solution within a few years time frame.
C, on the other hand, has retained its simplicity, what makes it a
better language because it is easier to learn and understand. My
proposed changes do not change anything in the language itself,
besides some syntactic sugar, or necessary "add-ons" like this overflow
proposal. The objective would be to make a language that is easier
to use (fewer "gotchas") but still simple and extremely fast.
The implementation of C I propose (and where I have implemented all the
changes) proves that it is possible to do it, and that the resulting
language is easier to use because the main problems like string handling
have been solved.
So I don't think you can expect much in the way of support from other
people in the newsgroup for any major changes to the language that you
propose, and neither can you expect the others to be producing
exciting changes in the language of their own.
Probably. What surprises me is that people (like thompson) that say that
a change would be *correct* and *necessary* (his words) answer in such
an emotional manner when asked to do the minimal effort of a proposal
to the committee.
The result is a committee that is in the same state of animated
suspension like many people in this group, and refuses to change
anything anywhere.
The end result is that C disappears from view. Most people now
think that C is an obsolete, dangerous language full of bugs.
And no, they do not even bother to write about it or to come here
to tell us that, they just do not care.
To put it with the words of Mr Glassborough:
"ACCU continues to have an interest in C but it is hard to demonstrate
that because people seem reluctant to write articles and reluctant to
propose C related presentations for its annual conference. "
Yes, nobody wants to be associated with something as obsolete as C.
This is not at all my opinion, and the reason I want to change things
is to preserve C as a valid language, and a valid option for programming
today.
Only by changing the language and proving it can evolve out of its
current mess (buffer overflows, bad string handling, obsolete library
etc) is there any chance of preserving it.
Probably the best you
can expect is for people to comment on your suggestions; and they are
doing so.
Well, maybe you are right and nothing can be done, C is already near
the grave anyway. I remember that troll that said (in this group) that
he was waiting for C programmers to die out. The average age here
is quite high, so no doubt if we go on like this just for a few years
there will be nobody left.
I hope this calms things down a little...
Paul.
Beyond this polemic however, is the sad fact that C is being destroyed
because is not allowed to evolve, both because the C++ people believe
they have created or are using a better language, and because the few
C programmers that are left cling to an absolute conservatism that makes
the problems of C even worse.