a companion discussion area for blog.codinghorror.com

The Ugly American Programmer


On the internet, you can pretend the world is flat. Whatever country you live in, whatever language you speak, you have the same access to the accumulated knowledge of the world as every other citizen of the planet Earth. And a growing percentage of that knowledge can and should be available in your native language.

This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2009/03/the-ugly-american-programmer.html


English is the de-facto standard language of software development as much as it is for mathematics. Which it isn’t.

If a non-English programmer learns English, then he/she would have access to communities/documentations that would otherwise be out of reach. But the same applies to us and other languages.

I’m learning Japanese so I can communicate with some Japanese hackers better, and I don’t expect them to learn English just for me.


Interesting take on one of the key characteristics that might make up the World’s Best Programmer.

Would love to know what you (and your readers) think of my take on my search for World’s Best Programmer…


Jeremy Horn
The Product Guy


jack, want a cookie?


No need to feel as an ugly programmer.
For the given pragmatic reasons programmers should learn the english language, for their own good. Period. There’s no ugliness in pointing out the facts.

But it’s all too easy to draw false conclusions from that. Even ESR, well-known as a sharp thinker didn’t question the idea ‘that English has a richer technical vocabulary than any other language’ (as was reported to him).
I mean what?!? Especially programmers should see the red sign blinking when it comes to language rankings, reading Caution! Sloppy conclusions ahead!.
Isn’t it already all too difficult to compare their laboraty languages in a sane way, even with regard to a very specialized topic?

Just to sharpen your thinking.


I’m working in holland these days and my dutch colleague hate it when people use dutch names for variables and so on. They even hate having their OS in dutch.


also, sites like this confuse me… why is english intertwined?



When the Big Robot in the sky decides to Decompile you, we all turn into the same 01000011 01101111 01100100 01100101


You can’t name yourself a good programmer w/o fluent English. Period.


I don’t see it as an ugly American issue. It wasn’t that many years ago that if you wanted to make a name in Chemistry you had to know German (because so much of the technical literature in the field was from Germany).


Consciously choosing to switch from Polish to English reminds me why I gave up Visual Basic for C#, as painful as that was. These languages do exactly the same things – and the friction of choosing the minority language was severe. I found reams of code and answers in C# whenever I searched, and almost nothing at all in VB.NET. I spent so much time converting code into VB.NET and introducing new bugs and errors in the process, along with countless language-only forks. This eventually stopped making sense to me – as it would to any good programmer.

Damn it Jeff!!! What about the evils of case sensitivity?


Like Jeff, I’ve also come to realize that I’m doing myself no favor my sticking with Visual Basic.

I personally prefer the look and verbosity of Visual Basic. I guess I’m just not a fan of semicolons and curly braces!

I was bitten too many times by C++, Pascal, and Java compilers years ago because I’d often forget a semi-colon here or there that I grew a great distaste for that syntax.

But, it’s quite clear by now that Visual Basic has lost to C#. I’ll program all new projects in C#.


So, english speakers, be they native or not, posting on english-written blogs and sites, reach the conclusion that most programmers worth their salt know and prefer english.

A further evidence of this is that non-native english speakers (who, nevertheless, read english) prefer english documentation, as documentation on their own language, to put it plainly, sucks.

Can anyone see the problem here?

I’m sorry, but this is WRONG, plain and simple. Guys, you are DEAD WRONG.

First, let me attack the documentation thingy. I always go for the english documentation. It’s more up-to-date and it has less errors (it couldn’t have more errors than a translation, after all!). The conclusion should be obvious: document translations are cheaply done and companies do not invest in creating original documentation whereas english originals exist. This is a problem with the creation of the documents, not with the language they are written in.

Next, the english-bias. By selecting blogs and sites written in english, you are eliminating almost everyone who doesn’t speak it. If you are USED to using these resources – after all, they ARE more complete – then you have applied a bias to the selection of your peers. You don’t know many non-english speaking peers because you don’t go to the same places.

Then, the english is better for programming bias. Bullshit. Programming slang gets created by the second. Drop a C++ systems programmer in a Java or PHP/Web environment, and he’ll think these people are speaking a different language altogether. Vocabulary is NOT an issue. At worst, people of different languages will just import the word, just like it happens with english. And it DOES go the other way, as any proponent of free (libre) software knows. :slight_smile:

What programming requires is the ability to analyse, to abstract and to think logically (actually, algebrically – or however that would be correct spelt in english :). And, I’m sorry to say, but some languages are really better for that than english. Some, of course, are much worse. :slight_smile:

Let me drop by the keywords, just for a second. I have noticed that it is a somewhat common problem with newbie programmers who are native english speakers that they sometimes expect their code to behave in a different way, based on a english reading of the source code that differs from what the code actually does. I have never seen this happen with people who do not speak english. I don’t mean it’s a problem to know english. My point here is that you learn very specific meanings for the keywords, to the point that the english origin becomes of little importance. For instance, yield in Ruby vs Scala.

And, now, finally, to anectodal experience (unless someone here has statistics?). I have seen very good programmers who couldn’t read even an airport sign in english. They are at a disadvantage because they do not have access to the same repository of knowledge and documentation that their more fortunate counterparts have, but it did not detract in any way their programming ability.

Finally, let me address Eric Raymond. He is completely right. But he is talking about HACKERS, not programmers. In the sense Eric Raymond refers to hackers, they are not only elite programmers, but also people belonging to a specific cultural group. As evidence, it’s easy to imagine an elite programmer (english speaking or not) who, otherwise, does not seem a good fit for hacker. But the converse applies. Someone who would otherwise be a member of the hacker culture will never be part of the group unless he can speak with them.

I expect we’ll learn in the future a word that have similar connotations to hacker, but it will be a chinese word, and it will only apply to people who can speak chinese and engages in conversation with peers in this group.

As an afterword, I’ll throw a bone. A common advise for people looking to improve their programming ability is learning other (computer) languages. People who do this easily have a natural ability to learn other languages, computer or not. They might not know it, and they might even think some other problems they have socializing (let’s not pretend this isn’t common) are problems they have at learning other natural languages.

So, people who have a natural ability learning languages can more easily do one of the best ways of improving one’s programming ability.


s/anectotal/anecdotal/. I’m sure there were many other spelling errors, but this only really irked me, as I stopped for a minute looking at that word, feeling it was wrong somehow. :slight_smile:


I’m from germany and I have to agree: From a hackers point of view this doesn’t mean anything, it’s simply not important. I know many people around the world so that using English seems to be the only sensible thing to do.
Additonally, having to wait for a translation of a book is a waste of time. Depending on its topic one might sooner or later realise that it just won’t get translated.
And English suites the IT world pretty well: It can be expressed using 7 bit ASCII, which can’t be said from most other languages written throughout the world. I’m not sure how to explaing the use of german umlauts to non native speakers, for example. :wink:

That being said and being a non native english speaker (writer, user, you name it) myself, I have to disagree with Eric Raymond in this regard: While sloppy writing does not invariably mean sloppy thinking, we’ve generally found the correlation to be strong – and we have no use for sloppy thinkers. If you can’t yet write competently, learn to.

Personally I don’t see a relation between sloppy thinking and sloppy writing, it’s just about skill level. One might be a good programmer but unable to use the english language correctly, for a variety of reasons. Lack of good education, for example, or just a lack of understanding in regard to spoken languages.
Being arrogant in this regard, instead of being understanding and tolerant would IMO really qualify as being a ugly $nationality programmer.


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?


English is the standard language for programmers.

Windows is the standard operating system for computers.

I generally prefer english computer books over german ones, ditto I didn’t need to wait for the translation of, say, Harry Potter. :slight_smile: My macbook has the english version of the OS, and US keyboard layout. I even use US layout on german keyboards. On the other hand, my motivation to ever again come to the united states is about epsilon.

On the other hand side, I see that the communities around here are nonempty enough to get along in their native tongues; and especially those people whose native script isn’t in latin letters have a hard time learning that. So I would not require english of every programmer around here. It may be positively correlated with performance, and it sure helps to be able to communicate with a lot of people here in europe – as a common language.

Besides, I’m helping to spread the picture of the ugly american: When I don’t understand the local tongue, I usually ask for english, not for german. :slight_smile:


As a French, I have mixed feelings on that topic.
English is often used here to make old concepts shiny. I HATE it when a manager or some salesman uses an English word when there’s a perfect French word with the same meaning. It’s even worst in Japan, where more and more the media use the English word for rice instead of the Japanese one… Just a smoke wall to hide emptyness.

So as everyone here I of course think English is necessary in order to understand precisely the API and the resources. But when writing a doc, a code comment or anything made to be read and fully understood only by people whose first language is not English, I don’t see any sane reason to write it in English.


to me this shows a degradation of english culture… by saturating the language all over, yet everyone else can speak to languages. nothing to be really proud of, infact it should be addressed. Whilst some may be blinded by given up there language to be enslaved in a world of mechanics… some are treasuring there language and still have a culture.


This is hardly new. Any discipline that relies on distribution of knowledge will develop a lingua franca. That term in fact was based on the fact that during the 17th 18th Century all science papers were in French. You had to know French to participate in the scientific debate. Gradually, that shifted over to English. Today, English is needed to participate in the global scientific debate.

You don’t have to know English. There are large clusters of knowledge available in German and Chinese as well. But the English cluster is larger - as a rule, the German and Chinese clusters only attract native speakers.

Will this last forever? Hell no. There’s nothing special about English that makes it the best language for discussing programming (or science).