The problem is that language is not precise, pretty much by evolved design. I totally get the desire for a language with maximum precision and lack of ambiguity, but no one has ever been able to do that successfully.
I think it's reasonable to wonder if its even possible.
One thing that feeds into it, and is due to the poor way we teach language, is that people think that dictionaries prescribe how we should use language. But that's not what dictionaries are.
Dictionaries are descriptive, recording how people are using language.
This is a very important distinction.
Instead of trying to remove the possibility of ambiguity from language, we should instead focus on gaining the skills to reduce ambiguity through discourse, which we are extremely bad at.
As programmer's I think we are specifically enclined to attempts of formalizing natural language into something precise and reducing it to syntax and semantics.
Yet like you say, natural language is imprecise. And the more I think about how much of a bodge the way we communicate is, the more impressed I am we can have conversations at all. All those layers of indirection, wtf?
But of course for almost every layer of indirection there is a safety net, that assures the meaning of what is said is passed on: If I mumble, my body language will help you figure out what I'm trying to say. If write gbbrsh sntce, context make you understand. And if you can't hear me, you can probably make out what I'm saying by lip reading.
I think it's reasonable to wonder if its even possible.
One thing that feeds into it, and is due to the poor way we teach language, is that people think that dictionaries prescribe how we should use language. But that's not what dictionaries are.
Dictionaries are descriptive, recording how people are using language.
This is a very important distinction.
Instead of trying to remove the possibility of ambiguity from language, we should instead focus on gaining the skills to reduce ambiguity through discourse, which we are extremely bad at.