3

Situation: Automatically generated memebers, such as MenuStrip items, have their (automatically generated) names based on the text entered when the item was created. My most common situation is creating a menu-strip and adding menu-items by entering their text (using the graphical designer).

Since my GUI is in Hebrew, all these members have a name which contains a Hebrew string. Something like "(hebrew-text)ToolStripItem". When I create event handlers, the event handlers "inherit" the hebrew text: "(hebrew-text)ToolStripMenuItem_Click".

This actually works well, IntelliSense has no problem with Hebrew text, and so does the compiler.

The question is: should I change these names (or prevent them from being created in the first place)? What are the possible consequences of keeping those names?

EDIT: To clarify, when I say Hebrew text, I don't mean Hebrew words written in English text, I mean actual Hebrew characters.

M.A. Hanin
  • 8,044
  • 33
  • 51
  • 3
    I'm familiar with this dilemma, but, do you really expect to get anything but a random collection of opinions regarding this question? – Captain Sensible Apr 25 '10 at 15:43
  • I think community wiki would be appropriate. – pmr Apr 25 '10 at 15:45
  • @Seventh Element: Yes, I expect to get rationalized opinions. I want to know people's considerations. I want to know about possible pitfalls. I'd love to hear a case-study where this caused trouble. I seem to have high expectations from SO users, and usually they live up to my expectations. – M.A. Hanin Apr 25 '10 at 15:48
  • Related (if not duplicates): http://stackoverflow.com/questions/250824/do-you-use-another-language-instead-of-english http://stackoverflow.com/questions/685468/non-english-domain-naming-issues-in-programming http://stackoverflow.com/questions/202723/coding-in-other-spoken-languages http://stackoverflow.com/questions/553082/do-you-code-variables-in-your-language http://stackoverflow.com/questions/1046419/variable-naming-and-team-members-who-speak-another-language – Jørn Schou-Rode Apr 25 '10 at 15:49

5 Answers5

9

Always program in English. All the successful development teams I've had experience of in several EU countries do this. It makes it a lot easier if a (say) Dutch team wants to sell code to a (say) Spanish one.

  • Agreed. I am Portuguese and when I develop I'm not expecting anyone to see my code. However I always code in English. First, it helps you exercise your English. Second, you'll never know... Imagine Microsoft or Google wants to buy your masterpiece, only to find out that your code is full of meaningless words... – Rui Curado Apr 27 '10 at 22:22
2

To me, English is the language of software development. For one, it is a widely spread language among non-native speakers, which is even more the case among developers. And English is a very simple language to learn, at least to a sufficient level for expressing software problems. I personally expect every developer (at least from Europe) to have that language level. Those who don't, are isolated from the rest of the world, not having access to many important resources.
Also, since a vast majority of all developers uses English, there is a more less established terminology for software related matters in English, which greatly helps reducing ambiguity.

Personally, even as user, I go as far as always trying to get software in English (although some companies just don't seem to understand they are not helping me by only offering a German version). Localization often is crap and it's hard to get help, since the tremendously well done translation makes it impossible for you to find out, how the feature you're having problems with could possibly be called in English, while at the same time, German help is not available. :-D

Any developer, to whom it makes a difference, whether he writes his code in English or not, should improve his language level, for example by coding in English. If it doesn't, there is no reason, why he shouldn't be using English, but plenty of reasons why he should.

English permits developers from all around the world to form a big community, sharing knowledge and experience, and for teams from different nations to work together without language barriers. Personally, I'd like everyone around the world to learn English, but I can't expect that. However I think I can expect it from someone, who masters a multitude of programming languages, has a sufficient knowledge of mathematics and has trained his abstract and logical thinking.

Coding in English is like using proper formatting or having consistent naming conventions and using expressive identifier names. All these are most fundamental best practices of programming (actually not even "programming", just "writing code"). Doing so comes at no extra effort, if you're used to it. Not doing so also works just fine. Until one day you will cross the borders of what "works just fine", and that's when things get ugly, because the longer you refrain from using best practices, the harder it is to change things.

So yes, you should change your member names. And you should simply take the habit to create them in English in the first place.

greetz
back2dos

back2dos
  • 15,588
  • 34
  • 50
1

I have seen this issue quite a few times in my current job. I'm an Indian programmer, who is dealing with code written in German. All the names of functions,variables, comments are in German... I had a really bad time reading the code until I used a refactoring tool and renamed all the variables to English descriptions. In an earlier job, I had to deal with API manuals written in Japanese only. Comments in Japanese! Extremely irritating and difficult to maintain such code, as sometimes the translations leave you guessing as to what the original programmer meant.

My suggestion: You don't know who's going to be maintaining your code. Best if you write it entirely in English...

Bharat Mallapur
  • 674
  • 9
  • 17
1

Probably. I'm in favor of multiculturalism, but it's very frustrating (particularly for open source) when the primary documentation is in English, but the code isn't. You get things like T_PAAMAYIM_NEKUDOTAYIM (note that most (all?) of the other PHP operators are just symbols or English). For extra irony, the page that documents this is not even internationalized to Hebrew. Things may leak into the UI unintentionally, which makes internationalization harder.

Matthew Flaschen
  • 278,309
  • 50
  • 514
  • 539
0

It is really just a maintenance issue, If all your developers know hebrew then you are good, if you will ever outsource parts of the project, make it open source, or hire foreign developers, then english is pretty much the universal language.

Romain Hippeau
  • 24,113
  • 5
  • 60
  • 79
  • 1
    Seen from that perspective, it is "just" a maintenance issue. Too bad maintenance plays such a big role in software development. Had I known beforehand, I would've chosen a career in banking instead. :D – back2dos Apr 25 '10 at 16:57