Why is Golang popular in China?
herman.asia
herman.asia
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.
[2] http://ecug.googlecode.com/svn/trunk/ecug-con/2011/xushiwei/
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.
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? :)
I hoping Erlang >___<.
[1] E.g. http://talks.golang.org/2014/gothamgo-android.slide#1
What's the "modern" term in "eke out a living"?
Non-English identifiers can be quite troublesome in international projects. Even if your project currently isn't, it might be in a few years. It's a maintenance nightmare waiting to happen.
While using in Chinese in comments might be very common, I rarely seem people using non-English identifier in actual code. If such behavior being caught on sight, I am pretty sure it will be flawed upon and be treated as evidence of being unprofessional.
http://www.dcothai.com/download/lowkey.gif
http://upload.wikimedia.org/wikipedia/commons/2/20/Keyboard_...
I don't think the existence of sentient life outside of the US is common knowledge in Silicon Valley.
I'm from a non English speaking nation and I originally used an non-standard US layout, although I changed to US layout when I realized doing otherwise was an exercise in futility.
(Luckily German has only 7 additional codepoints compared to ASCII).
For example, "myFile" in Chinese is "我的文件", and you have to enter the following key strokes in order to enter it: Ctrl+Spacebar, wo de wen jian, Ctrl+Spacebar.
I guess you can see the overhead.
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".
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 :)
The feeling was very much that this was political far more than an aid to the programmers, although of course that was the English-speakers perspective! But it did make working with the code (which was a mess anyway) far more complicated.
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."
http://www.globalnerdy.com/wordpress/wp-content/uploads/2014...
(And yes, that compiles and runs on Swift using the XCode 6 beta.)
Almost all of the colleagues are not native english speakers, so it does make absolute sense to not waste time translating these terms (differently!) every time.
I guess it depends how much "international" the company is.
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...
[2] http://www.zdnet.com/article/windows-os-replaceable-by-chine...
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.
>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.
And besides, there was already some Android integration even before Google announced it.
Check the video from Google IO 2014, Android Developers Fireside, about their opinion on alternatives to Java on Android.
You can only write all but trivial apps in Go on Android, it's very doubtful that Go is preferred to Java.
http://www.google.com/trends/explore#q=%2Fm%2F09gbxjr%2C%20%...
1. http://www.google.com/trends/explore#q=%2Fm%2F09gbxjr%2C%20%...
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.
So laowushi, why do you think it is?
Why is this? Is it because of Android or something else?
It's not very polite to respond in a different language as the question, especially when it cannot be presumed everyone will understand you.
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.
Anyone is free to respond any way they want, but the point remains it is an English-language forum and complaining that someone is not posting in English is a perfectly valid criticism.
If they post in their native language, maybe someone goes along and translates it properly, meaning the information can be fully restored.
But it fits in with the current discussion, and I think is in the spirit or this particular thread.
What really kills your theory is that "golang" is certainly not easy to confuse with the board game.