views:

130

answers:

4

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.

+1  A: 

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
A: 

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
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
+7  A: 

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.

anon
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
+1  A: 

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