"If you would only learn to code in Rust, you wouldn't have to fix those bugs." To which Diogenes replied: "If you would only fix those bugs, you wouldn't need to learn to code in Rust."
By modern standards C is not a very good language.
Also the classic conflation of "not many features" with "simple".
At least WG14 is finally discussing a possible proper string type, sds style.
The one thing I could never enjoy in C after getting used to languages like php and python is string handling. It isn't just dangerous but very tedious, complex and lacking elegance. Lack of a native string type and string operators really sucks.
I like being able to do "hello "+"world".
Another pro the author didn't mention is how my crapy code from 10yrs ago still works today. Can't say that about rust, go, python or most modern languages. It really sucks how "planned obsolecence" has crept it's way into programming languages.
Cut me a break. In Go and Rust it's still easy to compile old code, and these languages have very strong backwards compatibility guarantees. You might need to compile it with a flag enabled, but it is going to compile and work.
Having the ability to improve on past language design mistakes over the years by deprecating old ways in favor of new ones is nice, and the burden of migration is generally minimal (or can be done automatically).