Ask Slashdot: Do Most Programmers Understand the English Language?
Shadoefax writes "I have been developing Firefox add-ons for several years and all so far submitted to AMO have been translated (localized) into several different languages. My latest add-on is geared more to the web developer as opposed to the average web browsing user. (It is a utility for examining JavaScript Objects and their methods and properties.) By my reckoning, I believe JavaScript, HTML, CSS and the DOM are all pretty much designed to be easily understood by English language readers. My question is this: Can I assume that most programmers understand the English language well enough that I may forego localizing the UI? While this will save time, effort and bloat, it may also restrict the usage of (what I hope) is a useful tool for developers."
Reader Cenan provides an interesting response from the perspective of a developer for whom English is not a first language:
"I am a developer, and happen to speak english as a second language. As much as I find it's helpful to my users to have the program's text information presented to the user in their native tongue, I really hate it if the tools I use speak to me in my native language.
Some vital parts of exceptions tend to get mangled when being translated, and you can't search for relevant information regarding whatever obscure failure you're experiencing unless you translate it back. And Google Translate doesn't do very well with technical terms.
It is especially unhelpful when the exception has been re-thrown from somewhere deep down, and is being presented with some parts translated, some parts not (I'm looking at YOU Microsoft; "Was this exception text helpful to you?" ( ) No ( ) No (x) Hell No!)"
Reader tlambert recommends such a tool only if it doesn't have end-user exposure:
Google translate will do the job well enough for non-English speakers, and almost every programmer is an English speaker in any case - or used to Google translations of CS technical papers, in any case.
If there's actually UI being exposed to an end user rather than a program, then of course there should be some way to localize the end user exposed content, although you should expect that most users won't end up using it, and will opt for English instead, unless it's for data input for text data for storage and retrieval.
For better or for worse, the primary language for IT is English. I generally think it's for the better, since there are concepts that the English language is better suited to representing, either natively, or with coined words/terms/phrases and/or "borrow words". For the last, French is probably the worst language, since they have "language police" whose sole reason for existing is to prevent "borrow words" entering the French language and "contaminating" it. The next most comparable language for "purity" is Japanese, which was represented by Matsumata Ohta when he attempted to prevent the C-J-K unification of the Unicode standard, and eventually got his way by pushing another Unicode code page so that you could, for example, grep -v the Chinese text out of a Chinese textbook on Japanese poetry. Double the storage size for a wchar_t, just so that they could keep the languages distinct in both encoding and rendering, rather than just in rendering.
Reader dejanc responds with an analogy:
"Being a programmer and not understanding English is like being a historian writing papers on the Roman Empire and not knowing Latin. There is a lot of programmers out there who don't understand English or are not comfortable with it, but as a rule, they are not that good.
You have to learn our profession somehow. Yeah, you can learn C or Java from a book written in your native language, but most APIs out there are documented only in English. If you don't speak English, then your resources are severely limited.
That being said, if you can do localization, do it. Localization is usually very easy and doesn't require much bloat. You can have volunteers do the actual translation, you just need to get the strings ready, so it shouldn't be more than a couple of hours of your time.
Some talented programmers are just not talented for learning languages, or prefer to have UI in their own language. They are the ones who Google Translate documentation online, so you'll be doing them a favor."
"I am a developer, and happen to speak english as a second language. As much as I find it's helpful to my users to have the program's text information presented to the user in their native tongue, I really hate it if the tools I use speak to me in my native language.
Some vital parts of exceptions tend to get mangled when being translated, and you can't search for relevant information regarding whatever obscure failure you're experiencing unless you translate it back. And Google Translate doesn't do very well with technical terms.
It is especially unhelpful when the exception has been re-thrown from somewhere deep down, and is being presented with some parts translated, some parts not (I'm looking at YOU Microsoft; "Was this exception text helpful to you?" ( ) No ( ) No (x) Hell No!)"
Reader tlambert recommends such a tool only if it doesn't have end-user exposure:
Google translate will do the job well enough for non-English speakers, and almost every programmer is an English speaker in any case - or used to Google translations of CS technical papers, in any case.
If there's actually UI being exposed to an end user rather than a program, then of course there should be some way to localize the end user exposed content, although you should expect that most users won't end up using it, and will opt for English instead, unless it's for data input for text data for storage and retrieval.
For better or for worse, the primary language for IT is English. I generally think it's for the better, since there are concepts that the English language is better suited to representing, either natively, or with coined words/terms/phrases and/or "borrow words". For the last, French is probably the worst language, since they have "language police" whose sole reason for existing is to prevent "borrow words" entering the French language and "contaminating" it. The next most comparable language for "purity" is Japanese, which was represented by Matsumata Ohta when he attempted to prevent the C-J-K unification of the Unicode standard, and eventually got his way by pushing another Unicode code page so that you could, for example, grep -v the Chinese text out of a Chinese textbook on Japanese poetry. Double the storage size for a wchar_t, just so that they could keep the languages distinct in both encoding and rendering, rather than just in rendering.
Reader dejanc responds with an analogy:
"Being a programmer and not understanding English is like being a historian writing papers on the Roman Empire and not knowing Latin. There is a lot of programmers out there who don't understand English or are not comfortable with it, but as a rule, they are not that good.
You have to learn our profession somehow. Yeah, you can learn C or Java from a book written in your native language, but most APIs out there are documented only in English. If you don't speak English, then your resources are severely limited.
That being said, if you can do localization, do it. Localization is usually very easy and doesn't require much bloat. You can have volunteers do the actual translation, you just need to get the strings ready, so it shouldn't be more than a couple of hours of your time.
Some talented programmers are just not talented for learning languages, or prefer to have UI in their own language. They are the ones who Google Translate documentation online, so you'll be doing them a favor."
All of the protocols that web programming depend upon are published in English. So presuming the ability to read written English is reasonable.
If you collaborating with non-native English speakers, although, you should be careful to not assume that the ability to read or even write English guarantees that they will be comfortable discussing ideas orally in English.
IMHO, after trying to manage a number of software projects in the 70's, 80's and 90's, no.
I speak very good English. I learned it from a man page.
Credits partly to John Cleese.
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
You should've made it a Slashdot poll for accurate results.
May Peace Prevail On Earth
How hard is it to store all the UI strings in an editable file? Wouldn't that also make your life easier if you decided to tweak the English version?
As for your code being hard to read, name the strings after their English content: $UI_Text_File_Menu_Save
All the ones who can answer your question do.
"National Security is the chief cause of national insecurity." - Celine's First Law
I am a developer, and happen to speak english as a second language. As much as I find it's helpful to my users to have the program's text information presented to the user in their native tongue, I really hate it if the tools I use speak to me in my native language.
Some vital parts of exceptions tend to get mangled when being translated, and you can't search for relevant information regarding whatever obscure failure you're experiencing unless you translate it back. And Google Translate doesn't do very well with technical terms.
It is especially unhelpful when the exception has been re-thrown from somewhere deep down, and is being presented with some parts translated, some parts not (I'm looking at YOU Microsoft; "Was this exception text helpful to you?" ( ) No ( ) No (x) Hell No!)
... whatever
If you review any of the conversations over on Code Project I think the answer is a resounding 'no'... most programmers don't understand English... or at least fail to use it properly even if it is their native tongue. But I digress... Why don't you let demand drive your decision? Architect the tool such that localization is possible and wait for demand to dictate if/when you go through the hassle of translation.
I wouldn't assume. SAP is full of German error messages. Star Office / OpenOffice / LibreOffice still have German comments in the code.
Shame about developers though...
that I wondered if they "Spoke english". (Ok, I'm from the US but some of us here, our english sucks.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
Being a programmer and not understanding English is like being a historian writing papers on the Roman Empire and not knowing Latin. There is a lot of programmers out there who don't understand English or are not comfortable with it, but as a rule, they are not that good.
You have to learn our profession somehow. Yeah, you can learn C or Java from a book written in your native language, but most APIs out there are documented only in English. If you don't speak English, then your resources are severely limited.
That being said, if you can do localization, do it. Localization is usually very easy and doesn't require much bloat. You can have volunteers do the actual translation, you just need to get the strings ready, so it shouldn't be more than a couple of hours of your time.
Some talented programmers are just not talented for learning languages, or prefer to have UI in their own language. They are the ones who Google Translate documentation online, so you'll be doing them a favor.
As a native German speaker, let me share a universal UI idea with you, if you even see a remote chance of having your software internationalized: leave enough room on all your controls so that translated text fits nicely in it. A very simple example: English: "Cancel". German: "Abbrechen". Where "Cancel" fits nicely, "Abbrechen" will be cut off, forcefully word-wrapped or whatever.
That said and to answer the OP's question: I'd assume enough knowledge of the English language from programmers. If you try to label your add-on with not too sophisticated English, it should be accessable enough for the vast majority of programmers.
.... Hey Programmers, what does the following string say in English?
"01001000 01000101 01001100 01001100 01001111 00100000 01010111 01001111 01010010 01001100 01000100"
Life takes interesting turns, but the most interest is when you're off the beaten path.
Finnish does not have a direct translations for "yes" and "no;"
You're not supposed to use yes/no dialogs anyway. For example: "Shall the file be closed? Close - Cancel" or "May the file run? Run - Cancel". Or does the button phrasing practice apply only to English?
But I can't figure out what the translator has used to name it in my native language.
So from one perspective - not using English in the tool you use may cause more confusion than help. Especially for programmers.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
Based on years of reading /., the answer is clearly, "No!"
Some mornings it's hardly worth chewing through the restraints to get out of bed.
You're trolling, but I'll bite.
You're selfish.
By your logic, Chinese or even Spanish would be a better choice than English: http://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers
From a purely practical standpoint it doesn't make very much sense to expect people to author something nontrivial in a language they aren't fluent in. It makes far more sense for the paper to be written in a language in which the author can effectively communicate their ideas. It can then be translated by someone who is good at translating into another language for a broader audience if need be. Just because a smart person doesn't speak English fluently does not mean they don't have ideas worth communicating. That's ridiculous.
He's not trolling, that is just the way things are. While there are more Chinese or Spanish native speakers, there are more English speakers in total. Why? Because when people get to school their first choice of a second language is English.
Just delete "native" from your wiki search and read that article.
Basically, if you want to get anything done, you do it in English.
Some day another language may replace English as the lingua franca like French replaced German and Latin. When you have multiple cultures trying to do things, you need to have a common language to do it in.
None of this should surprise anyone.
--
BMO
printf("Copied %n file%s\n", n_files, n_files > 1 ? "s" : "");
There are languages with more than two grammatical numbers. There are languages that use different word order with different numbers. You need to redesign your simple and easy printf statement to accommodate them, and the outcome is bound to be anything but simple and easy.
I always tell people that it doesn't make sense to write papers (or software) in polish language because only a minuscule part of world population uses it.
Obviously things should be written in Reverse Polish
When our name is on the back of your car, we're behind you all the way!
I would say the best practice is to avoid those situations in the first place.
How would you recommend "to avoid those situations in the first place" when expressing an example that Anonymous Coward gave: "Found [1701] matching words in [English]"? Or consider ordinals, where English has 1st, 2nd, 3rd, 4th, ..., 10th, 11th, 12th, 13th, ..., 20th, 21st, 22nd, 23rd, ... 31st, ..., 100th, 101st, ...
I'm sorry, but programming jargon like "regular expressions (pattern substitution), service packs (bug fixes), binding (pulling information from elsewhere), tuples (an ordered list), virtual void functions (as close to masturbation as it gets in programming) and even web browsing" seemed more designed to obfuscate and inflate the self importance of programmers than convey useful information to anyone who wanted to understand what computing was about.
In contrast, loops, if-then statements, variables and constants all were pretty clear and made immediate sense
Please do not read this sig. Thank you.
As a French speaker, I can guarantee that most programmers here understand little more than the basic programming terms. Most of the specs have been translated into French, so that's not a problem.
Vincent: And you know what they call a ClassCastException in France?
Jules: They don't call it a ClassCastException?
Vincent: No man, they got the socialist system. They wouldn't know what the f*** a "class" is.
Jules: Then what do they call it?
Vincent: They call it a RoyaleWithCheeseException.
Jules: A RoyaleWithCheeseException. What do they call a NullPointerException?
Vincent: Well, a NullPointerException's a NullPointerException, but they call it un NullPointerException.
Jules: Un NullPointerException. Ha ha ha ha. What do they call the spaceship operator?
Vincent: I dunno, I didn't do any Perl programming over there.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
I wish at least the programmers and coders will be less parochial and be more catholic and be open to words/ideas/concepts "not invented here".
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Every German speaker who studies IT learns enough English to read technical stuff. Many - maybe even most - prefer to use English documentation and tools.
I will go out on a limb and say that this is probably true for every Western European country except France.
The French make a real effort to prevent their language from becoming "contaminated" with foreign terms. Where every other language has just adopted computer terms as they were invented, the French have specifically gone to the trouble of inventing different words that sound more French. To take just one example: consider the word "byte". The Spanish say "byte", the Germans say "byte", the Italians say "byte", the Dutch say "byte", but the French say "octet". This is annoying, but really, it's their problem, they've done it to themselves.
Enjoy life! This is not a dress rehearsal.
Speaking English as a second language and having worked with several developers who speak English as their second language (if at all), I am tempted to say "all the good ones speak English."
Almost everything related to software development is described in English. It may be described in other languages as well, but I don't know any other language in which as much information is available. The APIs are generally based on English. Diagnostics are pretty much always available in English. Most questions and answers on the Internet are probably in English. English is not that hard to learn, and you will get a lot of benefit from just being able to read it. Really, if you do software development, you should learn English.
Most software developers I know are good enough at English that they can at least make themselves understood. Those who don't can at least read computer English. Without that, they would be seriously handicapped. Is that an audience you want to cater to? There may be good reasons to do so, but I personally would rather spend my time on other things.
Please correct me if I got my facts wrong.
... oh wait...
It's true for all languages, not just English.
That said, different languages loan different words. E.g. take the Latin word "omnibus" - if we're talking about the vehicle, then it's "bus" in English, and "autobus" in Russian - so far, so good. But where English used the same word for data transfer connection, in Russian it's a different and completely unrelated word (that isn't even rooted in Latin). So if a Russian programmer would try to read an English programming text just by looking at the roots, he wouldn't understand the usage of that particular word.