Douglas said:
Thanks. I was hoping for a misunderstanding.
I said that *much* new development ought
to be done in higher-level languages. (In fact, it often is.)
That means that the potential benefit of new facilities for such
applications is diminished.
I doubt that you did.
My opinion, based on considerable experience in this area, is that
C remains the best choice for much "systems implementation" work,
but that it is more cost-effective to use other, higher-level
languages for many "applications".
My opinion is based on the success of the lcc-win32 compiler.
This implementation of C99 under windows has been an enormous
success. In august this year we passed the benchmark of half a million
downloads, since we setup those counters, approximately 1 to 2
years ago.
We have many universities and schools that use lcc-win for
their introduction to programming.
Why?
Because in the bloated desktop environment of today, lcc-win
is just 5MB, installs in less than a minute, and can be
installed in 30 machines for a class in no time. People
like simple stuff, software that doesn't take ages to install,
that is simple to use.
That is why I am convinced that C is not only for systems programming
But even if we would accept your viewpoint, systems programmers
do need to use stacks, lists, hash tables, and many other
common data structures.
In my C consulting, as I explained you in my messages, I find at
each project the same software for linked lists and hash tables
rewritten from scratch and adapted to the particular project.
It is not that I do not know how to build a reusable one, but it is
the fact that if I bring MY list library I will have to change
the customer's software since he uses a slightly different one.
This is the crucial point that you never address:
It is not the difficulty if writing this small routines. It is the
fact that each one of us must write one, and there is no
CONSENSUS AS TO A COMMON INTERFACE, what would save us so much
WORK.
The standards body has a crucial role here and that is why this
dicussion is important here!
If the standards body proposes a COMMON list handling and
hash table handling INTERFACE, we would not need to write
at each project those routines again. This would of course
simplify systems programming, since a better tested
set of routines could be used either bought from some
software provider or used from the compiler library.
[snip]
It is (in my opinion) a mistake to try to push C (in any variant)
as a general solution for all programming problems. It's a
good choice for the systems programming that it was designed for,
although it still has deficiencies even for that. I would rather
the time spent discussing directions for C concentrate more on
remedies for its remaining deficiencies for systems work than on
trying to support applications where there are better choices.
Systems programmers use hash tables, lists stacks and many other data
structures. Making a common interface for those would simplify
their work.