The Ugly American Programmer

For our friends in the UK, I think I can sympathize with you. As a native US citizen learning to program means having to learn so many technical terms and programmer idioms in US English is not always easy for us either. IEnumerable, concatenation, iteration, polymorphism, idempotent, deprecated, Jump the Shark (thanks to Jeff) :), Eat your own dog food, etc. are not normally found in the average conversation or vocabulary.

I can only imagine the confusion our friends from China experience trying to understand some of our programming idioms!

Man, that remindes me of a really stupid newbie mistake I did on a new project - I tried to write it it in my native language (i.e. function names, classes, comments etc.). Luckily I realized the shortsightedness of this before hitting version 0.1.

Also, I agree, english is the linuga franca of programming. Currently at work I get to maintain code that seems to be written when a company was small and national, now itā€™s international and still containing non-english commentsā€¦ that just sucks!

Finally, if you ever think to start an open-source project and publish it, my humble advice: use english!

Even good programs, such as OTRS, if poorly translated to English, make them impossible to justify using.

ā€¦which is why Iā€™m currently switching us from OTRS to RT.

Iā€™m going to Paris for my vacation this year so Iā€™m learning a little French. I bought a pocket translator (Pocket PC customized for language translation) with an audio phrasebook so if I really have problems communicating Iā€™ll just whip that out.

There are plenty of Internet resources to help you learn another language. Iā€™m using the Reverso Online Translator to create MP3s of English phrases translated into French and then compiling them into my custom help collection, using Flash to play the MP3s. Most language learning sites force you to download sound files though. You can also find plenty of YouTube videos created by French teachers.

You canā€™t program in French but you can use Eiffel Studio and Eiffel.NET. :slight_smile:

@Ryan

At our company we try to apply the principles from Domain Driven Design. So yes, that means our code is somewhat a mix of English and Dutch. Dutch for the domain concepts, English for more technical idioms and patterns. So we end up with methods like ā€˜getVliegtuigā€™ or classes like ā€˜VliegtuigDecoratorā€™.

At a previous project (no domain driven design applied) we translated everything to English even the domain. This falls apart the moment the domain becomes complex or is about local concepts (for example the social security system of a certain country).

GOD BLESS THE RED, WHITE AND BLUE!!!

In all seriousness - I know some people through IRC that speak English as a second language, and I am quite jealous of them that they are speaking more than one language. Sometimes I will idle in #archlinux-fr and see if I can understand what they are saying. Also, I try to imagine how crazy it must be, reading in a second language, something that is already probably complicated due to the technical nature of programming.

I donā€™t like english in programming languages. I often see code from India which is badly commented in english. Code from Germany or Sweden where I prefer to read the fucking code just because the comments are not written in a fluent english, even if programmers pretend to know english well. Even if you see british comments:
Serialize // serialises
you can think to begin to scream.

The bad thing is that many companies want english commetns to transfer code better to international teams. The bad thingā€¦ The bad thing really is that you get everything more and more blurred. The code is more understandable than that crippled english. If you have ever seen a program which is translated by programmers from english to german or german to english you will know that programming english has nothing to do with understanding or writtinfg in english.

For some companies also the company language is english. There exist other companies like Porsche which resist to use english. The have made much studies about it and just found out that the communication in native language is much more clear and it is cheaper to employ good translators than trying to put a company to bastarised crippled english.

Just try to listen to an indish developer who speaks english and think again.

Dutch for the domain concepts, English for more technical idioms and patterns.

Ah, ok. So English infrastructure and localised domain, that makes sense. Dutch is pretty grammatically similar to English though isnā€™t it? I wonder how those with native languages less amenable to being translated into object models deal with it.

Yep. We should all use English. In Java.

English is the de facto language for Computer Science simply because of the number of computer languages invented where English is the native language.

Hereā€™s a short list:
x86 Assembly
x86-64 Assembly
COBOL
Fortran
Common Lisp
Scheme
BCPL
B
C, and any language based on C (C++, Objective C, etcā€¦)
BASIC
Perl
Java

These are just the languages I can think of off the top of my head.

The MS supported VB6.0 Korean reference. but they did not supported VC++ Korean reference. I am not bilingual elites but I donā€™t have free to choice in this kind of situation. If I need VC++ , I should read VC++ MSDN written by English. I have no right to select language.

I think that Computer and programing sciences are born from America just like movie. Computer and movie are invented by Americans.

If you want to know a core of the Taekwondo. You must learn korean language.
because of every Taekwondo terms are own korean words.

Same reason If you want to know a core of computer programing. You must know English. Because The Best of Best computer experts are American or English native speakers or bilingual Europeans. At least they usually write document by English.

The MS supported VB6.0 Korean reference. but they did not supported VC++ Korean reference. I am not bilingual elites but I donā€™t have free to choice in this kind of situation. If I need VC++ , I should read VC++ MSDN written by English. I have no right to select language.

I think that Computer and programing sciences are born from America just like movie. Computer and movie are invented by Americans.

If you want to know a core of the Taekwondo. You must learn korean language.
because of every Taekwondo terms are own korean words.

Same reason If you want to know a core of computer programing. You must know English. Because The Best of Best computer experts are American or English native speakers or bilingual Europeans. At least they usually write document by English.

Lady Lovelace, being the first programmer, spoke English as her native tongue. We must remember that computer languages are true languages that are in turn based on a spoken language, English. To fully understand the evolution of computer languages, one will have to understand English.

Yes, I personally agree all developers should understand English or to be a good developer you need to be good at English.

But the fact is thatā€™s not the case right now when we talk about developers all over the world. Actually, to be a developer doesnā€™t require so much knowledge in English, and there are so many developers in China canā€™t speak or understand English very well. They donā€™t read English books, and most of their time they donā€™t visit websites in English. Thatā€™s why Chinese book market have good sales on foreign languages books tranlsated in Chinese, especially books of computer science. SO is one of the most popular developer community websites and users are from all countries. But I believe the percentage of visitors from China and other non-English speaking countries are very low.

So I think the problem is how to help these developers who are lack of English skills?

I agree with Leonel and Nick Fortescue: itā€™s not exactly English that developers speak. Itā€™s English-based computer-related language.
Itā€™s good that most programmers across the world share the same language.
But why stop at programming? It would be good if all people in the same profession (any profession, not only in programming) shared the same language.
In fact, that happens already. The number of natural languages shrinks with years and languages are getting similar to each other.

East End brewing makes the best stuff in town. Very difficult to get outside of the region.

Excellent article, thank you.

This website helped me a lot from the very beginingā€¦and this post about stack overflows serves my long pending issueā€¦thanks a lot.

I also comment everything in English, as well as reading technical articles in English, essentially for the same reasons as Slawomir.

Since I switched to DVORAK-DEV I also left accents and proper punctuation in the dust. I donā€™t miss them.

Obviously, if you write this post on an English language blog with an English readership, you will be preaching to the choir. Although most Western Europeans attain an impressive level of fluency through their work as a programmer, this is hardly a universal phenomenon. You undoubtedly have heard about the site CNProg, a carbon copy of Stackoverflow (both in design and usage) but in Chinese. I think this is a good example that adopting English as the lingua franca for all programmers is not very realistic.

As I am living in Japan, I can tell from experience that many Japanese do not have a sufficient level of English to read/converse about programming in English despite many many years of experience.