Yes. C is frozen forever. But that doesn't matter since we have
C++.
Languages such as C++, Java, C#, scripting languages, and many others,
have tended to narrow the range of applications programmed in C. It
seems unlikely to me that any large scale development organization
would start a brand new application with 100K or more LOC in C today.
So be it, there are two application areas where C still reigns.
The first is the one it was originally designed for, system
programming. You will get flamed in C++ groups if you suggest that
one couldn't completely rewrite UNIX or even Windows completely in
C++, but in the real world C is the language in which operating
systems are written.
The second is one that Brian Kernighan probably never gave much
thought to, embedded systems. Not too surprising, when you put it in
historical perspective. The earliest versions of C preceded the Intel
8080, the first true microprocessor, by several years.
The single largest category of processors in existence are those in
cell phones, mostly ARM derivatives of one sort or another. The
execute code written in C, and applications written in Java. The
earlier versions used a software JVM written in C. Newer ARM versions
actually have a hardware partial JVM, so only part of the Java is
executed by an interpreter written in C.
All new developments are done in C++, and there is no way out.
This is so absurd, the real problem is that you don't have the
faintest idea of 90% or more of the development in C. Despite your
constant complaints of the narrow vision of the C community, or at
least of the regulars in comp.lang.c, you completely fail to realize
that most of the C development happening today has nothing at all to
do with desktop computers.
If you reworded your statement above as, "All new desktop application
developments are done in C++", it would still be wrong. Do some
research, I think you will find that in total the use of Java, C#,
managed C++, Ruby on Rails, and a few others greatly out weigh the use
of C++.
On the other hand, if you said, "Almost no new desktop developments
are done in C", I would say you are absolutely correct.
The vast majority of C development these days is not in desktops or
servers, not even in hosted environments at all, and note that an OS
kernel is generally not itself a hosted environment, although it
provides a hosted environment to applications running on it.
In fact, a large percentage of C development these days is done on
non-conforming implementations that only implement part of the
language. Most implementations for 8-bit targets do not provide
floating point types at all, or only a single precision type. Most
16-bit implementations, and even some 32-bit implementations, don't
support a floating point type that meets the minimum requirements for
a double.
You are carrying on here about extending C, making it a bigger and
more powerful language, and complaining that posters here are not very
sympathetic to your aims.
But you're not even talking to the audience that is paying real money
for new C compilers today.
Go ask on groups like comp.arch.embedded, comp.sys.arm, and comp.dsp,
and see if the C programmers in that group would place a high value on
extending C with operator and function overloading.
Each time somebody tries to improve C, the proponents of
"The better C" will keep things as they are.
There are advantages to keeping the language small, simple, and
efficient. There are many other languages, many of them more complex
and more feature rich. Why do you think C needs to emulate their
features? Why not pick a language for a task that has the best match
of features?
The committee has stated the same view that you say:
C is dead. No new developments, corrections, whatever
until 2019. Then, C will be well forgotten.
Can you provide a link to a statement to this effect from any member
of the committee?
I am trying precisely to do the opposite.
No, you are trying to add features to C. Whether or not your
particular choice of features are improvements is a matter of your
opinion.
I think C is a language that needs small changes but is
basically sound. Lcc-win32 is the only *C* compiler being
developed now. All others are C++ compilers that happen
to compile C. That is why C99 failed: the compiler writers
do not see any C market since all C programmers should be
doing C++.
Indeed, there are many small changes that could be made to improve C,
not just a few. The question is whether or not the particular
extensions that you propose are among those "small changes". At a
philosophical level, there are differences between "improvements" and
"extensions".
As for your statement "Lcc-win32 is the only *C* compiler being
developed now", see
http://www.christian-heffner.de/ The most recent
release of Pelles C was April 4, 2007.
C99 has been ignored by gcc and Microsoft because both organizations
promote C++, that, as everybody should know by now, is THE
BETTER C!
This is quite poor logic on you part, and some gross inaccuracies.
Microsoft is most specifically not promoting C++ these days, they are
promoting C# and preferring, if C++ must be used at all, that one use
their "Managed C++", an abomination that they rammed into an ISO
standard through a back door, the same one they are trying to use now
to define their own proprietary "open standard" document format.
The logical fall icy is the unfounded leap to from the fact that the C
community is suspicious of one person's ideas of additions to the
language to the conclusion that the C community, or anyone else other
than the C++ community, maintains that C++ is a better C.
Personally, I like the fact that you provide your compiler for free
download and use, and I have installed and used various versions over
time. And it is an excellent way to try out proposed
changes/extensions/additions to the language, for later proposal for
inclusion to the standard. Proposals with actual working
implementations stand a much better chance of serious consideration.
But it is not gracious, at the very least, to launch tirades at those
who don't share your vision for the direction that future extensions
should move C.
--
Jack Klein
Home:
http://JK-Technology.Com
FAQs for
comp.lang.c
http://c-faq.com/
comp.lang.c++
http://www.parashift.com/c++-faq-lite/
alt.comp.lang.learn.c-c++
http://www.club.cc.cmu.edu/~ajo/docs/FAQ-acllc.html