a companion discussion area for blog.codinghorror.com

The Ugly American Programmer


This ‘programming english’ works both ways though. My first job out of college was as the first technical hire for a small startup who had just commissioned the working prototype of their big idea from Digital (DEC) AB in Sweden. They had a working system that needed changes.

So my first job was learning VB2 (it was a while ago), VAX/VMS and enough Swedish to understand the source code. However, a little Swedish went a long way - you don’t have to discuss poetry with the program, only understand the intent. First, Next, Previous,Cancel, Last, Print, Order, Product… a few words are all you really need, if the code is well structured. I used to do the same with German on my Atari ST, where so much of the freeware was written by Germans.


I guess it makes sense for developers to have a means by which to communicate collaboratively on an international level. The mathematicians are lucky to be able to communicate via math. It’s kindof de-facto so I’m not going to fight it, but we could have used a better language than english. English has rules, exceptions to those rules, and other things that are legal which are against both the rules and the exceptions. It’s like PERL.


I would even go so far as to claim that english and other non-case languages hold an advantage for those who speak it, since it allows for more flexible though patterns.

English is NOT a non-case language and in no case is a more flexible language. Actually by having distinct word-forms based on case one has more flexibility on the construction of the sentence, consider the German language, it has 4 cases: nominative, accusative, dative, and genitive. Depends in which case a pronoun/article is located it changes its form:

English - German : Nominative Accusative Dative Genetive
the (masculine)der: der den dem des
the (femine) die: die die der der
the (neuter) das: das das dem des
the (plural) die: die die der der

Let’s take the sentence: Er gab ihr den Stuhl (He gave her the chair).
Er = Nominative masculine 3rd person singular (nominative: er)
ihr = Dative feminine 3rd person singular (nominative: sie)
den Stuhl = Accusative masculine singular (nominative: der Stuhl)
Based on the distinct words one can build the following sentences with exactly the same meaning (whether one would say that is another story):
i. Er gab ihr den Stuhl
ii. Er gab den Stuhl ihr
iii. Ihr gab er den Stuhl
iv. Ihr gab den Stuhl er
v. Den Stuhl gab er ihr
vi. Den Stuhl gab ihr er
Try the same in English:
i. He gave her the chair
ii. He gave the chair her
iii. Her gave he the chair
iv. Her gave the chair he
v. The chair gave he her
vi. The chair gave her he
As you can see it is impossible in English to have the flexibility base on non-case. Because these different distinct forms do not exists English heavily relies on the position of the sentence elements, i.e. the object in before the verb is the doer, the object after the verb is the receiver of the action, the object after the receive is the acted upon object of the sentence.

Time flies like an arrow; Fruit flies like bananas.

Have a lot of fun…


Advocating the adoption of English as the de-facto standard language of software development is simple pragmatism, the most virtuous of all hacker traits. If that makes me an ugly American programmer, so be it.

No advocating is necessary, English is already the de-facto language of software development. Advocating it does make you an ugly American. What are you fearful of?


I think all programmers should be capable of speaking and writing English.
For me English is is my third language but I would be dead without it.
As many pointed out most programming languages are subsets of English so when things are properly named you can read code almost as normal text.

My worst experience with programming ever was when I got a web based Project management system to maintain and modify.
The system itself was great, the only problem was that everything (variable names, function names, classes, comments) was Dutch!
Now let me clarify: The system was local in Holland. No, it was never meant to go out of there. But it DID!

So I think every programmer should speak, write and comment in English at least out of courtesy for the other guy who will get you cryptic code dumped into his/her lap!


To write code comments only in English is - in my opinion - not a good idea. Here we have developers from Russia, Italy and Germany, some with very mediocre English skills. To read their English code comments is just funny. I have reverted these back to German because at least now everybody understands what a particular method is supposed to do. see lost in translation…


In the bigger european countries like germany or france, there exists many books in native language, for all sorts of development - many more books for each topic than are actually needed.
Some of these books are even better than any translations from englisch books :slight_smile:
Even many blogs and newsgroups with native speakers exist. All television is broadcasted in native language. So there is simply no need for any to use english at all.
Smaller countries like the nordic countries are forced to use english, because there are too less native sources, even in television many series and films are sent untranslated (which wondered me greatly when i was there the first time :-).

Conclusion: If you want sell your tools, offer a a native version. Microsoft does so with nearly all development tools they offer, and thats a key to the success of windows as a platform.
If you do not, you are mistaken and ignore a big part of the pie. Others will do better and get bigger market shares - your decision.



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.

This is also known as network effect - most programming sites
are english biased.

So what? I don’t read most programming sites. I read at most a hundred. It doesn’t matter if most programming sites are english based if there are enough programming sites in one’s own language to provide good support.

But you completely missed the point. What I’m saying is that there is a LOT of non-english programming sites, but YOU don’t read them, and you didn’t post IN THEM such discussion, so you don’t get their feedback.

Go out on NY streets and ask around if americans are nice people. Now do the same on Basrha. You’ll get different answers. THAT is my point, you have selected OUT people who don’t speak english, so how can you evaluate their skills as programmers?

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 language is 95% of technical publications done in first?

Are you SURE you understand english. What I said is that vocabulary is NOT an issue, because it is constantly changing anyway, no matter what you speak.

And, by the way… how many technical publications on the programming field have you read last year? And this year? How much they have improved your programming skills compared to other activities, such as reading and writing code, reading blogs, or reading books published years ago?

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.

So what? The point is that english is the lingua franca for
programming and you’d do well to know it.

No, that is not the point. I’ll quote Jeff: shouldn’t every software developer understand English?

If non-english speaking programmers do as well as english speaking ones, then the answer is no. And if I have EVIDENCE that this is the case, that’s relevant to what Jeff is talking about in his blog.


Hi you all:

I’m from latin america and I live in Spain right now.
It’s true that it’s hard to find good translations of books and documentation in Spanish, and when you do so, they are mostly outdated.

As a programmer is way easier to learn English in order to read documentation than try to understand those weird translations.

In my work flow, I put names to everything in English, that way it makes more sense to me if I have to review that code later.


Esperanto has a lot to offer and is worth serious consideration.


The greatest abomination on computing world is the localized functions in Excel.


I live in Brazil, Work as programmer for like 9 years. And everywhere I worked ( 5 places) you have ZERO chance of being hired to do ANY level of programming (even HTML) if you cannot do it in English.

And I think its right! These are professions about information and information manipulation. BEing able to understand each other always is simply so basic and undeniable that is something that could not even raise discussion.

Same way no engineer will reinvent math with different notations and expect people on his company or country to use it.


While the good things about using english in programming that were mentioned in the article and comments are true, the premise doesn’t follow. There is no reason to ‘advocate’ English. English in programming or elsewhere is not defended by linguistically illiterate advocacy but by the large body of cultural artifacts that have been created in recent history using that language (i mean the term ‘cultural’ to be as wide as possible, covering even technology). Of course one can recommend another to learn English as a very useful and necessary skill today. But one cannot recommend that, as a broad and international social class as hackers are, we choose to adopt a language, even if it’s based on a realization of a de facto condition. Languages are constantly changing and it’s up to the individual to decide if he can express himself in one or the other language. Just are there are many reasons for a non-english language native speaker to use english there are many reasons for him not to (they are obvious) but what’s important is that individual decisions change the weight of these reasons. So, if for example I decide against using english to comment my code for individual reasons I am going to enrich my language in the process. Part of the reason people find it hard to translate technical documents in their language is precisely because they very rarely try it. Of course, they aren’t to blame for that since they are encouraged by real linguistic phenomena that relate to the richness of the English language, but there is no reason to artificially encourage them even more. That is kind of like a subsidy to the English language.


Yes, every software developer who cares about his/her career should understand English. You can stick to your local market but this is a low ceiling for your career. In the outsourcing arena you must be able to speak to foreign customers and partners. Communicating well is part of our skills as developers (does anyone still think it is only about how technical you are?).

Besides, if you want to be respected as a programmer, you must write code that is not only well designed but also understandable by other people. It’s not like we get a living from obfuscating code (at least we try not to :). I live in Brazil and if I ever write variable names or comments in Portuguese, it is on personal/practice code only, unless this is a project requirement (it hardly is).

My first contact with a computer was like 14 years ago. Everything has always been in English since then, from games to programming languages to decent Internet sites. Whatever the common idiom is, a standard is necessary, and if the current standard changes, we all will have to get used to it.

So let’s do our best to improve our English skills and make ourselves understood. :slight_smile:


Everyone trying to advocate Esperantos should just give up - it’s too late. Maybe when English dies, you can try again.


I totally agree with the author that programmers and developers should be well versed in english to understand the documentation and articles. Some terms can be very well described in a particular language and computing theory is difficult to describe in any other language than english. I’ve seen people coming with horrible words/phrases to describe computing terminology in their native language which if we hear we’ll definitely laugh. One place in software where native language is suitable is for the end users of your application who are not programmers. They will find it easier to use the application if it’s in their native language rather than in english. Although such inclination by the end users is also reducing now a days in come Countries.


Esperanto is work in progress, pre-alpha (only 120 years). When English dies, it’ll be still up and running so that people may use it and enjoy its simplicity. It’s almost like a programming language, because it’s grammar is very logic, without weird (natural) exceptions (for each letter - one foneme, etc).

I’ve decided to program only in Esperanto, from now on. For me, it’s just fair enough.


The existence of a lingua franca is very useful, but the fact that it became English of all languages is somewhat disappointing to me.

The innate qualities claimed for certain languages have more to do with a cultural bias than with the language itself. These cultural biases are ever changing.

In the late 18th century, the French were thought of as a very rational, decisive people, so the French language was considered a very rational, decisive language, supremely suitable for scientific and technical publications. At the time the German people were thought of as a weak, ineffective bunch of philosophers and hopeless romantics, so the German language was considered to be suitable only for poetry and philosophy. Certainly not for suitable for real men.

Of course times changed, as Germany was united in the 19th century and emerged as an industrial powerhouse, while France declined, the perception of the two languages switched place. Two great wars later, and it has changed even further. The language of Goethe and Kant is now widely considered to be cold and harsh, suitable only for loudly barking orders.

Such dramatic shifts in presumably innate qualities of two languages that haven’t changed very much at all in the past 200 years!

I know it is completely impossible for native English speakers to imagine this right now, but the qualities you consider to be innate to your language are not innate at all, but merely a perception reflecting the current power and influence of your culture. A power and influence that is already declining! As Asia inevitably reemerges as the center of human civilization, this perception will likely change. Probably not in our lifetime, so in the meantime it will remain necessary to master your impossibly complex language, with its unintuitive and very much non-phonetic spelling, its inflexible syntax and sparsity of phonemes, and put up with having one’s qualities judged primarily by the way they speak English, without the slightest consideration for how bloody impossible it is to attain native level fluency!


The suggestion for english-only programming is a bad one. The reason to refute it is just one word: monoculture.

People say don’t use Windows, it’s monoculture, everyone uses it and all hackers attack it and so malware wreaks havoc on it. If there were six or so major PC desktop OSes, with 15-25% market share each, the cybercriminals would have to fight in a fragmented space, with much less return of investment and without any chance of a global epidemic outbreak.

Similarly, english programming monoculture hurts, because all coders will think the same enrish-logic way. English, especially the american english variety is a very simplistic language, so coding in english will make your product brutally simple, therefore unsuitable for more complicated tasks.

The japanese are much ahead of the world in robotics, which suggests their culture and language, with a strong emphasis on diligence, cooperation, obedience and senior-junior relationship is better suited for creation of artificial humanoids. If you force all robotics programmers to think and code in english, it will take a good 1000 years to get those fusion-powered miniskirt catgirls you dream about.

Similarly, chinese and russian programmers are leaders in malware development, which suggests their language and culture is better suited for translation their violent and often terribly bloody history into combat bytecode. I mean what is the significance of ruthlessly wrecking a few servers compared to tens of millions of war dead?


and France, interviewers, doctors, Nba’s etc, you are lucky if they barely express themselves!