One year of C
I made that &#x27;reverse path&#x27; to C quite a while back, more than 10 years ago in fact. for 20 years before that, I was C++, C++, and C++. Then I gradually realised I was trying to slim down my use of the language, due to stuff I just didn&#x27;t want in the codebase I was working on.<p>Small details. Like well templates -- they were fantastically hard to track and debug at the time, and really, did they actually provide anything in the long run? Answer was... NO. they don&#x27;t. Turns out it&#x27;s a LOT easier to have 2 discrete functions <i>explicitly</i> doing the same thing than using a template. <i>anyone</i> will understand the scope of each if they see them; The arguments about &quot;simplicity&quot; doesn&#x27;t exist once you get templates involved.<p>So yes, you can &#x27;template&#x27; in C as well using the preprocessor, but it&#x27;s still ends up being MORE READABLE than a heap of scopeless C++.<p>One thing I was fond of in C++ were stacked based objects; ie, use the constructor to save some state, and use the destructor to restore it. I think it is a lovely concept, and I still miss it -- hover it&#x27;s a concept &#x27;new hires&#x27; had problems with very often -- it was not as intuitive as it felt. It turns out an <i>explicit</i> save&#x2F;restore is better to maintain. I wish it was different, but that got THAT feature of C++ out of the window.<p>Anyway, long story short, I wrote zillions of lines of C++, and now I just do C. I don&#x27;t have to fight with the compilers every other year for instance.<p>Small silly example, for a million years (it felt like it!) I could write pure virtual functions declarations as ..... int blah_blah_method(some cool parameter) = NULL; -- it actually made SENSE. Then one day, someone decided it couldn&#x27;t possibly be NULL -- it <i>had</i> to be zero as &#x27;0&#x27; or else, no compily.<p>^^ that is one just a silly old single example, but theres a dozen others where your 2 years old codebase suddenly isn&#x27;t compiling because someone decide to shift the language under your feet.<p>THAT doesn&#x27;t happen with C. C just <i>works</i>. yes, there&#x27;s lots of syntax sugar I WISH I would have been able to keep from C++, but ultimately, the possibility to write a huge pile of bloat is <i>a lot harder</i> in C than in C++. Some idiot &#x27;new hire&#x27; won&#x27;t make a hash objects for 5 elements.<p>Some idiot colleague won&#x27;t decide that the string creation class constructor shouldn&#x27;t take a reference, but a copy, making the app startup take 30 seconds with ONE character &#x27;&amp;&#x27; removal.<p>Anyway, rant over. Regardless of what the kids says, C is nice, C is lean, C is a LOT easier to keep clean as long as the adult people using it are aware of the sharp edges :-)