“As software engineers trained to turn ambiguity into absolute and fuzzy requirements into one’s and zero’s, we had a ‘eureka’ moment when we realized that our training had when we realized that our training had broader,real-world applications “ (Walter O’Brien)
We all know that the computer understands instruction given by us, what to do. It would be nice if we could tell the computer what we want as in science fiction movies, even if we could do also, our human language is full of ambiguity and imprecision.
Example: suppose if I say, I saw a bird on the tree branch with my telescope yesterday at 6 pm, Then how can a computer understand this, the computer doesn’t know what is a bird? who are you? what is 6 pm? , what is a tree branch? what is yesterday? where did you saw a bird? to express this simple sentence to a computer we have to actually create each word(bird, tree, telescope) into programming instruction, however our human language simple in a sense with help of common knowledge we share.
Human communication: we share a lot of common knowledge and experience so with little words you can communicate easily.
Human to computer communication: being human you have a lot of experience and common knowledge that computers won’t, so in order to communicate with the computer, you have to describe each element of the whole picture
The truth is human language communication contains common knowledge. which they share with each other but when it comes to the computer. the computer doesn’ have any common knowledge stored with it so that, it could directly understand us.
So the barrier between us and a programming language is the common knowledge and experience that we have.