The correlation is indeed present, but should be understood this way:
Programming potential and linguistic aptitude both come from (a more fundamental) aptitude at reasoning.
Why? Because using a language (natural or computer) is a problem-solving task in itself. You need to organize and structure your thoughts in order to communicate them efficiently.
If someone's good at reasoning, it means they will likely be good at programming, and they will generally express themselves better than average.
Of course, there are exceptions, caused by many factors, such as personal interests, motivation, etc.
The correlation is indeed present, but should be understood this way: Programming potential and linguistic aptitude both come from (a more fundamental) aptitude at reasoning. Why? Because using a language (natural or computer) is a problem-solving task in itself. You need to organize and structure your thoughts in order to communicate them efficiently. If someone's good at reasoning, it means they will likely be good at programming, and they will generally express themselves better than average. Of course, there are exceptions, caused by many factors, such as personal interests, motivation, etc.