R
Richard Heathfield
jacob navia said:
That's because the best place to post suggested improvements to the
language is the comp.std.c group. The comp.lang.c group deals with the
language as it is and was. The comp.std.c group deals with what the
language might become.
I do actually think that some of the C99 changes are for the better. For
example, compound literals are a good idea. But yes, portability is still
a big problem for C99.
Programming languages are not houses.
If you keep changing the language, you make it impossible (or unprofitable,
which can amount to the same thing) for implementors to keep in step with
the Standard. This has already happened with C99, and it's likely to
happen with any future changes to the language as well. That doesn't mean
that C should stagnate, but it does mean that developers who need to write
portable code will do well to avoid features that are not widely
implemented. So even if you do succeed in getting ISO to adopt your
changes, they are unlikely to be widely implemented or used.
It is precisely because C is so stable that I can continue to use a
compiler for many years and still be sure that the code I write will work
on implementations that I've never even heard of, but which other people
use regularly. I see that as a good thing.
That isn't what I said.
That isn't what I said.
That isn't what I said.
The engineering argument is simple: C is popular at least in part because
it is portable. Making many large changes to the language will make it
harder for implementors to keep up with the language, and so the features
you wish to add won't be used by those writing portable code. Those who
are happy to use non-portable code can *already* use extensions that
implement the changes you want to make.
I didn't say I thought it was a good thing. I said I didn't think it
mattered very much. C's future is secure.
C99 is too much change for *you* - the implementor. It's EIGHT YEARS since
C99 was published. How many conforming C99 implementations do we have?
Almost none, and even your own implementation doesn't conform to C99.
Programmers *can't* use the full range of features introduced by C99 if
they want their code to remain portable to your implementation (or to MS,
or to Borland, or to gcc...). And now you want to push the goalposts even
further away. That simply doesn't make sense.
<snip>
I have yet to see ANY proposal from the to improve ANYTHING.
That's because the best place to post suggested improvements to the
language is the comp.std.c group. The comp.lang.c group deals with the
language as it is and was. The comp.std.c group deals with what the
language might become.
Even the small improvements of C99 will be rejected (see the
countless posts of Heathfield about how bad C99 is, non portable
whatever)
I do actually think that some of the C99 changes are for the better. For
example, compound literals are a good idea. But yes, portability is still
a big problem for C99.
If you do not repair a house, it will break down and disappear.
Programming languages are not houses.
Programming languages (like all software) must be constantly kept up
to date, things that looked OK are not OK anymore in the ever changing
software environment of TODAY.
If you keep changing the language, you make it impossible (or unprofitable,
which can amount to the same thing) for implementors to keep in step with
the Standard. This has already happened with C99, and it's likely to
happen with any future changes to the language as well. That doesn't mean
that C should stagnate, but it does mean that developers who need to write
portable code will do well to avoid features that are not widely
implemented. So even if you do succeed in getting ISO to adopt your
changes, they are unlikely to be widely implemented or used.
If you insist in living in the past, you can freeze the language like
Heathfield, using a compiler from the last century and feeling clever
with it, like those homeowners that always postpone any repairs
until it is too late.
It is precisely because C is so stable that I can continue to use a
compiler for many years and still be sure that the code I write will work
on implementations that I've never even heard of, but which other people
use regularly. I see that as a good thing.
There is not a engineering argumentation anymore. Heathfield argues that
COBOL still gives you enough to make a living coding for old
applications somewhere.
That isn't what I said.
Obviously he thinks that C should go the same way,
That isn't what I said.
since
there is so much software written in C that until it disappears it will
take a while.
That isn't what I said.
But not the shadow of any engineering argument.
The engineering argument is simple: C is popular at least in part because
it is portable. Making many large changes to the language will make it
harder for implementors to keep up with the language, and so the features
you wish to add won't be used by those writing portable code. Those who
are happy to use non-portable code can *already* use extensions that
implement the changes you want to make.
Heathfield agrees that C is "less visible" and thinks it is a good
thing.
I didn't say I thought it was a good thing. I said I didn't think it
mattered very much. C's future is secure.
No. They are against ANY change. Even C99 is too much change for them.
C99 is too much change for *you* - the implementor. It's EIGHT YEARS since
C99 was published. How many conforming C99 implementations do we have?
Almost none, and even your own implementation doesn't conform to C99.
Programmers *can't* use the full range of features introduced by C99 if
they want their code to remain portable to your implementation (or to MS,
or to Borland, or to gcc...). And now you want to push the goalposts even
further away. That simply doesn't make sense.
<snip>