I had a computer science professor in Canada in the mid-80’s who was from Norway; he mentioned when he got to second year university (the 1970’s, I presume), the professor there gave them the option of English or Norwegian for the class, and the class voted overwhelmingly for English. Of course, back then computer and math books would be overhelmingly in English; there is probably a significantly tinier marked for local language, and all the extra refeence material - journals, library, etc. - would be overwhelmingly in English.
Even today, unless there is some strong local community, the on-line references are in English; I presume between Google translate and the beginner material there is enough to get started; but discussions on how to fix this or that posted online often contain “sorry for bad english mine” comments because English becomes the common language by which any two non-english programming posters can usually converse.
(Love the scene in “What did you do in the War Dad?” - the German and Italian officers first meet…
“Sprechen sie deutsch?”
“Non. Parla italiana?”
“Nein. Speak english?”
“But of-a course!”
From then on they speak in english through the film…)
I’m curious how deep the translation is for products like Excel. DOes a translated version betray its foreign roots, or are they choices for functions etc. pretty good? Is it a simple substitution of one keyword for another or does language alter the way some things work?
I deal with German and Dutch programmers constantly as part of my job and they all speak fluent English (they are required to as a condition of employment by our company). We all work on the same programs so we have to speak a common programming language (as well as a common regular language).
In Japan, the situation seems a bit more complex.
Most of the programmers here usually learn their stuff by reading the Japanese versions of the popular CS books, or books by Japanese authors (Some of which are really good). The examples are written completely using English keywords , but the comments and the explanations use the Japanese words.
The first time I talked to someone about doubly linked circular lists, I was met with blank stares until a colleague translated it as a sohokojunkan risto (a real mouthful). But they were a pretty iffy bunch, and I expect most people would have no trouble understanding what is meant by the term in English. This kind of translation becomes very difficult if you are describing some uncommon constructs anyway. Last I heard, most universities have started to use the English words these days.
Another interesting thing, there are different words in Japanese instead of foo and bar, so some of the temporary stuff will not be names as expected (hoge, hage and so on). It really bothers me sometimes.
Most of the younger people I work with have no trouble working with open source code in English.
In all the places I have worked, everyone uses English as a base language because of coding guidelines. But I do see some Japanese comments sometimes. Not encouraged at all.
The only time I have seen non English stuff in the code (Documentation in another story) is while using legacy stuff, or when we use Japanese outsourced programmers. But even then, its rare.
I think programming is equally easy/hard whether you speak English or not.
Someone mentioned EXCEL - here is an example (I hope the syntax is right)
Now that’s really confusing, because you have different delimiters based on your international settings of Windows. If I had an English version of EXCEL it would be an error using 2.3 instead of 2,3.
What comes to Finns speaking English, it sounds awful on many occations. This song is a joke, but my boss at NSN sounds just like this
I mean many keywords like for, class, method, cast etc. are English words and yet their meaning in programming will probably not be immediately obvious to a native English speaker with no programming experience.
That’s before we get to abbreviated commands like strtok or general strange naming like pragma.
It probably helps speaking english, but it’s not a huge difference.
I agree many keywords have programming meanings that are not obvious to a native English speaker - in fact, this HAS to be true. If their meanings were the same, everybody would program by just writing what they wanted the computer to do, and wouldn’t think of it as a skill. Why, when choosing a word to mark the beginning of a sequence to be repeated, did we pick the word “DO”? That word doesn’t mean "get ready to start repeating everything I now tell you to do until I say the word “LOOP” ( or whatever the syntax requires).
This is pretty true in computer use, too. If I ask you to pick up a book for me when you go into the next room, you say “OK” before you do it, not to signify that you think you have finished doing it.
The keywords may look like English words, and often the English words remind us somewhat of what they do, but they aren’t English, are they? How are objects instances of classes, if you have an English understanding of what objects, instances, and classes are???
Slight hijack. I have a Romanian friend who speaks excellent English (now, after over 40 years in US and Canada). I once asked him where he learned English. His answer staggered me: by reading IBM technical manuals! <Shudder> (He got out of Romania by being sent to England to take an IBM training course and defected immediately.)
This has nothing to do with anything, really: TLDs are only the last few characters of a domain name, and domains are being approved in all kinds of languages. This is already causing problems.
But this has precisely jack to do with why little Jacques still does while loops in Java just like Lisa.
Yep. And this is not to confuse people, it’s because programming involves concepts that often do not map to a single word in English.
We could just as well invent new terms each time there is a new concept. Instead, the convension is to pick an english word with some association to the concept.
Which is sometimes helpful. And sometimes not.
And sometimes, it can actually be misleading…though I can’t think of a good example right now. I suppose “switch” would be misleading to someone new to programming.
How about the “continue” keyword found in many C-like languages? It’s nowhere near obvious, unless you’re already familiar with the idiom, that “continue” in this context really means “transfer execution to beginning of the loop.”
Last year I took a Master’s in Translation, in Scotland. We had a career talk about being a EU translator: I asked whether you are required to translate into your “mother’s tongue”(1) and he said that well, it’s the usual but there’s actually two people in the EN team who do not have English as their mother’s tongue: one Dutch, one Finnish.
Somewhat back to the subject at hand, we’ve had problems in multinational companies when using Excel macros and templates for data cleansing, because of the formatting and function-name differences. Eventually the easiest workaround was to centralize the work, but what a pain! And the delimiters aren’t even correct! (In Spanish, and according to my French classmates it’s also true for them, the decimal marker is not a comma as Windows makes it, but an apostrophe; but every computer program written Elsewhere gives us a comma copying it from Windows)
md, the translated functions in Excel aren’t correct either. SUM is translated as SUMA, but suma is merely addition; the correct term for what SUM does is SUMATORIO. If you’re going to abbreviate it, you would do better just leaving it as SUM for everybody, specially since it would not confuse people as to what it does (and yes, I’ve had to explain to people that they did not have to run several SUMAs to get the result of adding up a bunch of numbers). Then again, we’re speaking about a program which doesn’t define its statistical functions properly either, so…
1: I don’t like that expression because my mother’s language is not my first language, and I know many other people in the same situation.