2025-09-04 -- I'm glad that I know some C ========================================= I've been writing code in C for about 20 years now. Never as a profes- sional C programmer and I don't dare saying "I know C", because of the many pitfalls. But still, I've been using it for quite a while now and I think that I have a "good enough" grasp of it. There are many reasons why I like it. One of them came up today at work: *Sometimes*, one of our Python scripts would fail with "too many open files". I was able to debug this in a relatively short time thanks to C. I won't go into the details, it's boring. But the thing is: I could quickly write a little debug example in C. And since this is C, it a) is (relatively) low-level and b) (mostly) does exactly what you tell it to. The problem at hand had to do with dealing with file descriptors and I could be pretty sure that nothing in the C library/runtime gets in the way. When an FD is open, then it's open, end of discussion. There is no garbage collection or auto-cleanup or what- ever -- these things exist in other languages and they can make debug- ging hard at times. C is systems programming without anything getting in the way. Yes, it's error-prone and all that, but that's beside the point. My point is that C is a brilliant tool to help you understand what actually goes on behind the scenes. At the same time, it's still high-level enough as to not annoy you (unlike Assembler, for example). I often try to motivate our young interns to pick up C or even Assem- bler, but it's really tough. They're not that much interested. I have to admit, though, that I did not frame C as a tool for "learning" in the past. Maybe I should focus more on that. Maybe I should tell people: "If you learn this language and a bit of systems programming in general, then you will have a better understanding of virtually everything. You can still use your favorite scripting language to make your web apps."