I was a very early adopter of C . I started studying it in 1986, but I couldn’t get a compiler. I started using it around 1989. I inhaled every publication on the topic and became an acknowledged language lawyer. I wrote articles and columns for the C Report, and eventually became the editor-in-chief.
For over a decade, C was my language of choice. I like the initial batch of new features. I enjoyed multiple inheritance in 1992, and I thought the template syntax was a good idea.
I began to move away from C as the standard template library began to dominate. I did not like the direction that generics were taking the language. I much preferred dynamic polymorphism to compile time polymorphism. And I really didn’t like how the twisty little turns of the template syntax were contorting the language.
It has now been 30 years since I have done anything at all serious in C . I doubt I ever will again. Nowadays, if I want to get close to the metal, I use C.
I understand that many people still use and like the C , and that’s fine. I’m sure the language has a viable niche. But from my point of view, the language left me, I didn’t leave the language. It went in a direction that I didn’t want to go. I still have fond memories of those early years.
A similar thing happened to my attitude regarding Java, and C#. They both just got too big and unwieldy. I think that’s a function of standards committees.
So nowadays, when I need to write code, I try to pick a simple language like Clojure. Even the agents I use seem to prefer it.