First we need to ensure that everyone is competent in analytical reasoning and the ability to communicate clearly and accurately in human language.
I have bad news for you. Natural languages aren't any good at all for communicating clearly or accurately. Every single natural language is about nuance, and feelings, and innuendo, and multiple layers and multiple audiences and a whole host of dreck. Accurate descriptions of the world are not any part of natural language. Hence, mathematical language and programming language. We had to invent entirely artificial languages to even come close to your desire.
You are mistaken. Natural languages can be used to communicate clearly and accurately, as is unequivocally demonstrated by the global corpus of scientific papers. Furthermore, the global corpus of mathematical knowledge is by no means entirely, or even predominantly, in formal mathematical notation.
Natural language can also be used in the other ways you list, because it is much more expressive than mathematical language, which in turn is more expressive than programming languages. This is understood by mathematicians and scientists, and even by a majority of computer scientists, I believe.
This expressive power inevitably means there is considerable opportunity for abuse, or 'dreck' as you put it. This, combined with natural language's overarching importance, is why teaching how to use it properly is a priority.
So what's wrong with teaching programming, again?
Accurate communication depends not only on the sender's ability to state his intent clearly, but also the receiver's ability to understand clearly-expressed information. If you had that ability, you would have realized that my statement about priorities is not predicated on there being anything wrong in teaching programming. On the other hand, perhaps your failing here is in the area of analytical reasoning? This is an indication of why I have grouped the two together as a priority in education.