What's wrong with C? Essentially all the speed-critical code on your system (think: the kernel, stuff like openssl, libpng/libjpg, audio & video codecs, MySQL, PostgreSQL, ruby, perl, python, php, apache, nginx, memcached, ...) is written in C, and it works great.
There's a strange disease among modern application programmers where they seem not to be able to "see C" even when it's driving the very engines of their success. If you just look a tiny bit more deeply, you'll discover that it's not nearly as hard as you think it is.
Mostly ignorance of the rant authors :) In fact, one way to view C++ is as a beefed up C. Specifically a moderate use of the following simplifies life quite a bit and retains almost all benefits of C -
* templates instead of macros
* pure classes for the callbacks instead of function pointers with void pointer contexts
* standard inline functions
* STL containers (not perfect from memory utilization and perspective, but typically are ok)
Exceptions can also come handy, but these require a lot of moderation if used in a fastpath code.
What's wrong with C? Essentially all the speed-critical code on your system (think: the kernel, stuff like openssl, libpng/libjpg, audio & video codecs, MySQL, PostgreSQL, ruby, perl, python, php, apache, nginx, memcached, ...) is written in C, and it works great.
Everything you've mentioned has crashed on me from time to time due to memory allocation errors. C is not a great langauge. It is assembly langauge with sugary syntax for loops, and a preprocessor that whines if you try to add a double and an integer.
The advantage is speed. The disadvantage is that programs written in C are only correct due to luck.
Oh, and the reason all of the above are written in C is because there is a common misconception that you have to write "system software" in C. You don't but people think you do. So they do.
I'm not following. The discussion is about C++, which shares the same heap management as C, so I don't see what you are trying to say here.
And I'll be frank: the hubris in your discounting the programming skills and choices of all of those working, mature, robust and very successful projects is just absolutely stunning. Have you ever delivered anything of comparable quality? Until you have, please don't condescend to tell Guido or Linus or Larry how to write their code. I'll submit that these projects are written in C because their rather talented authors see something in that environment that you don't. And that the fact that you don't see value in an environment that is undeniably producing valuable software says more about you than it does about them.
I'm not following. The discussion is about C++, which shares the same heap management as C, so I don't see what you are trying to say here.
You were the one who brought up C. But basically, all languages that require manual memory management fall into the category of "you probably shouldn't use them". Memory management is too hard for people to get right. Computers are much better at that tedious task. (As an aside, it is interesting that it's easier to write a generic memory manager than to remember to do it right every time yourself. Programming is an interesting art.)
Until you have, please don't condescend to tell Guido or Linus or Larry how to write their code.
Honestly, this is a bad example. When Python and Perl were started, there was no other option for writing a language that would run on UNIX. UNIX software was written in either C or shell. Now that Perl and Python exist, they are much better choices than C for almost any class of problem. That's why they were written. If Guido and Larry actually wanted to use C for everything, they wouldn't have needed to write their own languages.
BTW, the Perl6 implementation written with Haskell came together in about a weekend, while the C implementation is about as complete after 5-or-so years. C is a pain.
Finally, I find it condescending that you want to throw away the last 40 years of programming language research because UNIX is written in C. Remember the Lisp machines? It's a shame that UNIX lost out to them, because it was much easier to write software (and libraries) in Lisp than in C. Oh well, at least we have emacs.
C has its purpose, but its purpose is not for writing programming languages, web servers, or desktop applications.
There's a strange disease among modern application programmers where they seem not to be able to "see C" even when it's driving the very engines of their success. If you just look a tiny bit more deeply, you'll discover that it's not nearly as hard as you think it is.