This is not the case for programming languages, because programming languages, even non-imperative ones, only have one mode: how to do something. They are not a way of describing the world. If I can't figure out the C++ code necessary to accomplish the task I want, that doesn't mean I can't imagine what that task is. Determining the task and figuring out how to code them are very different.
You probably won't be. I have observed a similar phenomenon when trying to imagine truly new things.
> If I can't figure out the C++ code necessary to accomplish the task I want, that doesn't mean I can't imagine what that task is.
If you can't figure it out in C++, but you could in (say) assembly (or Perl, or Python or whatever), then I would agree with that and would say I don't think that's an essential limitation of programming languages, and just that C++ is unfamiliar and byzantine.
But if you can't figure out the task in C++, but [believe] you could in [plain] English, I'd say you're just wrong: Whenever someone has told me "the ticket is perfectly clear" it most definitely was not. If your experiences are different, I'd like to hear about them.
I agree that programming languages and natural languages are different. That being said, programming languages do meet the definition of languages bc they communicate structured information.
Example: "if x < y { string z = `${x + 1}` } else { string z = `${y - 1}` }" . This short program communicates a structured piece of logic with clear meaning. It's not all encompassing, but then, neither is a English.