<rant>When I was first learning python, I came straight from C and my mind was completely blown away at how easy everything was, especially when doing math with different data types. I use python just for fun coding, but I still prefer C overall (not C++, not C#, just pure C) because its sorta…
The issue I have with C is the slow development time.
I learned to program in high level languages like Python, Ruby (which is even more fun than Python) and more recently Lua (which has a really great C API). All of them are dynamic, high-level, interpreted, pointer-lacking, garbage collected, languages. I’ve only recently started using C/C++. And I do like them both a lot. The extra speed and control is nice.
However, developing applications in C simply takes more lines of code than the other languages I’ve mentioned. That’s fine when I need the extra control or speed (i.e. graphics crap with OpenGL or OS Development), but I find most of the time I don’t need it. Why do I care about pointers if I’m writing a web app? Computers have gotten fast enough that there isn’t a notable difference between most programs written in C and those written in higher level languages.
Besides, if I want to have the raw power of a certain popular C library, there are probably bindings into a higher level scripting language. I’ve been happily developing a full fledged python game engine with PySDL2. No hacking around in C required.
Now, this is all coming from a non-C programmer who gets confused by it on a regular basis, and still just copies large chunks of C example code when it actually has to be written. Take it with a helping of salt. But I think that many times, the extra control C provides isn’t really needed. It’s like driving stick shift versus automatic. Stick shift gives you extra control, but does that extra control actually benefit most situations?