"Japanese programmers don't know English."
This is a fact. Sure, there are few exceptions. But I can safely say almost all Japanese programmers don't know English.
Why is it? Why we don't know English? How could that even be possible? How can we learn programming without knowing any English.
Why? Because we don't need to. How? Because there are enough Japanese translations.
In the world of programming, English is the first class citizen. Any other languages are secondary. I don't argue with that. It's a fact.
But we have translations. Almost all English programming books are translated to Japanese. It's not just books. Standards, documents and every interesting text in the internet are translated to Japanese. If you google for it. There is a high chance it has been already translated by man(not machine).
Because of this, we don't need to learn English just to learn programming. Of course, if one want to be the best programmer, he or she still have to learn English. But you don't need to be the best programmer. Actually, you can't be the best programmer. It's a simple fact that you can't master all. There is always better programmer than you for some domains. What we need is good programmers. Because we have enough Japanese translations, we can learn most of the stuff in Japanese.
Now, you may wonder like this. "But programming language is based on English. Writing a code means writing an English. same applies for reading. isn't it?"
That's not what we do. We are dealing with programming language, not English. When we read fopen, we don't think "It's a function which open a file". We think ファイルを開く関数(a function which opens a file). We don't recognize f stands for file and open means, well "open". We think "fopen" as some kind of identifier and whatever that means it opens a file in Japanese. Likewise, when we write variable name such as file, we don't recognize it as "file". We think ファイル(file).
It's just same you guys use Japanese words like samurai, ninja and hentai without understanding its true meaning. Just because you use these words doesn't mean you understand Japanese. You don't even know what it really means. Most samurais were doing boring jobs that is equivalent to current office job. Reading, Writing and computing. Ninja doesn't ware black clothes and they weren't super athletes. They were spys. Their job was same with modern spy. Obtaining informations and propaganda. Hentai does NOT mean porn anime and manga. It's more generic word. It may be translated to naughty or dirty.
Japan is a interesting country. In 1867, Edo bakufu(a feudal government at that time, they banned forign culture Sakoku) gave up and returned its rights to the Tenno(They got rights to govern the Japan in 1603 from Tenno.) After that, we were eager to learn western knowledge. We built many western style buildings made by bricks(most western style buildings were destoryed by earthquake, notably 1923 Great Kantō earthquake. Earthquake is the reason our ancestor never built a house made by brick.)
Well, enough of history. The point is, many western technologies were far superior than ours at that time. We had to learn fast to keep up with them. Or else, we ended up to be invaded and become a colony of western countries. We had to avoid that. The only way to prevent that is learn.
In order to learn western knowledge, it's obvious we need to read western languages. Of course, the smartest people learned it. The most interesting thing is they translated it to Japanese. So all Japanese could read it. Did you know that the Japan's literacy rate was really high even at that time. I think we made so many translation because of the high literacy rate. If literacy rate was low, we didn't need to translate it to our language.
Even today, we translate most of the forign books. I think the biggest reason Japanese can't use English is, just because we don't need to. We have translations. That's enough for becoming a good programmer.
I don't know how long we can keep doing this. We need a common language and English is the best candidate whether we like it or not. Eventually, minor languages will slowly fade away. I think Japanese language survives. Well at least I hope so.