The Ugly American Programmer

It’s not just programming, it is many things technical.

When I was in college, for both degrees (both technical, but neither were CS or S/W Eng.) there were foreign born students, some of which did not speak English well, but when it came technical terms they almost invariably used the English version of the term even when speaking a foreign language.

In my first degree, each year we had a group of exchange students from a specific country, in a special program taught mostly by a teacher fluent in their language. One group was from Saudi Arabia, another from Mexico - both essentially had to use English technical terms because there were no words in their language for many of the terms.

My impression overall was that those who spoke English well did better, even when they had a teacher who could lecture in their native language.

I basically agree with the fact that code, and more importantly documentation and comments should be in english. As a non-native English speaker, I find it necessary to use a unified language, especially with the whole open-source community connecting throughout the world. I feel however that the end user should have applications available in his native language. My grandma shouldn’t have to learn english to use a computer or else she would never do.

Ironic. Programmers from around the world are discussing here in English about the ideal language for communication among programmers. That must be some sort of recursion bug. Someone please fix English 1.0!

Absolutely. I grew up in Ukraine and got interested in computers as a teenager. It was nineties and everything was in English only and it was great. Everybody knew enough English to read the docs.

Furthermore, the games were also not localized, so even kids who where not interested in programming where learning English to play them (Leisure Suit Larry will make most kids want to learn at least some English). Unfortunately times have changed and localization of games is a huge industry in Russia/Ukraine now. Which means less kids learning English.

That means that you can write your company’s programs and systems in your native
language, harnessing a pool of local talent that doesn’t write English, and then localize it
into English when you’re done.

The point here is that most of the good devs speak english already, so why would you want to?

I’m not arguing against the fact that currently a lot of programmers can read and write English well enough to program. I’m not quite convinced yet that most of the good devs prefer English over their native languages. And I’m fairly certain than in that in 15-30 years we’ll see SW production houses who construct, comment, document and maintain the majority of their code in a non-English language (and probably using a non-Roman character set).

It’s my view that it is a bit ugly to think that just because talented software developers outside the US/UK/Canada/other-majority-English-speaking-country have to use English now that they should want to use English in the future.

http://www.youtube.com/watch?v=GBCos2MlQ1Y

@David
Some of us Americans do speak the Queens English, at least the Queens English from the Victorian era. Those of us that do take great offense at being called yanks though. :wink:

I do agree that english is the defacto standard, due to a lot of factors, and that probably most development happen in it.

As any coder knows though, language ends to shape your thoughts. developers with only experience in C just think differently from devs with only Java experience, which again differs massively from devs that think in Erlang or Python, or Ruby.

Most accomplished devs tend to learn a number of languages, not necesarilly to use those, but to be exposed to these different ways of thinking.

I can’t help but think the meta language you use also plays a role in how you think. English is actually a very ambiguous language if you compare it to others such as German and Latin.

So I wonder, how much of the non-core dev stuff that we struggle with every day, user requirements/stories ambiguity, innaccurate specifications, etc. is due to us using english for these tasks?

Could native non-english speakers comment on using their native tongue for the fluffy bits around dev and how much correlation they’ve seen with us english speaking ones?

I’d like to add that it takes your brain time and energy to internally switch from one language to another. Try listening to a podcast in one language while reading a text in another (assuming you are bilingual). You will quickly notice that it’s considerably harder to do than listen to and read two things in the same language.

For that reason alone, I dread newbie programmers who put in comments and variable names in their native language, while the code and all foundation or library classes and method names are in English. It’s a nightmare to read.

I’m a Asian guy, I am a Korean. Unfortunately I don’t have Indo-European roots. So even I have learned English from my middle school age for about 17 years. but I am not fluent English speaker. I am only able to read IT documents with dictionary. I don’t like foreign language. and I am not gifted about learning language. however I always effort to train myself to be fluent English speaker, To visit your blog is a kind of efforts, too. :slight_smile:
Why I always try to learn English? Because, the ability of understanding English is super power to get significant information. 80% of information on internet is written by English and 99% of most important information is written by English too. Most documents which are translated to Korean are just only basic,common and regular.

1 month ago, I bought the book Don’t make me think. and I have waited for 2 weeks. and At day I am received the book. I read whole pages. very concise book it is, and very useful and impressed.

Don’t make me think in my mother language does not exist…

Really? All programmers speak english in non-english-speaking countries? I’m in Canada, and when there’s a common mother tongue in a company I have worked for, people use it, including for technical communication. The chinese developers don’t talk english amongst themselves. The iranian grad students talk about their research in farsi. I’m not sure what language the sri lankan contingent at my former job spoke together, but they did, and only switched to english when I joined the conversation.

Sometimes technical terms are in english, sometimes not. I’m not speaking greek or latin when I use terms from those languages.

Prior to the beginning of the industrial revolution in England, mathematics was the most sophisticated field in the world. Because the Italians had the advantage here, you simply had to learn Italian to practice mathematics or risk being cut off from the most advanced and current knowledge in the field.

Shortly thereafter, England got ahead in mechanical engineering (steam engine, etc). From that point forward, the English language has been tied to scientific and technological advancement. Seeing that this has carried forward into computers and programming, it isn’t very surprising.

English has become a world language. In many former British colonies, there are many local languages, but the common language that ties everyone together is English. In the scientific field, English is the language that everyone has to learn to speak. The most important journals are all in English.

And, it becomes self enforcing: As more people learn English, it becomes a more of the official world language, and thus even more important. With the fall of the Eastern Block and its Russian standard, English really has no competition.

The biggest competitor will be Chinese because of its large speaker base. As the Chinese become more technical, they’ll produce their own literature and journals. Business-wise, Chinese is already a strong contender to English, and the more Chinese firms reach out to the world for resources and markets, the more important Chinese will become.

However, there are several advantages that English has. English is a very loose and adaptable language. New words are easily added, and words shift constantly between various word forms. For example, the word text was a noun (printed text), became a verb as in I texted him a message, and back to a noun as texting. English also has an extremely large vocabulary thanks to its dual French/Anglo-Saxon heritage. There are also few verb and noun forms to congregate, so it can be an easier language to pick up.

However, English’s biggest advantage is that there is no official English. English freely borrows words and phrases, and quickly adapts to the speaker. It’s always fun to watch the French Academy of Language ban an English phrase that actually had French roots. In 20 years, the version of English most people will be speaking won’t be the American or British version, but the Indian version of the language with quite a bit of Spanish thrown in.

English has one compelling advantage when it comes to programming: The alphabet fits completely into the ASCII encoding.

Not surprising, since ASCII is an English-based standard, but nevertheless important since it is one of the few encodings that almost everybody can agree upon and (more importantly) actually understands. Take the Dutch example above; Dutch is actually one of the very few Euro languages which can be fully expressed in ASCII, if you’re willing to overlook the fact that one character has to be expressed as two (‘ij’ is technically a single character in Dutch.) But most Latin languages have a variety of diacritics which have to be omitted in ASCII. There are standard ways to do so, but the fact remains that you are not writing French or whatever; you are actually writing English-transliterated French.

English has another advantage. Due to its very loose, context-sensitive grammar, it is a very easy language to speak at a rudimentary level. You might be butchering the sentence, but odds are you will nevertheless be understood. English is easy to speak comprehensibly, but very hard to speak fluently. Other languages such as German and Russian with lots of inflection and rigorous grammars are more consistent and easier to speak properly once you’ve internalized the many rules, but make it much more difficult for beginners to express even basic ideas except by rote repetition.

An additional note; the permissive nature of English also makes it ideal for domain-specific technical languages, such as aviation, medicine, and… programming.

Ricardo said: I think most will concur with this post.

And everyone else won’t be able to read it anyway.

@Kimmo: But how can you really tell who’s going to read it in the future?

That argument goes both ways. If I can’t tell who is going to read it, why should I assume that person will understand English?

Jeff, how about allowing replies to comments on your blog? It would make conversations easier, one level of threading should be enough, and you can hide replies by default.

Because programmers understand logic it doesn’t matter what language the keywords are in, you learn what they do and go about your merry way (car and cdr anyone?).
But to think that everyone should be fluent in English to read all the docs is a complete waste of a programmers resources. By one person translating to another language you enable all those others to start doing immediately instead of overcoming both the ‘technical problem’ and the ‘communication of that technical problem’.
I really do challenge someone to try and seriously learn a foreign language (no, not another programming language - they’re all the same) it’ll open your mind a bit.
Who knows where history will take us. Maybe as development (and those willing to buy software) shift to the east, you’ll have to write some of that unicode in your comments.

First, there are lots and lots and lots of developers who don’t read English well, and they rely on resources in their own language.

Secondly, many software publishers (not to mention distributors) view multilingual documentation as a competitive advantage.
if I am a Japanese speaker and there are two competing products- Product A and product B, and B has documentation in Japanese while A only has English docs, then I’m going to choose Product B.

Thirdly, let’s not forget about programming books. Sure, someone with low-level English skills might be able to read API docs and code comments, but they won’t be able to read English programming books that have long passages of prose that discuss this or that concept. Even if they can somehow labor through it, it will take them forever.

Finally, Jeff, you’re talking mostly about programmers in other countries consuming documentation. Passive reading/listening is much easier than active writing/speaking, as any language learner knows. If forced to blog/write/code comment in English, a non-native speaker is going to a) take longer to do it or b) not do it.

We mustn’t make the mistake of thinking that all programmers are the bilingual elites that participate in blogs like yours, no matter what anecdotal evidence gets emailed to you.