> Was it Einstein who said, "Any scientist who cannot explain what they are doing to an eight year old is a charlatan"?
No. It's commonly attributed to Einstein, but of course he didn't say that, because he knew better. There are things you just can't explain at a certain level. For example Feynman couldn't explain to a layman how magnets work, but explained why not: https://www.youtube.com/watch?v=wMFPe-DwULM.
My point is that a good algorithm, a good strategy can give you a several orders of magnitude speedup, more than the speed differences among languages. If a higher level language makes it easier and faster to develop good algorithms, then you should use that. After that, if you have time or really need it, you can re-implement it in hand-coded assembly, or even in hardware. But you generally don't have the time and don't really need it.
"Undefined behavior" means "undefined by the language specification", but it is well defined by the compiler implementation. In other words, you never use the C language, always an implementation.
No. It's commonly attributed to Einstein, but of course he didn't say that, because he knew better. There are things you just can't explain at a certain level. For example Feynman couldn't explain to a layman how magnets work, but explained why not: https://www.youtube.com/watch?v=wMFPe-DwULM.