a companion discussion area for blog.codinghorror.com

The Ugly American Programmer


Disclaimer: I am an American, feel free to hold that against me.

I would agree with this article. While English may not be the most beautiful language to speak (understatement), it is very well suited to conveying technical ideas. Another strong point for using it is that I believe it is the most widely understood language. I say I believe because I have no evidence to back this up… that and the fact that there is a LOT of people living in both China and India. Another reason programming languages tend to have many English words in them is the fact that the English language has lots of short words that convey concise ideas; examples would be: for, and, or, etc. This is not to say that other languages don’t have them, though it does pretty much rule out German… sorry guys.

As several other people mentioned, it is good to point out that we are not programming in English, but instead in a programming language that just happens to borrow words from American English language (much to any British programmer’s chagrin, I know how frustrating having to change one or two letters on a word you tend to write without thinking about must be). However, after carefully rereading the article I do not think the author was actually referring to programming with any particular language, but instead to writing the documentation and sharing with one another in English.

Not totally related to this article, but along the lines with some other posts: I personally think applying the term English to American English should not be done. I think we should rename American English to something else, similar to the way the Chinese have mostly unrelated names for their dialects (though my understanding is that Chinese dialects differ from the way Americans define dialects). This should make the British semi-pleased as we will no longer be butchering their language and still calling it English and I think it would make things less confusing for many people new to English. I still remember how confused some of my classmates were back in Kindergarten through first grade about how color and colour were both part of the English language. Obviously this will never happen though because people are too resistant to changes, even if they really don’t affect them. If it does happen though, maybe we can finally switch over to the Metric system, that would simplify things.


Apparently you’re not going to be much use at operating a GhostNet unless you know Mandarin and Tibetan.


Was daran wirklich bescheiden ist, ist das Programmierer normal etwas faul sind.

Gerade bei englisch gibt es recht viele Programme, welche Programmdokumentationen und Methodennamendokumentationen automatisch erstellen (z.B. GhostDoc).

Wer dann einen Kommentar liest, glaubt meist einfach: Das ist in dem normalen schlechten Englisch geschreiben wie veile andere Dokumentation. In Wahrheit sind viele Kommentare nur einfach lausig durchdacht oder automatisch erzeugt.

Schreibt man hingegen die Kommentare in seiner Muttersprache, so merkt man schnell das man erst einmal nachdenken muss, was man da macht. Ein invokeXYZ wird eben nicht zu
///Invoke XYZ
sondern man schreibt tatsächlich mal auf, was das ganze machen soll und erhöht mit muttersprachlichen Kommentaren die Kommentarqualität beträchtlich.


I worked for some years in The Netherlands, and while everyone I worked with spoke fluent English, they still wrote their program comments in Dutch, and gave all their program variables Dutch names.


Here in Arizona, we are required to translate all of our code comments into Spanish so that the code is bilingual. It’s all part of our standards process. And braille as well.

It quadruples the development time and our company is bankrupt, but we are culturally sensitive.


I guess what I don’t understand is why this is even an issue at all, is there some movement to program in something other than English that I just never heard about?

I remember a while ago, somebody mailed me a sheet of bright red stickers that just said ENGLISH, PLEASE! I think with the idea that you would stick these over the translated parts of bills or letters in an effort to shame non-English speakers into getting with the program.

But everything was already there in English anyway. And then it’s in some other language, too. So who cares?


This is a bullshit article.

First of all, the ones who say they prefer to code in english but dont actually speak it natively, could barely have a conversation about a technical subject where I work in English. Its a fallacy.

I work with alot of foreigners who supposedly speak english (but wont even say hi in the hallway) and cannot hold a technical discussion at all.

Ive been to enough meetings full of the functional equivalent of downer cows who sit in the meeting room silent for an hour to know that non-english speaking programmers are useless in an english speaking environment.

And in other cultures where they are speaking english they are communicating it in a dialect that is heavily burdened by their native tongue and makes no technical sense in english.

This is a bigoted discussion. Languages would be more effective to observe the internationalization that applications are supposed to.

If they did, technical information would be able to be exchanged more effectively between all parties.



Try programming in Klingon. No wimpy messages there. Don’t even ask how uncaught exceptions are handled… (shudder).


What english speaking programmers are really worried about is that someone will obfuscate code from THEM by using other native based languages to code concepts that english based languages have not even discovered.

It will happen.


In response to the Unicode issue, some languages are better about Unicode than others. Java is 15 years old now and has always used UTF-16 for its char primitives, which propagates to String and other character handling classes.

The problem is partly with programmers assuming that all text is ASCII text.

It’s not always the programmers. Despite using UTF-16 internally, Java has some funny defaults for reading/writing characters from/to files. For example, FileReader and FileWriter are convenience classes to read/write characters from/to a file using the system’s default character set.

What’s the default character set? According to java.nio.charset.Charset.defaultEncoding(), it’s windows-1252 on Windows XP, an 8-bit character set based on iso8859-1. You’d think FileReader and FileWriter would use a sane default, like UTF-8 or UTF-16.

If you want to read files in a different encoding, you have to construct a InputStreamReader from a FileInputStream instead.

.NET handles this more sanely. StreamReader and StreamWriter default to UTF-8 rather than to any system default. These objects can be constructed manually or returned via File.OpenText, File.CreateText, or File.AppendText.


@Jacob It isn’t the spelling that makes us cringe (I’m Australian), it is the errors.

This IS a case of the pot calling the kettle black, because I make a lot of errors.

You can color or colour your words as much as you want. You can come up with unique words like Capilarity (we use the term Capliary Action) and none of that will phase us. You can throw as many z as you want in your words - and we still won’t give a rats.

No - the cringe factor is the mangling of grammar and misuse of words.

I’ll just use one example: Adverbs almost always have an ly after them unless you are in America where that suffix appears to be optional - preferably excluded.

This program has bad points. Here Bad is a noun.
This program is running badly. Here Bad is an adverb.
This program is running bad. Umm??? What’s bad? a noun or an adverb? Since there isn’t a ly then it must be a noun - so is bad some type of hardware or protocol???

This program is running slow. should be slowly, unless slow is a thing.

But the most common one that Americans get wrong is real vs really.

I need a drink real bad should be I need a drink really bad. Real is either a noun (as in Real Number) or an adjective (as in the real reason we cringe). It is never an adjective - unless you are in America.

Again - this IS a case of the pot calling the kettle black, because I personally make a lot of errors. I’m just trying to point out what we cringe about.


In the second last sentence I meant It is never an Adverb - unless you are in America.


If you dislike feeling like an Ugly American, just spell colour with that extra u, and suddenly you are speaking a foreign tongue :slight_smile:

But seriously, you are dead right. Being a native German, people are often amazed by my English skills. They exist because of programming. Programming and Terry Pratchett are those two things that aren’t translatable. I even prefer to use an English desktop, because bad translations annoy me so much.

Now contrast this to MS Excel (or OpenOffice, for that matter). It has localized function names, so it’s not IF(…) but WENN(…), and so on. May seem helpful for a business user, but feels extremely weird to me as a programmer, and a source for mistakes as well.


If you are an expert in only a single language, it might seriously limit your creative potential. Should we neglect creativity, in order to become mechanically more efficient? We sure are becoming dumb. It is probably time to do the reverse, and do programming and write books on programming in languages other than English.



Americans are not nor will they ever be native English speakers.

Actually, we have a phrase for this in (real) English: horseshit. But we invented English! Yeah, yeah, sure, whatever. So did we. Like, starting about 400 years ago. Ain’t no one owns the language, amigo.


I spent a year working in a mechanical engineering consultancy in France, years ago. The guys there were used to working with English Language versions of AutoCad and complained bitterly when they were upgraded to the latest version as it was in French (‘Merde, ou est Snap to Line?’)

I also had to do some VBA coding there, and the French Version of Excel 5 defaulted to using French keywords, i.e. Si…Alors instead of if…then


You lead a very sheltered life, Jeff. The very premise of your argument and the use of the term hacker smacks of a different era. Not everyone writes Visual Basic for .Net and your assertion that great hackers use English is delusional at best.

I sometimes think you post garbage like this just to get a reaction.


The Polish guy was dead on – it’s much better to see the documentation (or any literature on software for that matter, languages, algorithms, manuals, etc etc) in English which is either the author’s native language or a language he knows very well.

There’s so much terminology in English and growing that outright sounds ridiculous in other languages due to inadequate or not generally accepted translations. And then a spanglish communication like that with plenty of borrowed English words here and there is ridiculous itself… Why not just use English for the whole thing, not just technical terms and use the language of the problem/industry? :slight_smile:

Also, there’s so much literature in English in existence (which also keeps growing) that it’s just impossible to keep up translating everything. Likewise the amount of translated books (along with the quality of their translation) and books originally written in other languages is rather disappointing. And the same can be said about the programming information available on non-English websites. All of this pushes a non-native speaker of English (or should I say a non-speaker of English?:slight_smile: to improve their English (or learn) and abandon the hopes of getting quality info in the right quantity in the native language.

I wish it was easy (just as easy as in the US) to go to a bookstore somewhere in Russia and see technical and any kinds of books in English, untranslated (maybe even at about the original price, undiscounted, although $50-$100+ for a book is pretty darn expensive in Russia) and be able to buy them. Some classic books take longer to get translated than it takes for a kid to grow up, graduate from the school, complete the master degree program and learn some good English.

Btw, just using lots of software in English, reading lots of docs in English and communicating in English really does improve the language skills. In that same Russia English instruction has been pathetic for decades and you may still reasonably expect pretty much anybody who’s gone through 7 years of English at school+uni there to not know much if any English (what a shame!). Except the few who early on found something interesting in the language or just used it a lot, those like us, programmers.


Even when I am coding something I don’t ever plan to share with others I still write comments and variables in English. It just makes more sense. All the coders I know do the same, as such it’s also easy to share code with others if the need ever arises.


As a programmer from China, I’m humble and excited to see so many comments concerning Chinese. An also amazed to see a Chinese copy of Stack Overflow, which I think should be encouraged.(Jeff, do you think so?)

IMO, there is a strong correlation between English mastery and programming competence among Chinese programmers.

And I think I can reasonably infer that the top 5% of Chinese programmers do prefer English docs over translated ones, thought they still stick to Chinese when discussing.

See my blog for the details @ a href=http://an00na.blogspot.com/2009/03/all-programmers-are-english.htmlhttp://an00na.blogspot.com/2009/03/all-programmers-are-english.html/a