a companion discussion area for blog.codinghorror.com

The Ugly American Programmer


Hello from Hellas (Europe). Here’s my personal experience on the matter:

When I started software development as a profession, I used to comment my code in Greek. It was a bit difficult to have to continuously Alt-Tabm since some terms had quite bad sounding or even outright funny (albeit accurate) translations.

I followed this practice when I moved to .net v1.0, only to find out that NDoc wouldn’t render my otherwise perfectly normal Unicode Greek characters. That was the day I decided to move to using English and only English as my documentation language.

That was before I even had to work with other people and for projects that would have been unlikely that any other eyes apart from my own would ever set sight to that code. Since then, I’d moved to a larger company where I had 2 co-programmers who agreed (albeit reluctantly) to implement this practice for our new projects.

Now that I’ve started my own business implementing software the documentation of which will certainly be sought and used by other people while also having to co-operate with others, I still retain the old habit. I don’t think I could or would change anymore, even though I have to correct syntactical mistakes sometimes.

I speak 4 languages including my own*. There are languages that have close bonds with specific parts of our culture (eg. Greek is widely used for some scientific fields including medical science), US English is the undisputed leader in computers, which I believe is very beneficial.

  • One good thing about speaking a language most of the world doesn’t really give a damn about (Ancient Greek does not count, it’s almost completely different) is that your are forced to learn other languages.


Well I did it again. Change that your to you in that last sentence. Jeff, getting used to Natural Keyboard 4000 is a bit of a challenge! :slight_smile:


This not only effects software but also the products of software. We translate our documentation into many languages (German, French, Spanish, Italian, Japanese, Chinese, Korean, and so on). We used to start with French and used various translation softwares to covert them. The results were horrible. A couple of year ago we decided to create the documentation in English and then translate in to the various languages. We could not believe how much better the translation were. The software was simply better at translating English then at translating French.


‘Reminds me I learned some written English words as a kid (before I started courses in school) playing games on my parents’ Macintosh SE… Beginner, Advanced, Begin and a few others were part of my initial English vocabulary.’ - Stéphane

mine were: swashbuckler, cutthroat, bucaneer and merchantman, thanks to playing lots of sid meiers pirates!. but if-then-else, for, while and until came soon after.

my writing in english is terrible, but for reading (technical and most fiction) i prefer english. having to use programs in their translated german versions slows me down significantly, because i can’t find nothing (and it’s annoying as hell).

the problem: because of my coworkers i sometimes have to comment my code in german. but the habit! so often the comments and sometimes even front-end texts on websites get mixed up. and … nobody really cares if the lightbox button for closing reads schließen or close anyway.


Here in Canada, we have 2 official languages - French and English. As such, you can watch TV in both languages.

Back in the 80ies, there was a computer programming program that taught BASIC in french. I do not mean that the presenter spoke in french (which is obvious) but that all the keywords were ALSO in french.

As such, it was not really BASIC any more. In fact, it was quite incomprehensible. I found myself wondering Why would you bother??. If you learn this particular version of basic, you were commiting yourself to a skill set that simply would not let you work ANYWHERE except the small geographical region that developed it and then only in businesses that used it.

If your goal was to find a niche market, here it was. I am quite sure, however, that the actual market for those skills was so small that the presenter of the show was the only one to ever find meaningful employment in it.

If you think C# and VB.Net examples are hard to interchange - just imagine that every example you found for your language did not work because it wasn’t actually in your language.

If you wonder what language you should code in - just ask yourself when the last time you saw a copy of french basic or why the GNU compiler doesn’t have a French/Spanish/Russian/etc version of C. (Actually, I have a theory that C is as popular as it is because it has so few english key words compared to other languages like Pascal)

(side note: If you are not aware, the french culture in Canada suffers from a considerable complex. A cultural chip on its shoulder so to speak that dates back several hundred years to when England and France were still world powers fighting over the new world.)


@heh, yes Jeff knows how to get Mavericky.


As a native French speaker, I have to second. As one of my CS teacher told us, You should master a foreign language, and english is not a foreign language. English is your patois (patois being an untranslatable world for the dozens of dialects that existed in France before the language was unified, /history-lesson).

Still, one warning : we should never forget about all those others citizens of the Internet that do not speak english (like, pretty much everyone using the Internet on a non-english speaking country, also known as ‘my mon’). I always feel very bad when marketing people use bad versions of english words or catchphrases to sound cooler, whereas I have always struggled not to use any english word when explaining how a computer works to my mom.

(But then, I learned BASIC on a German computer, so I was screwed from the beginning)

Are ‘english-sounding-computer-related-human-unfriendly’ words accepted in other countries as well, or do you try and translate everything properly (like I’ve heard french-canadians do ?)


One of the better arguments against English is that it’s a difficult language to learn.

http://languagelog.ldc.upenn.edu/nll/?p=492 is an interesting article on the difficulties of language acquisition in English. It’s notably harder than most other Indo-European languages. However, the deep vocabulary in English is a big advantage in a technical field, as it’s an easier language to create neologisms in than many others.

The problem is that the native speakers of English are both numerous and wealthy. The only languages in the same league in numbers are Spanish and Chinese, and the acquisition problems for Chinese are worse than English. If we’re talking about nonnative acquisition, then Chinese is worse, in that few non-native Chinese speakers speak a Sino-Tibetan language, while many non-native English speakers speak Indo-European languages, so the proximity is better. Of course, Spanish is an Indo-European language too, and is a language that has lots of native speakers, and is much easier to acquire than English.

If we were to switch, (New World) Spanish is the only language that can seriously be argued as a better option as a world language.


There are a number of reasons why people would like to oppose making English a de-facto standard. These days its all about making programming language-independent and platform-independent. Why exactly should the trend be contradicted by making it culturally-specific? Translations might provide hindrances to comprehension, but this proposal halts the development of the legions of programmers who do not and Should not be asked to import a language to understand a program.

(Would it be so much easier if we all used the Windows + IE stack?)




I think your claim is too strong. Yes, in order to be an above average software developer, you will have to understand English. There just too much code and documentation in English that is unavailable to you otherwise. However, if you are an average Chinese, Indian Russian programmer, there’s still a reasonable amount of resources in Chinese, Indian or Russian available to you. They will run into English roadblocks sometimes, but I doubt that is a real problem for many of them. For decades to come, there will be non-English speaking programmers.


I went on a caribbean cruise 2 weeks ago, and found out through idle chatter with the cruise director that the entire bridge staff on Carnival Cruise Lines is required to speak fluent Italian, for whatever reason. It happens.


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.




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?