I think most of the source code people can look at is for open source projects and they always go with english as the default even when there are mostly non-english speaking programmers.
But what does it look inside private corporations?
I think most of the source code people can look at is for open source projects and they always go with english as the default even when there are mostly non-english speaking programmers.
But what does it look inside private corporations?
Language is English. English docs, English presentations.
Meetings are done in German unless a non-German sits in. Then, it is done in English.
I can't even begin to explain how awkward it is to see source code once in a great while where the dev used German words as variable names. Good luck trying to get a colleague to understand what'S going on if he doesn't speak German.
In short, you write in English so the lion share of the world can read it. And if people really have a question, they should be able to express that in English. What good does it to post that question in a language that can only be read by a fraction of the developer community?
And with that in mind, I also expect others, like Chinese devs to hand over source code with English variable and class names. Otherwise, again, who do they expect would be able to work with the code if the naming of things don't make sense?
In my experience (technical companies in countries where German is the main language) most of them use either English straight away or their native language mixed with a lot of english nouns. I never ever saw someone translating "commit" for example.
In my opinion this is they way it should work everywhere, code in any other language than english is not acceptable.
I try to limit the amount of this weird jargon, but is extremely easy to fall into that.
PD: This is in Spanish
In this company, at least, you would imagine somewhat inaccurately.
I speak English and three or four words of Mandarin. Their English proficiency ranges from equal to my Mandarin to almost idiomatic American English (a few having spent between a couple years and half or more of their lives working and/or studying in the US).
For live conversations, "English" technical terms are just a given, even for those who I can't even hold an minimal English conversation with. There are "translations" of things like "pointer", "file", "hard drive", etc.. They don't use them. Those most fluent in English engage in more significant code switching, with entire sentences or large sentence fragments in English.
I can sometimes extract significant meaning from conversations that are not otherwise in English because of this. They are frequently surprised by this, because they don't even think about it. These parts of English have simply been incorporated into a sort of programmer's dialect, it is part of their "native" language now.
Those who are most fluent in English, however, have told me they sometimes find it easier to have technical conversations entirely in English. I've heard two different reasons given for this, sometimes by the same person. One is the most obvious: This industry basically originated in English-speaking countries, so it's built on the assumption of English. The second is probably more locale-specific: Mandarin is apparently less precise and/or concise than English. One person described it as more "flowing" or "stream-of-consciousness", another as "based on feeling". Maybe not ideal for a field where precision is critical.
Documentation follows a similar pattern. The more comfortable they are in English, the more likely they are to use English, at least in part, in documentation. Commit messages, interestingly, are much more likely to be in English than Chinese.
Within code, APIs, and file formats, identifiers are almost invariably in English. Sometimes strange English, but English nonetheless. I imagine this would be less the case if we'd had UTF-8 source code 30 years ago, but it's where we are now. Filenames are also usually in English.
Comments are another mixed bag. Some developers whose English is very poor nonetheless comment exclusively in English, others use primarily Chinese. Again, the more fluent are likely to comment entirely in English. (This assumes the existence of comments at all, of course.)
Obviously when they specifically intend for me to read or deal with something, or are modifying code I wrote, everything is in English, but that's a fraction of what goes on in R&D.
Except for the big international corporations, most of the stuff tends to be written on the country's language.
Learning programming from English texts will affect choice of variable names, function names, etc.
Dijkstra is a counterexample (http://en.wikipedia.org/wiki/Semaphore_(programming)#Functio...), but that was in 1965, when there weren't hours of subtitled English-language television each day, or thousands of programming texts that were only available in English.
Quite common in Spain, France and Germany to have code in local language, based on my experience working in these countries.
I already worked as code translator a few times, because of it.
Sometimes it helps to be a polyglot of human languages as well. :)
German and French (#11 and #17, at worst) aren't small, either, and have the benefit of having lots of rich speakers.