C is not modern programming. Even in 1974, C was a devolution on programming languages. C is a primitive coding language. Not only was it a quick and dirty development full of flaws that lacked pragmatic thinking to avoid potential traps, but it was not developed to support the process of programming and project organisation. These are the hallmarks of modern languages (at least since the 1960s).
Those features of modern programming are not 'training wheels for beginners', 'crutches for weak programmers' or the other trite platitudes that the C cult puts around. Yes, they appeal to programmer ego, but it is taking programmers for fools.
Not only that, but C burdens programmers with many details that other languages and compilers take care of — like all the awful pointer referencing and dereferencing.
Why Pointers are Wrong
From the logical programming point of view:
https://www.quora.com/Why-is-it-hard-to-understand-pointers-in-programming/answer/Ian-Joyner-1
From the physical implementation view.
Pointers weren't even invented in C. They were Christopher Strachey's mistake. Dennis Ritchie was not a language designer, he was a programmer and compiler writer. Here is the history of C:
https://www.theregister.com/2020/05/15/algol_60_at_60/
"ALGOL 60 also heavily influenced the Combined Programming Language (CPL), developed in the 1960s but not implemented until the following decade. CPL in turn led to Basic CPL (BCPL), from which B descended. The B language was further developed to become C."
"If you're going to be a hacker, learning C is a rite of passage."
We should not be hackers, but professional programmers. That age should be dead. C keeps it alive. And if C is a right of passage, it is circumcision for the brain.
"avoiding 'include hell'"
#include is one of those primitive mechanisms in C.
"C offers unparalleled control over system resources, making it a powerful choice for high-performance."
Control over system resources is why C is so insecure. The operating system must protect itself, its resources, its users, and owners. Yes it is why hackers love C — they can undermine your system. We must get programmers out of this view that they own the machine they write software for.
Performance is far too over-emphasised by C people.
https://medium.com/@ianjoyner/programming-languages-are-more-than-just-performance-b9fbfbcc798a
"Safeguard Arrays with Bounds Checking"
That is because C cheats on performance by not doing sanity checks that other languages do. This is not "holding the programmer's hand", it is essential correctness and security checking. By the time the programmer has done all that, performance is more than traded away.
"Handling Strings Without Terminators"
C does strings the worst possible way with null terminators.
"Debug with modern tools."
These are mostly afterthought things in C, making up for C deficiencies.
C burdens the programmer in more ways:
C holds system architecture back in other ways:
https://queue.acm.org/detail.cfm?id=3212479
Alan Perlis (first recipient of the ACM Turing Award for computing): "A programming language is low level when its programs require attention to the irrelevant. While, yes, this definition applies to C, it does not capture what people desire in a low-level language."
C was always a devolution on where programming was headed in the 1960s:
https://www.quora.com/What-is-the-highest-level-language/answer/Ian-Joyner-1
https://medium.com/@ianjoyner/c-is-an-old-primitive-and-flawed-systems-coding-language-20d449290208
In the end, teaching programmers C, far too much time is spent teaching the deficiencies and how to get around them. Then on-the-job time is wasted handling all these things that should not be in modern programming.
That is why C is NOT modern programming, never has been, and never will be. And C++ hacking modern notions of classes and inheritance into C just magnifies the problems. C++ was always a bad idea.
C++ is a thin veneer of syntactic OO:
https://www.quora.com/Is-C-pure-OOP-or-not/answer/Ian-Joyner-1
The thinking behind C++ is wrong.
https://medium.com/@ianjoyner/e1ea529bcf60
https://medium.com/@ianjoyner/the-mastermind-of-c-or-part-1-3e557fc1da0b