But for me, C feels like freedom.
I can build exactly what I want — small tools, secure utilities, no magic, no garbage collection, no telemetry.
Yes, I have to think harder about memory and safety. But that’s the point. I want to be close to the machine. I want to know what my code does, byte by byte.
Still, I find myself wondering:
Why do so many people seem to dislike C? Is it just because it doesn’t protect you from yourself? Or am I missing something that I’ll regret later?
I’d really appreciate honest thoughts — especially from those who moved away from C.
Thanks.
DamonHD•18h ago
My last big project was 100kloc C/C++ in a radiator valve though. Not many languages with a run-time would have fit in the 32kB code space for that project.
silentpuck•18h ago
For me it's not about "modern safety" — it's about knowing that every byte is mine. But yeah, I get the tradeoff when you’ve got teams, timelines and a JVM.
DamonHD•18h ago
silentpuck•18h ago
I’d honestly love to read more about setups like that — maybe in my quiet hours. Feels like something worth studying, even if I keep walking the C path for now.
PaulHoule•18h ago
I stick with C because (1) I'd have to figure out the tooling for 100% assembly development on AVR-8, and (2) C is portable to other platforms so if I want to migrate to an ARM or ESP-32 board it would be easy. (The upward migration path for AVR-8 is to go to a soft core on an FPGA but talk about frying pan to the fire)
silentpuck•18h ago
But then I’d cool down… and come back to it. Some languages just never “clicked” for me, but somehow I keep coming back to C.
DamonHD•17h ago
tuatoru•14h ago
With namespaces you can have globals and few collisions. At the expense of more typing, of course.
You do know about the "register" storage class/keyword, I am sure. Sometimes it works.
Edit - the tooling for AVR assembler seems to be avr-gcc and make. Check out Nerd Ralph's "ArduinoShrink" library for an example of blended C and assembler:
https://github.com/nerdralph/ArduinoShrink/tree/master