C is not memory-safe
C assumes you know what you are doing. If you do not, go back to
Pascal or
Basic and
learn how to program.
C cannot be garbage-collected efficiently
This is a
Good Thing(TM). Garbage collectors are for
lazy programmers.
C has poor support for dynamic data structures
So make them. C gives you basic, flexible data types. If you want something more complex,
build it.
C is weakly typed
Another
Good Thing(TM).
Data is
data, I should be able to do with it what I like. A
programming language should not
get in the way, if it does, it's little more than a
toy, as
Pascal is.
C is difficult to optimize
Good programmers should be able to
optimize better than a
compiler. As for anything else on this topic, I'll leave to those more
versed in
compiler design than I.