English is a context-free language (more or less).
English has a great deal of ambiguity, compared to programming languages. By restricting the language to an English subset for a particular application domain, English I/O can be made quite tractable.
Some users may prefer an English-like interface to a more formal language.
Of course, the best way to process English is in Lisp.