
Why is Golang popular in China? - signa11
http://herman.asia/why-is-go-popular-in-china
======
yinhm
The anwser is ECUG[1]: formerly Erlang China User Group to promoting Erlang
programming, now days changed itself to 'Effective Cloud User Group' for a
border definition.

ECUG is a online community also it host an annual ECUG conference. Golang was
first presented in ECUGConf2011 by xushiwei[2], he was building a dropbox
clone(qbox.com) in Golang, now qbox become qiniu.com which is the most
successful S3 clone in China.

In all the tech & media hype, those success stories, and the most important
reason: the Golang community itself, Golang passed its breaking point in China
and getting really popular.

[1] [http://www.ecug.org/](http://www.ecug.org/)

[2] [http://ecug.googlecode.com/svn/trunk/ecug-
con/2011/xushiwei/](http://ecug.googlecode.com/svn/trunk/ecug-
con/2011/xushiwei/)

~~~
laowushi
upvote.

------
fshen
Come from china, a golang user, for 2 years now.

golang.org and Google is blocked in china by government, so, Google trends and
golang.org traffic from China maybe miss leading.

Go is quite popular in china, the reasons can be:

1\. A few companies is based on Golang, like qiniu.com. 2\. More and more
companies are adopting Golang, since it's very powerful for writing network
servers. These companies are facing very fast traffic growth. Golang's
efficiency and expressiveness are well known. It just fills the gap. 3\. China
has many software developers spread in a few cities(Beijing, Shanhai,
Hangzhou, etc). News spread quite effective among them.

~~~
samuell
Ah, interesting! The rapid increase in traffic for Chinese sites easily makes
a lot of sense, when thinking about it!

With 1 billion users in a single language/culture, I guess successful sites
might indeed grow quite fast, right?

... and there, a compiled fast language is paramount, no? :)

~~~
fshen
compiled fast is quite helpful. The standard lib is a also +1, very useful for
network services.

------
liaoishere
I live in China, I think Go is becoming popular in China. Many Coders are
talking about it and compare Go with Erlang or C++. In fact there are lots of
debates in Chinese community about Go and Erlang such as this link
[http://www.zhihu.com/question/27465406](http://www.zhihu.com/question/27465406).
Also many programmers are talking about Go and Erlang in weibo -- a chinese
website that is similar to twitter. Finally, because of the Great Fire Wall
has blocked Google in China, we can't direct visit websites related to Google
include [http://golang.org](http://golang.org). So many programmers are tend
to visit the chinese version Go communities.

~~~
laowushi
是的。

~~~
Kiro
It means "Yes it is." according to Google Translate.

------
javajosh
Whoa wait a second, I feel like this is burying the lead: _you can write
native android apps in go_ [1]. I feel like that's a very big deal, especially
for game companies wanting native speed, and a 'modern' language and toolkit.

[1] E.g. [http://talks.golang.org/2014/gothamgo-
android.slide#1](http://talks.golang.org/2014/gothamgo-android.slide#1)

~~~
techtalsky
Thought it might interest you that the term is "burying the lede". One of
those weird terms like "champing at the bit" or "eke out a living" that uses a
word that sounds like a modern English word but is actually a slightly arcane
word. In this case lede is "the introductory section of a news story that is
intended to entice the reader to read the full story".

~~~
nvader
Now I'm curious. I've got 'lede' -> 'lead' and 'champing' -> 'chomping'.

What's the "modern" term in "eke out a living"?

~~~
nvader
Okay, I found it myself. Apparently the word confused for "eke" is "eek". But
their meanings are so different to me that I'm having trouble seeing it!

~~~
techtalsky
Well I always get a chuckle when I see people talking about 'eek'ing out a
living, but I kind of get it. Eek! can be an exclamation of alarm, so eeking
out a living would be just barely making it in a constant state of alarm. It
changes the meaning of the term but lets you use it in a contextually similar
way.

------
risent
Maybe github is more convinced, search _Go_ in github and filter by language
use go:
[https://github.com/search?l=Go&o=desc&q=go&s=stars&type=Repo...](https://github.com/search?l=Go&o=desc&q=go&s=stars&type=Repositories&utf8=%E2%9C%93)
. You will find half of popular repos (stars>3000) are created by Chinese
developer. And most of popular Go related project's document has complete
Chinese translation.

------
Mr_P
Could it be because golang supports unicode identifiers? For non-native
English speakers, it must be more difficult to program in ASCII-based
languages, right?

~~~
hamstergene
Certainly not for that reason. Actually, as a non-native English speaker, I
consider unicode identifiers one of the most useless features for a language.

There are reasons why unicode identifiers have never been widely used, and
probably will never be, even though they've been around for more than a
decade:

1\. You're unlikely to be allowed to use them. Unicode identifiers stagger
international collaboration. Do you want your Chinese colleague to commit some
hieroglyphical identifiers into your code, and then an Arabic colleague to add
right-to-left curvatures? I doubt that :) They are unwanted in outsourcing,
freelancing, open-source, any company which does foreign hire, they are a
problem when asking on StackOverflow, etc.

2\. There is just no problem to use English in the first place. Programmers
already use English every day. 80-100% of information (documentation, QA,
discussion forums) on any programming topic is in English; native-language
sources are lacking at best, often nonexistent. If person is a professional
programmer, it's way too late for them to have a couple of words translated.

3\. They are not as appealing as you might think. Many languages don't work
the same way as English. For example, in expression `print(line)` the word
`line` may have to have different morphological form than in `var line = ...`,
and yet another form for `if '_' in line`; one form for all uses is very
unnatural and requires getting used to (and if you're going to adjust anyway,
why not adjust to English then).

4\. Mixed-language text is simply harder to type when second alphabet is not
latin. It's like 3x harder when foreign words need to be inserted. I have even
seen colleagues discussing code in chat using English just for that reason.
And since at least language keywords and standard libraries are already using
English, mixed is what it gonna be. A person must have some real serious
trouble with English to tolerate that.

Even in strictly local projects where all comments are in native language,
unicode identifiers are rarely used.

P.S. When I was reading Swift book about unicode identifiers, I immediately
thought: "first paragraph of every Swift coding conventions on the planet is
going to be, don't use unicode identifiers".

~~~
gurkendoktor
I agree, but I think we live in an idealist bubble on Hacker News. Some of my
freelancing clients maintain a bit of (Unicode free) English-German code.

What would you do if you had to write one of the gazillion business software
systems we never see here on HN, and you had to codify boring terms like
Boolean rightToGiveExtraordinaryNoticeOfTermination (in any other language)?
The client/superior has not provided you with an English translation, and your
English is mediocre. I can see how non-English code is the least evil in this
situation.

I have also inherited outsourced code from Russia once and it had Russian
(cyrillic) comments above every English identifier, so apparently some people
don't mind switching between keyboard layouts while typing :)

~~~
patio11
There exist a lot of line-of-business Japanese applications which have methods
like getKamokuList and getKogaishaList, either because the company didn't have
a blessed translation for the noun or, in more than one instance in my career,
because two concepts which were distinct in Japanese would have caused a hash
collision when translated.

For example, if you do Japanese entrance exams, there exist two ways to say
"academic subject": 教科 and 科目. Both of them are most readily translated as
"subject", but the first is subject like mathematics is a subject, and the
second is a subject like Algebra II is a subject. Make sense? Great.

Rather than littering our code with getSubject and getSubSubject, which was
the cleanest English option available, we just went with the transliterations
straight in the source code, and said "Look, if we pay your salary, you're
going to learn the difference between kamoku and kyouka."

------
justinsb
Previous discussion on Reddit:
[http://www.reddit.com/r/golang/comments/23c7y0/why_is_golang...](http://www.reddit.com/r/golang/comments/23c7y0/why_is_golang_popular_in_china/)

------
seanmcdirmid
I live in china, and haven't heard anything about go being particularly
popular. It hasn't shown up on any intern resumes for systems research
positions yet.

------
eksurfus
It was mentioned at GopherCon that many developers use Windows in China.
Golang's ability to compile on Windows makes it a natural choice.

Most Chinese websites are built on the Windows platform [1]. Windows XP and
Windows 7 have a 60.7 percent and 33.4 percent market share respectively (94%
of the Chinese market) as of May 2014 [2].

[1] [https://www.quora.com/Why-do-so-many-Chinese-developers-
pref...](https://www.quora.com/Why-do-so-many-Chinese-developers-prefer-
Microsoft-Visual-C++-even-when-writing-non-Windows-specific-code)

[2] [http://www.zdnet.com/article/windows-os-replaceable-by-
chine...](http://www.zdnet.com/article/windows-os-replaceable-by-chinese-
counterparts/)

~~~
Someone1234
If it was primarily about Windows, wouldn't .Net or C++/Win32 be of more
interest? Microsoft has no official Go support as far as I know.

------
higherpurpose
> Dave Cheney pointed out on Reddit that he is under the impression that Go is
> popular in China for its usefulness in writing programs for rooted Android
> phones.

Interesting. It seems Go really is preferred to Java, if given the choice. I
hope Google seriously considers making Go the main programming language for
Android in the next few years. Other than having to rewrite all the old _and
new_ APIs (in parallel with the new releases) I assume it shouldn't cause too
many backwards compatibility issues now that they made apps compile to the
platform natively anyway, which I think should allow to rip out Java, once 95+
percent of the Android users are on Android 5 or later.

~~~
desdiv
>Go 1.4 is released [0]

>10 December 2014

>Today we announce Go 1.4, the fifth major stable release of Go...

>The most notable new feature in this release is official support for Android.
Using the support in the core and the libraries in the golang.org/x/mobile
repository, it is now possible to write simple Android apps using only Go
code. At this stage, the support libraries are _still nascent_ and _under
heavy development_. Early adopters should expect a bumpy ride, but we welcome
the community to get involved.

Emphasis mine.

I really don't think a beta feature that was released a month ago could have
affected the statistics.

[0] [https://blog.golang.org/go1.4](https://blog.golang.org/go1.4)

~~~
jaekwon
Well, they do _make_ the hardware over there -- maybe they're pretty
comfortable with beta software.

And besides, there was already some Android integration even before Google
announced it.

------
mc808
It could be that 'golang' is not popular enough for statistical comparisons to
be insightful. For a chuckle, look up 'golang' on Google Trends and then add
the second term 'perl'.

~~~
cnbuff410
Sure, and you can draw the conclusion that Perl is declining and Go is rising.

[http://www.google.com/trends/explore#q=%2Fm%2F09gbxjr%2C%20%...](http://www.google.com/trends/explore#q=%2Fm%2F09gbxjr%2C%20%2Fm%2F05zrn&cmpt=q&tz=)

~~~
bsdetector
Or you can conclude that the topics trends beta has a ton of work left to do
on it. For instance there's no way golang has more interest than Objective C
_and_ Swift put together, but that's what trends beta claims.

~~~
cnbuff410
How can you be so sure about it. First of all, Go is not generating more
interest than Obj-C[1]. Secondly, most searches regarding language still
happens inside the GFW(like on Baidu). So ya, trend search certainly doesn't
tell you the whole story about total usage, yet it still tells you part of the
story, which is the "trend" IMO.

1\.
[http://www.google.com/trends/explore#q=%2Fm%2F09gbxjr%2C%20%...](http://www.google.com/trends/explore#q=%2Fm%2F09gbxjr%2C%20%2Fm%2F05q31&cmpt=q&tz=)

------
olalonde
I recall reading a similar post about Node.js a few years ago. For what it's
worth, it might just be that China's programming community is growing (and
interacting more with the West). The Alexa map is actually not too dissimilar
from a population by country map.

If I had to hypothesise about golang in particular, I'd say it might have
something with Docker (Baidu is using Docker for its PaaS for example)
although it's difficult to say if the relationship is the other way around.

------
LiweiZ
Perhaps the large number of new graduates each year has something to do with
this. Also, internet is the industry that is on fire these years, which
attracts more and more young people. New workforce is always looking to a
better position to enter the market. That means they may focus on new techs on
upward trend more to try to have some kind of extra bonus to get into the job
market.

------
laowushi
文章还是没有解释为什么，只说了是什么。

~~~
madawan
Why are you speaking Chinese on an English newsboard?

It's not very polite to respond in a different language as the question,
especially when it cannot be presumed everyone will understand you.

~~~
erikb
I think in times of google translate that's not true anymore. Anyway it might
be the only way for him to respond. If you feel uncomfortable communicating in
Chinese I can completely understand that (I spend a year in China without many
previous Chinese skills) but it's not a huge problem if it just happens here
and there. Let him communicate to us this way. There are people here who can
speak Chinese to him back. And he seems to be able to read English, so you
don't have to use Chinese. :)

~~~
madawan
Et donc moi aussie je peux utiliser n'importe quelle langue? /s

Si on vas tous utiliser Google Translate, on va commencer à parler comme des
logiciels. Moi en faite je préfère parler avec des humains. On fait tous
l'effort.

~~~
marvelous
At least get the grammar right, please!

~~~
erikb
I think he might have just Google translated that and thereby ignored the
point that I wanted the reader to translate, not the writer.

------
dilipray
Wow, I saw India after US and China. Seriously, India? Never expected that
they would be so interested in Go Lang.

------
notemouse
golang.org is blocked by GFW in china, people must visit it through proxy
server outside china, so I think the visit statistic is not accurate.

------
dusklight
I really wish the main findings had been summarised in one paragraph at the
top of the article, instead of towards the end. All things considered it could
have been written a lot shorter and a lot clearer.

------
dschiptsov
Perhaps, because China doesn't have "enterprise" sweatshop industry and "Java
mass hysteria" and Golang is, well, actually good enough?

------
DominikR
One possible explanation would be that China has such a gigantic population.
Basically everything that is a niche there is a big community by our
standards.

------
stevenspins
Because chinese tends to use their stuff rather than what world shares!

------
etnl
people in china cannot visit google related site, include golang.org.LOL

~~~
erikb
And still they form one of the biggest user groups. Quite interesting, right?
If you have some Chinese programming friends it's probably not hard to get an
interpreter binary and the documentation in Chinese for your system of choice.
It's a good example that the public image and what actually happens is not
even expected to be the same in China.

------
k42030144
Because they do not understand erlang

~~~
laowushi
呵呵。

~~~
waitingkuo
Translation: laugh

~~~
erikb
Actual translation: haha ;)

~~~
discoverfly
alibaba has a group of people user erlang.

------
baby
I have a theory that it might be because of the Chinese game "go" that it
started to become popular in China.

~~~
w1ntermute
"Go" is actually the Japanese name for the game. In Chinese, it's called
"weiqi".

~~~
baby
Oh right... Well you just killed my theory.

~~~
erikb
If you just search for "go" it might still be true what you say. At least
Google is able to understand synonyms. So searching "go" and something in
Chinese might yield results with "weiqi" in it.

What really kills your theory is that "golang" is certainly not easy to
confuse with the board game.

