English is the de facto standard skill for programmers. People use English for communicating, filing tickets, contacting tech support, documentation, and code comments.
Importantly, most open-source software is driven by English-speaking community. I still observe some exceptions, for example, technologies/ecosystems behind the Chinese firewalled Internet. They use Chinese, because those are explicitly targeted to Chinese users.
Basically, I don't want to use software written in non-English language, because I feel like they saying "We don't respect the de facto standard skills."
I mentioned Chinese Internet, so let's take a look at their actual code.
int64_t current_term_; /// 当前term std::string voted_for_; /// 当前term下投的票 LogDB* log_db_; /// log持久存储 int64_t log_index_; /// 上一条log的index int64_t log_term_; /// 上一条log的term
I am simply so surprised by these code comments, written in Chinese. My point is, this project is not a hobby project uploaded by some anonymous students. This is a huge framework developed by a huge company (Baidu Inc. is the #1 internet search engine in China).
Let me explain this code a bit more. Take a look at the second line,
std::string voted_for_; /// 当前term下投的票
What does this variable mean?
Well... the variable's named "voted for", so it should be containing the target's name as a string. Now take a look at the comment:
If you have some experience with wild source codes, you may have noticed the word
term inside the comment. This is acutually an important hint; the
voted_for_ variable actually refers to the vote target, voted under the "current term" on the previous line.
Well, you could guess this real meaning without knowing any Chinese, but if you didn't know the fact that
the vote cast under the current term, it'd be really hard.
I live in Japan. This section is based on my personal experience. Includes daily observations on Japanese Twitter timeline.
Japan have been historically allergic to foreign culture. Japanese people have even isolated their entire country from the world, since AD 1639 to 1854 (see https://en.wikipedia.org/wiki/Sakoku).
The poor English skills of Japanese people are mostly based on this "I fear foreign culture" stuff. We do have English included in compulsory education, but we just don't speak English in real life (because everything is written in Japanese & that being "so normal").
Japanese programmers are not exceptions. This 'poor English skill' have been a problem since the beginning of the Internet, but this issue is becoming more and more problematic, thanks to the rise of open-source software.
Some famous Japanese tech companies are willing to solve this problem. Rakuten Inc., one of the most popular online shopping infra, have set English to their official company language. This event was called "Englishnization" (you can see this on their official company site https://corp.rakuten.co.jp/careers/culture/).
The "Englishnization" have failed, obviously (as you can see, their company site is written in Japanese). This failure was so ironic that even normal Japanese people (i.e. non-programmers) mention about their failure.
Japanese people talk about this 'poor English skill' issue so much. Maybe too much. On Twitter, I see some random Japanese person saying 'Japanese programmers suck because they have poor English skills.' Those tweets are being quickly spread around programmers; eventually receiving more than 2k retweets / likes.
Is this situation 'normal' outside Japan? How about your country? How do English-speaking countries think about this issue?
One of the most consolidated misconceptions about programming, since the early days, is the idea that such activity is purely technical, completely exact in nature, like Math and Physics. Computation is exact, but programming is not.