jacob navia said:
Keith said:
jacob navia said:
The way C is headed now is to extinction, and that is what most of the
"regulars" here actually want: a language that is so frozen in its
bugs that all reasonable software developers do not see it as an
alternative.
[...]
Why do you keep repeating this falsehood? Can you cite one single
article in which one of the "regulars" has expressed a desire for C to
become extinct?
The fact is, that C is completely disappearing from the surface of
the visible programming languages, faster than COBOL.
This doesn't actually matter as much as you seem to think. The point is
that C is a programmer's tool, but not the only tool by any means. When it
is the right tool for the job, people will use it for that job. When some
other tool is more appropriate, people will use that tool instead. There
is no requirement whatsoever for all tools to be able to do all things. In
fact, that's a disadvantage in some ways.
Look at the Swiss Army knife, for example, which has so many bits and bobs
that it's practically impossible to identify what they're all for. Now
look at some of the traditional tools in a craftsman's toolbox: tenon saw,
rip saw, chisels, mallet, oilstone, bradawl... lots of simple tools. We
don't ask a tenon saw to be a chisel, and we don't ask a bradawl to be an
oilstone. There is a definite advantage in simplicity, and C is presently
very simple.
Neither Microsoft nor gcc have implemented C99. And this is NOT because
C99 is bad, but because nobody gives a dam about C. Neither Microsoft
nor GNU gcc.
Microsoft claims that it is customer-driven, and that its customers are not
asking for C99. That is neither good nor bad. It's simply a fact (or
possibly a rock, according to Chris Dollin). So Microsoft's position is
that it would be a waste of money, brains and time to implement C99. And
they're probably right - hardly anyone is interested. C has four great
advantages: portability, power, speed, and simplicity. C99 isn't portable,
so nobody uses it. (And it might also be reasoned that it isn't portable
*because* nobody uses it - Catch-22.) For those who need portability,
power, speed, and simplicity, C90 already does what is required. And if
people need something that C90 can't do, they can use extensions for
particular platforms and isolate those extensions with an abstraction
layer.
C is used in some embedded systems, but they are switching more and
more to C++ because the embedded systems of today use powerful CPUs.
I don't know whether that is true. If it isn't true, it's irrelevant, but
if it *is* true, so what? People are allowed to choose what programming
languages they use, aren't they?
The C committee and this newsgroup in their frozen conservatism
enforce the idea that C is an obsolete solution for the programming
problems of today.
Well, I don't think C is obsolete. It is still the first language I turn to
for most programming tasks.
The obsolete C library is nowhere being improved,
You've seen what happens when a committee tries to improve a library -
everyone ignores the result. There are lots of C libraries out there to do
all kinds of fabulous things, and more are being written all the time.
functions like gets() will stay there for years and years still.
Others, no less dangerous, are still there: asctime() and many others.
Fine - so don't use 'em. End of problem.
C is associated with security flaws and buffer overflows because the
lack of a string type. C strings are a nightmare but nowhere is a
solution proposed.
Security flaws and buffer overflows happen because programs are written too
fast by people who don't understand the issues and who don't bother to
destruct-test their code. Bugs can happen in any language. As for C
strings being a nightmare, well, I don't lose any sleep over them. They're
a nice simple hack, and if I need something more robust, well, it's easy
to write - and many people have indeed written string libraries of their
own.
And (to come to the subject of this thread) try/catch, a construct used
in many programming languagtes is still only provided by some compilers
as an extension, and is not part of the language.
Right. If you want it to be part of the language, *all* you have to do is
get ISO to agree, and then get all the implementors to implement it. It
sounds simple but it isn't. In practice, your chances are very low. But
they are lower still if you spend all your time lobbying in a group like
this, which discusses the language that exists, not the language as you
would like it to be. I suggest raising the matter in comp.std.c instead.
This is of course part of the problem.
Yes - the problem is that these things are not part of the standard and not
provided by most implementations. If you want to change that, you have to
change the standard, and you can't change the standard *here*, because
almost nobody in this newsgroup has any influence over what is
standardised. If you want to convince ISO to change the language, you need
to talk to ISO.
By restricting all discussion to C89,
This newsgroup considers K&R C and C99 to be topical as well.
the regulars forbid any discussion of improvements to the language.
Nobody here has the power to forbid any discussion whatsoever on any topic
whatsoever. All they can do is express their opinion, just as you can
express yours. Nevertheless, the consensus of the group is that changes to
the language are best discussed in comp.std.c (although there *is* a
certain amount of sympathy here for the idea of discussing enhancements to
C).
To get the language changed, you have to do two things: (a) persuade ISO,
and (b) persuade the implementors as a whole.
To persuade ISO, you have to demonstrate that a widespread need exists for
the proposed change, and it will help your case if you have a reference
implementation that implements the change. So you are in a stronger
position than most to get the language changed, because you have your very
own implementation to muck about with.
To persuade implementors is much harder. The chances are good that several
implementors already have extensions that implement approximately what you
have in mind - probably, alas, all using slightly different syntax - and
so they're not going to be too ready to risk damage to their customer base
by changing the way things work.
Their attitude of destroying all
discussions tends to "prove" that nobody is interested in improving C,
Those who are interested in taking part in discussions directed at
improving the language are very likely to be reading comp.std.c, which is
the best newsgroup for discussing language improvements.
and that the C programmers are completely unaware of the language
problems.
It is at least partly to help people to gain awareness of language problems
that some of us read and contribute to this group.
It is precisely that it *could* be that we rely less on luck and
more in a better language design???
If you want to design a language better than C, that's wonderful. Go do it!
Nobody is stopping you. Once you have done so, why not form a newsgroup in
which to discuss that language?