Computers Are The Future, But Does Everyone Need To Code?
npr.org
npr.org
Much like we teach subjects such as history and biology without the expectation every student will become a historian or biologist (or have a practical use for what they learned in those classes), we should teach programming for the indirect (not sure that's the best word) benefits. It's a different way to think and to view things (abstraction), it teaches problem solving skills (debugging), good learning habits (what to commit to memory and what to know you can look up), and attention to detail (wow, missing a semicolon did that!).
I've seen elementary school kids mess around in Scratch and (without necessarily knowing this is what professionals call these concepts) they are learning about basic program flow, iterators, conditionals, event handlers, Cartesian coordinate systems, etc. Not to mention basic literacy, such as how to type, use the mouse, drawing sprites, recording audio, what it means to "save" versus "save as..." etc.
At the end of the day this is literacy, and just like music class doesn't make everybody Mozart, programming class won't make everybody Knuth or Stroustrup. But it's still worth doing because everybody deserves to understand how to think about and interact with the world around them.