Better languages exist for higher level functions such as communications and networks, scientific work, compilers, etc. I envisage that C has a place as a high level assembler that can be used to implement small pieces of code, where efficiency is of prime importance, on suitable platforms. Thus the use of C would be limited and well controlled, rather like small assembler routines are currently used in some systems. A programming language should embody the collective wisdom of common sense practices that have been learnt over many years, by common and painful experience. It fails to draw on the insights and progress made by many researchers.
C encourages gurus who spout false wisdom on obscure subjects.
C also encourages programming by guesswork. The view that correctness checks are training wheels for students, which gurus don't need must be dispelled. Many disciplines have techniques to ensure correctness. For example, the metronome in music is not just for stu dents, but will help an advanced musician ensure that the tempo of a piece is correct, and since playing with a metronome is more difficult it will help sharpen the musicians performance of the piece. The musician does not just view the metronome as an aid for beginners, or as something that restricts him to a set beat, but as a tool that helps produce a polished and professional performance.