The use of the context-free grammars in linguistics often prompts comparison with programming languages (e.g., see this question). Despite the formal structure similarities, I would like to argue that they serve very different goals and structured accordingly: the programming languages are about processing data, whereas the natural languages are about transferring/communicating the data.
In more expanded terms: the programming languages are characterized by limited syntax and vocabulary which however permit creating very complex data processing algorithms. (See, e.g., this article for some minimalist programming languages.)
On the other hand, the natural languages possess very extended vocabularies, whereas their syntax is aimed at organizing information rather than processing it.
A more valid comparison is between the natural languages and the message encoding in information theory, where the syntax serves to communicate the largest amount of information using the smallest number of symbols with the smallest number of errors.
Do you know about noisy channel coding theorem formulated in terms of CFGs? (In the standard textbooks it is presented in terms of Markov chains, which are equivalent to Regular grammars, i.e. the lower level in Chomsky hierarchy.)
Note to moderators
You are within your rights to close this question. It would be kind of you to propose migrating it, rather than simply shutting it down. In my opinion the question is a) most likely to get answers in this community and b) presents interest for people with linguistics background - which is why I chose to post it here.