C is obsolete
To begin, I am talking only about the particular language C itself, not anything from the C-family. Also, even though a large amount of people use C, that not make it not obsolete, in my definition of obsolete. I define obsolete as in for everything that C is generally used for, there are languages that better support what that language is designed for. An example is string-handling, something C is abysmal at. Perl handles it better, so for anything that is heavily reliable on strings, use Perl instead of C. I'll be focusing on what C was originally designed to do and then what it is *now* implemented for.
ORIGINAL
Easy to read: Well, at that time in the late 1960s early 1970s, when FORTRAN and ASSEMBLY where the only languages to go, it was very easy to not only read but to write code in. But in the 21st century, it's very obvious that there are better languages to write programs for the sake of easiness. There isn't very much else to say.
Memory management: With the introduction of unique_ptrs in C++11 which de-allocate themselves when they get out of scope, and if speed is not an issue for garbage collected languages, this is obviously a very bad choice. There is just so much potential for memory leaks that C is very difficult to manage memory.
NEW
Speed: C is considered, "To the metal" as in very, very fast. But take a look at this http://benchmarksgame.alioth.debian.org/u64q/c.php. The graph basically states that for anything very simplistic, C is faster than C++. But, for anything that requires complex structures and OO to be good, C++ is obviously the better choice, most of the stuff that really NEEDS speed would go with C++ or anything similar
Legacy systems/programs: Apparently there are systems that can only compile C. I find that very hard to believe, possibly for something that is very outdated, and this is probably the only reason as to why C is used, but not many people are going to be working on a system that can only compile C. And even then you could write a compiler that could compile other languages. Now there are programs written in C and have invested years in noto writing that program in C, so there is obviously no choice but to continue writing it in C. COBOL has the same problem.
So, as you see, C is obsolete (by my definition)
ORIGINAL
Easy to read: Well, at that time in the late 1960s early 1970s, when FORTRAN and ASSEMBLY where the only languages to go, it was very easy to not only read but to write code in. But in the 21st century, it's very obvious that there are better languages to write programs for the sake of easiness. There isn't very much else to say.
Memory management: With the introduction of unique_ptrs in C++11 which de-allocate themselves when they get out of scope, and if speed is not an issue for garbage collected languages, this is obviously a very bad choice. There is just so much potential for memory leaks that C is very difficult to manage memory.
NEW
Speed: C is considered, "To the metal" as in very, very fast. But take a look at this http://benchmarksgame.alioth.debian.org/u64q/c.php. The graph basically states that for anything very simplistic, C is faster than C++. But, for anything that requires complex structures and OO to be good, C++ is obviously the better choice, most of the stuff that really NEEDS speed would go with C++ or anything similar
Legacy systems/programs: Apparently there are systems that can only compile C. I find that very hard to believe, possibly for something that is very outdated, and this is probably the only reason as to why C is used, but not many people are going to be working on a system that can only compile C. And even then you could write a compiler that could compile other languages. Now there are programs written in C and have invested years in noto writing that program in C, so there is obviously no choice but to continue writing it in C. COBOL has the same problem.
So, as you see, C is obsolete (by my definition)