Computer programming and non-English speakers

I know several computer languages. All of them use keywords that are English words.

What do computer programmers in the Non-English speaking world do? Do they have their own versions with the keywords translated into their own language? Or do the programmers have to learn the meaning of the English words?

As far as I’m aware, pretty much all computer languages are in English and people who aren’t native English speakers just have to do their best.

Take Ruby for an example. Ruby is a programming language that was created by a Japanese programmer, yet Ruby used English words. Even though his ability with spoken English is fairly poor.

English seems to have caught on as the language of computing.

They learn English, not least because most programming textbooks are in English and most discussion about programming online is in English, even when nobody in the discussion has English as a native language.

Linus Torvalds, a Finn, wrote early versions of Linux entirely in English, right down to the comments in the code. English is most certainly not his native language but it was the language he shared with everyone who’d be interested in his project.

(Historical Note: In the old days (1950s through 1970s) there were programming languages with (at least) German and Russian keywords. You’d be hard-pressed to find very many people anywhere in the world using them today, but it isn’t like it’s never been tried.)

I remember learning D-Base which was German for the most part. It was the first and only time my two years of high school German helped :slight_smile:

I think it’s kind of funny that if I go to a Russian or Japanese site and I hover on a link in the lower left of my browser, the link information is almost always in English. Or you can view the source code which is almost all in English.

I guess in the future with top level domain names now being slowly approved in other alphabets that this may slowly change

I too usually use English in my comments, as well as the names of my variables, functions, classes, etc., even though in many cases I’ll be the only one to use my programs. I can’t really explain why; I guess it’s to standardize my programming, as well as take care of the case where someone else in another country would ever want to use my work.

In grade school I learned the Logo programming language with the instruction names in French. It does make sense for this language, which is generally used to teach children programming concepts, to be translated in the student’s native language. But if there are similar translation projects for other programming languages, they’re probably not very common. The English words used in most programming languages are not very complicated or very numerous anyway.

Both. Many programmers have learned the English versions because they were readily available. Now programming languages are often available in international versions. Some languages like C have only a little bit of textual command content and don’t present much difficulty for people who don’t normally use English. APL has none that I can recall, but it has been called by some a ‘write only’ language because it is based on unique symbols. COBOL, maybe the wordiest programming language is supposed to be available in French and German, and maybe other languages. I don’t recall any programming language in another language that did anything but word for word (or perhaps word for phrase) conversions.

It isn’t that big of a deal either, in terms of the programming language. English is the international language anyway, and the concepts remain the same. What can be much more difficult to deal with are the names of functions, variables, etc., that are created by programmers. Those can get abbreviated as they get longer, and a programmer unfamiliar with a natural language may be very confused by the usage. Many programming languages are highly dependent on libraries of functions that have meaningful names in a particular language. It can be difficult enough to find the name of function in one’s native language, I’m sure it can be torturous for those who don’t speak the language.

Off the topic a little: Long ago, a computer science professor told me he found the more cryptic programming languages were easier to pick up by beginners because the usage of English words in some programming languages was unfamiliar. Computerese has inundated the language currently, but 30 years ago, the terms ‘input’ and ‘output’ were unfamiliar to many people in their proper form. They are both nouns and verbs, and their meaning must be relative to something else. I’m not sure if he was right, or just a poor teacher. But the endless adaptation of words to represent variations of relationships seems to still confuse many. And new concepts can be difficult too. Many experienced programmers who have only used procedural languages can be thrown by a phrase such as ‘an object is an instance of a class’.

The number of keywords in a typical programming language is limited, so it’s fairly easy to memorize them even if you don’t know English. It’s all the other stuff - the textbooks and manuals and the need for a common language in international projects - that force programmers to know English.

When using languages such as C and C++ you could, if you wished, create macros to map keywords (and, perhaps, function names) in your native language to their English versions. In the latest versions of MS Visual Studio you can even set your own keywords to have the correct syntax colouring.

Should you need to hand the code over to someone else who doesn’t speak your language you can easily create editor macros to swap between languages.

At least in Thai and Japanese bookshops, programming books are in Thai/Japanese respectively, and the computer book sections are as big as in the west. I can recognize a lot of the books as translations of the various series of popular programming books. So, if the market for that language is big enough, books will be translated.

I worked with some Thai IT people - usually they knew very little English, apart from seeming to know every word of English computer jargon and English programming keywords. Talking about programming in Thai, every second or third word would be English. But they were still speaking Thai.

Not actually programming, but function names in Norwegian versions of Excel and Calc are translated.

For actual programming I’ve never seen a translated version of keywords, although I’m sure there exists some. They may not even be programming languages for kids. Programming books in Norwegian exist aplenty, but what most requires knowledge of English is documentation for packages and librarires.

Not that this is a problem in Norway where English is now part of the curriculum from the first or second year of elementary.

Programming is hardly unique in this regard. international air traffic control is all managed in English and even some domestic air traffic control uses English. I was reading that KAL even requires the cockpit crew to talk to each other in English.

I suspect that a lot of scientific fields would be difficult to pursue without at least enough reading knowledge of English to understand the publications. Especially in the last 10 years when so much information is communicated informally across the internet.

[quote=“Derleth, post:3, topic:551768”]

From what I’ve about Finland, over 90% of the people there speak English and it closer to 100% among younger people. I have a friend that works in Finland and apparently younger Finns speak English better than the average American high school graduate.

My native language is German and I hate, hate, hate those few instances where keywords in (usually macro) languages get translated with the application (as for example with Excel formulas). It makes it harder to discuss problems internationally. (Also someone too dumb to learn the international language, BSE i.e. Bad Simple English, has no business writing software.)

Anyway, the number of built-in keywords in programming languages is usually fairly small and I wouldn’t balk at learning a programming language where the keywords were e.g. in Turkish. It’s not the semantics of the keywords but syntax and concepts that are the hard things in learning a programming language.

Perhaps it would be beneficial to not have natural-language words as keywords as the connotations and sloppy usage of the natural-language words would not contaminate beginners’ programming (for example, in natural language ‘or’ is often used to mean XOR and ‘and’ is often used to mean OR).

Exactly the same applies for me. I have been doing professional programming for over 15 years and never met a German programmer who couldn’t understand English. As was mentioned before, the few keywords in a programming language are not that important, but the general jargon in IT is almost completely English, as well as the technical literature and of course the web resources. I couldn’t imagine doing my job without knowing English.

A good way to think about this might be to take a programming language you know, and translate keywords and identifiers into a non-English language and see how well you think you would do.

e.g. (imaginary Spanish version of C#)

(hmm, is the Spanish equivalent of “void” going to be “vacio” or “invalido”? It depends on which definition of “void” you use)

publico grupo Persona
{
privado cadena nombre;

publico Persona()
{
}
publico Persona(cadena nombre)
{
    Nombre = nombre ; //o : este.nombre=nombre;
}
publico cadena Nombre
{
    obtener
        {
            devuelve nombre;
        }
    establecer
        {
            nombre=valor;
        }
 }

etc.
}

And the API’s. For example:

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];

There’s not a single language key word at all in that declaration.

Saying that they learn English is… optimistic. Also, in many countries there is a lot less reliance in books at the vocational school and university level than in the US (the books are not sold by the schools, so the schools don’t gain anything by making students buy them) and you bet there’s a slew of them in Spanish.

Many programers learn the commands but read them as if they were written in their own language. Some colleagues of mine have serious problems speaking English because if they run into an English word that they learned in a programming context, they always pronounce it in Espamador: value is not “valiu”, it’s balúe; fortén (for/then - “for den”); dogüile (do while, “du güail”). This is not a problem in writing, of course, and by the way add me to the list of “people who want to strangle whomever translated VLOOKUP to BUSCARV”.

In modern languages, the library API by far dwarfs the language keyword set.

And the API is written in English. To the degree any namespace, class, method, or property name is meaningful, it’s meaningful in English.

Translating the language keywords like if, public, etc. into some local tongue would be the barest tip of the iceberg. .Net has thousands of classes and probably 100,000 methods & properties, just as released by Microsoft. Not to mention all the 3rd party libraries sold for use by developers. *That’s *where developers get locked into English; not in how they type the concept *if *or *or *or private.

I started programming when I didn’t know English, back in the BASIC days of the Commodore 64.

That BASIC was fairly easy to learn, since it has only minimal keywords and a small library.

When I started doing more “serious” programming, I had a few years of English at school, and I always tried to get the English books, because the Dutch translations where quite often very badly done (most translators not being programmers) and riddled with errors.

Professional programmers over here in the Netherlands all speak English reasonably well, and pretty much all books in their library are in English, simply because at can take a long time before a translation is available (or, for more obscure subjects, nobody’s translating them because it won’t be worth it).

I would say every Dutch person I ever met spoke English very well. I think of all the foreigners I’ve come across in my life, the Dutch come across as the best English speakers. With the Scandanavians coming in second. They must start English very early in those countries