No idea about China, but India... Sigh.
They are amazingly good at twisting statistics to say what they want them to mean. The prime example of this is call centres. They seem to get through many more calls than local call centres, and with a great success rate. The trouble is, the customer actually comes away without their problem solved and either has to make more calls, or gives up completely. So the call was completely useless and, whilst the stats show it as successful, it was just a waste of money.
It isn't just a language divide but a cultural one too. Which is irrelevant for the actual abstract code, but 99% of programming isn't the actual code, but the [-]design[/-] of the software. In my experience, most of the code written in India is hacked together at best, and horrendous to maintain. Don't forget, these outsourcing companies are out to extract as much money as possible for as little work as possible from the cheapest workers.