I’m a portuguese speaking student, most my professors recommend using the english books instead of the ones translated into our language. The terms like recursion, instruction, busy waiting, scheduling, etc most of the times don’t translate right. Some translated books don’t even translate such terms, those books work as good for me than the english ones, but the other books are almost always crap.
For example, the operating system book I use translate scheduling into escalonamento when the right word should be agendamento. escalonamento means a completely different thing in English.
As for commenting code in english, I do that too and it almost cost me a 0 on one of my code projects. My professor assumed that I copied/pasted the work from the internet since I commented everything in english. I still do it though, comments in portuguese suffer from the same problem as translated books.
I agree. It’s not terribly different from air travel, which long ago concluded that it was worthwhile to have a single standard for radio communication between aircraft and ground controllers (also in this case English). The globalization of developer workforces also makes it financially worthwhile for developers hoping to widen their pool of potential employers/contracts to be fluent in English, as well.
I’ve started learning English at 9 because I wanted to download Civ I from a BBS and then went about hacking it, which lead me to english.
However here in Munich I found it appalling that most of the programmers and developers I’ve come across don’t speak english, don’t comment in english, and don’t even use the web in english. On the note that german is a big language, world wise is really not relevant and even if it was, english is the de-facto language for the internet.
That said, i really agree with your post, and would only add that programmers should take their knowledge of their native language and english when localizing software and improve its translation.
The fact is SOME lingua franca is necessary and always has been for technical discussions. In the 18th century, it was Latin. In the 19th century, it was English, French, or German. In the 20th century, it all switched over to English, post-WWII, for the most part.
The convenient thing is that many of these countries are full of people who learn English, and other languages, as part of their general secondary education. If the language was switched from English at this point, most Americans would be sunk — they know a smattering of Spanish, not very useful.
In the end, though, its the bilingual programmers who benefit most from this arrangement. Note how the Pentagon is totally freaked out about Chinese hackers—who all can read both English and Chinese. How many American hackers can read Chinese?
I seem to recall hearing somewhere (probably from something with Stephen Fry in it) that the most spoken language is panglish, a phonetic variant of English that most native English speakers would have difficulty with.
It is unfortunate in a way that modern UK English has deviated from US English because US English seems to be the main driving force and that probably means that at some point us Brits will have to give on color, center, etc.
I wonder how the Domain Driven Design guys cope with localisation issues? Having the code model match the ubiquitous language of the business domain is the fundamental tenet of that approach to design. That is plainly not going to be possible if there’s a translation step.
Some purer languages than English are probably not even suitable for translation into object models… does you service change gender if its operating over am different objects? Somebody slightly less monolingual than I might be able to say if that is the case.
Learning another human language is much more difficult than learning to code in a programming language that has keywords based on a language you don’t know. This is why people put plenty of effort into translating API documentation and creating stuff like your Chinese bastard child http://www.cnprog.com/
Most Chinese programmers want to learn English, it’s just easier, cheaper, better and quicker to ask and get an answer in Chinese.
I think it’s fair to say that most people who could read this blog post in English would agree with you, so in a sense, you are preaching to the choir. Anyone who can get by with the English will. Technical translation is just not good enough, and by necessity, it’s always going to be several months out of date.
That said, I think there’s a fascinating trend of non-traditional developers emerging on the Internet: people who weren’t formally trained in school who picked up stuff on their own because they were excited about projects they wanted to work on. Of course it’s easier for anyone who speaks English, but there are plenty of people writing code based on other people’s code, working from poor quality translations, and making their own translations to share with others.
Ultimately, I think we’ll see more and more of this happening, and I hope we’ll also see the quality of translations improve for locales where English literacy isn’t common (or is limited to the very wealthy).
But I work in technical translation, so I could be expected to say something like that… My hope is that in five years, we’ll be seeing a much richer developer ecosystem, and the translation quality and locally-sourced documents to support it.
I absolutely agree. I’m from Finland and work in a small web/mobile startup. We have ~10 people from Finland, Germany, France, and Albania. Even the native Finns often talk English to each other. That just feels natural in the technological context.
At school we often return the assignments in English (even though they could be written in Finnish) so that we don’t have to translate the terminology and make up terms that people don’t really understand since most of the material is in English anyway. I was very frustrated since we had to write the Bachelor’s Thesis in Finnish and I had to translate even the most basic terminology into equivalent Finnish terms that nobody really uses anywhere. Too much unnecesary confusion.
Software projects go beyond language boundaries and you cannot tell who’s gonna maintain your code tomorrow. English really is the only choice.
Python coders from non-English speaking countries: please write your comments in English, unless you are 120% sure that the code will never be read by people who don’t speak your language. - Guido van Rossum, Style Guide for Python Code
It’s not a meritocracy. I think you need to go back and review what that word means, which is ironic as this is the Use English or Fail post. This phenomenon is just an accident of history. There are a lot of factors behind it. If Americans were as multilingual as other developed nations then perhaps you wouldn’t have posted this.
The question of whether this is the way it should be and should it be more prevalent than it is currently is different from the question of whether you’d be better off learning English fluently to be a better programmer or what have you.
As far as pragmatism being the most virtuous of all traits … Honestly, I couldn’t begin to roll my eyes as much as is necessary for that.
Most of the world who have English as their second language are excellent at writing and reading English in documents and code and when they are not sure they ask for help.
The worst are those from the USA who do not event know that they do not know.
We don’t speak English… I agree with that, just ask a normal people: Whats a commit?, and you’ll see what I’m talking about.
With that said, I have to say that I learned how to program in Spanish, and I think that’s why tools have to be localized to learn the language and then just use the English version.
My question is, if the world becomes a different place in the future, are you ok with someone telling you that functional Hindi is required in order to be a true hacker?
I completely agree with you. I think every programmer should know at least basic English to be able to read documentation and comments (and code). In fact I am glad that programming keywords are not from my native language. I sometimes encounter code with German function names and this looks very odd to me. Might be the mixture of keywords and function names but a German only programming language still is unthinkable for me.
Also: Because English words have almost no accents (save for loanwords maybe) they are predestined for comments so wrong character encoding isn’t likely to break the file (I once had a source file with German umlauts in the comments and even function names. Not knowing the original encoding I had to rename everything because the compiler couldn’t handle it…).