Jeff Atwood outed himself as an ugly american when he blogged about english as the lingua franka of software developers.

I quite agree: You should write almost all things code in English. For an American this shouldn't be a problem, but for Germans (like me) and all the other non native speakers this comes as a multi level challenge:

  1.  Writing the technical code in english. And with that I mean code that concernes it self with technical problems. That is ok for most people I know, but it is tough for many people that grew up behind the iron curtain, where they did not learn english a second language.
  2. Writing the non technical code in english. Here it starts to get tricky. In many projects it is hard enough to find proper words in your one native language. E.g. consider an application dealing with trains. There are many things that might get named train, yet need different names in order to get distinguished: the actual physical train with engine and waggons and all, the conceptual train traveling from one point to another at a certain day and time, the conceptual train, traveling every monday at 16:50 from Paddington. Try to find simple words for these three things in your own language. Good. Now translate them to your favorite foreign language. I guess you got the point.
  3. Writing documentation. Finding a single word for naming a class or a method is kind of ok. But many hit a wall when they need to write complete sentences. The problem with this aren't the many mistakes made, but that people write even less comments, when they feel unsecure in the language they have to use.
  4. Translating back: Most germans (and I guess this will be true for other nations as well) will translate any english text back into their native language (german). And they do this with just as many mistakes as they translate their german into english. So what you will get mit resemble this:

    Historically, several dialects of English, now Altenglisch who have been to Britain by the Anglo-Saxon settlers from the 5th Century. The language was strongly influenced by the Old Norse language of the Viking invaders. After the Norman Conquest, Old English to Middle English, borrowing heavily from the Norman (English-French) vocabulary and spelling conventions. Modern English, and from there continue to adopt foreign words from a variety of languages, but also the minting of new words. A considerable number of English words, especially technical terms, were based on the roots of Latin and Ancient Greek.

    This is a paragraph from wikipedia translated to german and back using Google Translate. While you probably get the idea what it is talking about, you will have a hard time to understand the details, which of course makes many english comments in code next to useless. After all code comments are about the details.


So, what can we do? We being the non-native speakers. I propose we borrow a concept of continuous integration: Software Integration is hard, so lets do it more often. Therefore I'll vote for English whenever the question arises. I know it is tough for many, but the alternative means to mumble along in a abysmal mixture of English and German, until you work on a true international project where the answer is set. If you know any developers, having a hard time reading or writing in English: Take their German (or whatever) books away and replace them by the English equivalents. Get them on a international project, preferably abroad. And if you are hiring people, make sure the candidates English skills are reasonably.