Teaching kids the basics of computer programming is a good idea for the same reason that teaching things such as maths and physics are a good idea: it teaches deeper truths.
Compare it to science classes; lots of people forgot stuff like F = ma, muckery with Huygens’ pendulums, and so forth. And that’s okay because what they usually don’t forget are the deeper lessons: that the world operates according to deterministic natural laws, that these laws can be discovered through careful observations and experiments, and that stuff doesn’t happen ‘because magic’.
These deeper lessons may sound obvious, but for most of human history people had very different ideas about that. I suspect that science and math lessons affect the daily lives of people quite a lot, even though many don’t seem to realize it. It helps teach you how to reason about the world and reality. It teaches you how to think.
The practical benefits of programming are often touted – and as a computer programmer I can only agree – but it seems to me that primary education shouldn’t be just about teaching marketable and “useful” knowledge. It’s about teaching kids a broad worldview, as well as exposing them to a lot of different things so they can discover what they like and are good at.
This, more than anything else, is why teaching kids the basics of computer programming is important.