Ask HN: Can you discuss CS in your native language?

134 points by widforss ↗ HN
Yesterday I needed to message my CS teacher about an exam question, and discovered that I was unable to formulate my question in Swedish, so I opted to write the whole message in English instead. I don't want to share the message, since it is related to an exam, but it was about Iacono's working set structure.

Have your native languages incorporated CS terms to any usable level, or do you have to switch to English, in part or wholly, when the topic is discussed?

173 comments

[ 4.8 ms ] story [ 199 ms ] thread
I think it’s because the level of abstraction with CS is so high, that it’s very hard to communicate these ideas without having a shared vocabulary. This happens to be English for most of the world.
I guess the main issue is that languages outside of English generally don't have equivalent words for all of CS terms. I always have trouble explaining what I do (software engineering) in French without resorting to using English words, just because most words don't exist in French, or they don't mean exactly what you mean.

This reminds me that I can't stand people coding in languages other than English. Variable names/comments in French? No thanks.

It’s also a matter of habit. We are just too used to English words even when French ones exist. Go try and read Principes d’Implantation (sic) de Scheme et Lisp (the original Lisp In Small Pieces): pure unadulterated French and, to me, a constant struggle as I have to translate expressions to English!
I believe this website could be of some help: bitoduc.fr
Are you from France ?

In Canada (Québec) we are often using French words while discussing CS. I've noticed that French immigrants are also using a lot of English words even in random day-to-day words.

We called it "L'anglais de France" (France's English) [1]

[1] https://lactualite.com/culture/langlais-de-france/

I can recall in 1998 I was studying in Germany, taking a semester break from my CS studies. For the fun of it, I checked out the books being used by the CS program - all the textbooks were in English, and I then learned that in that program, most of the classes themselves were conducted in English as well. I know since then that English has become common in courses in many universities in Germany, but at the time it was just a sign of things to come. As other commenters have expressed - it's a vocabulary problem. If there isn't an accepted translation into another language, than the English term will stand (assuming it is the originating language for the concept).
I studied CS from 2011 to 2017 in Germany. Generally all the CS terms are in English, while a lot of the theory (everything math related) or Phyiscs is taught in German. The more you progress into in-depth courses (e.g. master seminars, later lectures on database management) it is more likely to have English lectures, materials, etc.

Generally I would say you discuss CS with other Germans in German. You just treat it like any other professional terminology like medical jargon or Biology.

There was an idea in the 90s in Poland to have each and every computer/CS term have its native equivalent, but the ones proposed were awkward to say the least.

To give an example: a mouse click was supposed to be called a "mlask", which directly translates to "a smack of the lips".

Needless to say that didn't stick and nowadays only veteran programmers are even aware that such an attempt was made.

Same thing happened in Croatia in the 90s. Silly words were introduced and then people made up even sillier words to make fun of it leading to insanities like:

- čigrasto pamtilo "peg-top-like memorizer" for a floppy disk

- čigrasto velepamtilo "peg-top-like big memorizer" for a hard disk

- stolno potezalo - "tabletop pull-arounder" for a mouse

After a while, nobody was certain what was a real term and what was a joke one, so most of it is abandoned now and mostly English terms are used.

I am not sure why that failed, but that's probably because I don't get Croatian nuances. In Korea disk is translated as "storage device" and it stuck. In general, you can make non-silly translation instead of silly translation, and non-silly translations do stick.
I see there was no shortage of creative self-proclaimed linguists in these parts of the lands behind the iron curtain as well.

Our expression for "mouse" was quite byzantine: "manipulator stołowo-kulotoczny" (table sphererolling manipulator?). This just begs for a TLA like "MSK".

Korean translation of "mouse" was "squirrel", although ultimately it lost to a loan. I can't imagine why anyone thought that long-winded translation in Polish would stick.

Squirrel was chosen because it is considered cute, but mouse is considered dirty. I think that kind of consideration of association is important in translation.

> Squirrel was chosen because it is considered cute, but mouse is considered dirty.

That's a great example of the difference between translation and localization.

Well to someone who have never heard of them, "floppy disk" and "mouse" are themselves very comical words to describe the machinery they refer to.

The worst part about those calques are their lack of brevity.

They were funny to many native English speakers in the 90's too.
What a failure. Try non-awkward translation, instead of awkward translation! "smack of the lips" thing is a failure of awkwardness, not a failure of translation.

In Korea "to click" is translated as "to press". Now, that wasn't difficult, was it?

I guess sharing (roughly) the same alphabet it was easier to adopt the English terms.

Then again some words, like "sterownik"(can be understood as "someone who steers" - driver) remain in use to this day.

Eh, Korea had its own share of awkward attempts. It's hard to predict which terms will be accepted.

E.g., in early 90's, some people tried to use daramjwi (literally, "squirrel") for mouse. I'm not sure what they were thinking - a (computer) mouse doesn't look like a squirrel at all.

The term didn't survive.

Even worse offender was the Hercules graphics card, which was widely popular at that time. I think the same group of people tried to "translate" it into cheonha jangsa (something like "the strongest man on earth") - because, you know, Hercules the son of Zeus was known to be the strongest man on earth! (Never mind Hercules was a brand name here.)

No, it is impossible to talk about CS in Greek. I must ALWAYS switch to English.
Yes, I can and do discuss computer science in Korean.
My native language is spanish, and while I obviously have discussions with colleagues in spanish we constantly weave english terms in our talks.

In fact, friends and girlfriends outside the industry have always laughed at the fact that when I talk with coworkers half the words we use are in english.

Why? Well, it's NOT only a vocabulary problem as others have said. Some terms are untranslatable, yes, but also every good documentation or resource you come across will be in english, code itself is in english, and so I spend 90% of my day THINKING in english. We end up using english expressions that have nothing to do with programming during regular conversation.

You can do it in Spanish, but there's a lot of vocabulary that either sounds really weird when translated or there's not a translation. So we use English words mixed in the discourse.
Asere, te voy a tirar este PR a QA a ver si funciona, apruevalo for favor.
This question actually shocked me.

At least as East Asian ppl who speak Chinese, Korean or Japanese etc, it's way easier for us to discuss CS (or anything else) in native languages.

I think this difficulty only exists in certain western languages.

How do you deal with programming languages' being so based on English?
The languages themselves are no problem, you already use non-English for important programming constructs without thinking about it like !, ||, &&, etc., and have to explain their function in English upon first encounter.

CJK have different strategies for localizing technical terms. I don't know about Korean, but Japanese tends toward transliterating English terms whereas comparatively Chinese tends toward inventing calques.

I am a (non-native) Mandarin Chinese speaker, and I'm essentially unable to have the most basic conversation about programming. No terms that I'm aware of are phonetic transfers (Chinese does that occasionally, but not often), they're all new terms, and I can't formulate a single sentence without having to look everything up. It's like having to relearn the language -- very frustrating!

(Not saying they should be doing it this way -- in a way I'm glad they are.)

In terms of general science and technology I find the Mandarin names more illuminating. English technical vocabulary tends toward coinages from Latin and Greek roots that obscures their intuitive meaning to high schoolers. e.g. the word "commutative property" in Mandarin is a plain-language "exchange rule", with no appeal to classical vocabulary.
To be fair, most of those "obscure" coinages in English were not so obscure when they were coined. Until rather recently, members of "academic society" were expected to know some degree of Latin and Greek.
(In Japanese) For beginners to medium level programmers, there are more than enough learning materials (online, books) in the language. We also have the Japanese words for most of CS terms such as object-oriented programming.
AFAIK the Japanese term for object-oriented programming is オブジェクト指向プログラミング (object shikou programming). They only translated the "oriented" part, which is a very generic term and not by any means technical.
I do not see programming language as English. Sure it may use alphabet and borrow some english word but to me it still hardly english.
Sure, but there's quite a few keywords in English. And then there are so many APIs and so much source code with symbols that consist of English words.
> I do not see programming language as English. Sure it may use alphabet and borrow some english word but to me it still hardly english.

Assembly language was invented and created in english to make it easier for english speaking developers to program. Nobody wants to program machine code.

Then higher level languages were invented to make it easier for english speaking developers to program. Nobody wants to write assembly code.

If java, javascript, C#, C, C++, etc aren't english language programming languages, then what language is it? Spanish? Japanese? Swedish?

>If java, javascript, C#, C, C++, etc aren't english language programming languages, then what language is it?

What languages? Its a language in its own right. Its a programming language. Specifically java, javascript, C#, C, C++ language.

You are being deceptive here. The original point is "How do you deal with programming languages' being so based on English?"

Nobody is saying that C or C# is the english language. Of course C and C# are programming languages. You aren't saying anything of importance here. But it is based on the english language using english words to help english speakers write programs.

I already gave you the history of the development of computer programming languages.

"Assembly language was invented and created in english to make it easier for english speaking developers to program. Nobody wants to program machine code.

Then higher level languages were invented to make it easier for english speaking developers to program. Nobody wants to write assembly code."

If you disagree then go read the AT&T or Intel manuals and tell me what language the syntax was written in. Go read the C grammar/syntax or the standard library, what natural language are they written in?

Chinese? Russian? Swedish?

I think it is hard to categorize Chinese (I imagine you're speaking about Mandarin?), Korean, and Japanese all together for a general statement.

I have read some Japanese programming books. For programming, and IT in general, Japanese borrows heavily from English vocabulary for novel terms, along with using a lot of abbreviations which also come from English.

So you will see sentences such as: "hoverイベント 要素にマウスが乗った時、外れた時に指定した処理を行う" which uses literal "hover" with borrowed イベント(ibento:event) and borrowed マウス (mausu:mouse) all within one short sentence. You will very often find sentences made up mostly of borrowed words when describing a new term and its context.

Korean also borrows a lot of terms from English, but I feel I run into it to a lesser degree than Japanese.

For example: "여담으로 외국 오라클 홈페이지에 들어가면 Java SE 11버전까지 나와있지만 8버전을 사용하는 이유는 버전이 높을수록 새로운 기능들을 제공하지만 안정성이나 버그 등의 문제가 있기 때문에 8버전을 사용하였습니다", where you see borrowed words "오라클 홈페이지" (orakeul hompeiji:Oracle Homepage), "버전" (beojeon:Version), "버그" (beogeu:Bug) along with literal English "Java SE 11". So it also has a lot of borrowed words, but they're more spread out through the actual sentences.

I do not know either traditional or simplified Chinese well enough to comment on that. But from talking with the native speakers I know or work with, it seems like Mandarin does not directly borrow as much English as Korean or Japanese.

Between the 3 you mentioned, I feel Japanese would probably have the hardest time trying to describe CS in its native language without using borrowed words, because a lot of words are no longer thought of as "borrowed" since they're so frequently used. I can not think of any good words to use as replacements that would not sound archaic or forced.

Ok so sadly my Thai is not where it should be, but it also heavily uses borrowed English words, that it masterfully butchers. Thai language has only a fairly limited number of ending sounds and also usually needs consonsants attached to a vowel. For example so a master branch, would be a somethign like a masta brand, I'm guessing. Here's an example of some non-IT terms http://pickup-thai.com/loan-words-from-english/
Most of CS terms in Russian are loanwords from English with the same meaning but slightly different pronunciation.
For my PhD thesis, I was required to write an abstract in my native language, German, and had a pretty hard time of it. On the other hand, I've experimented a bit with high school level CS teaching, and found that with sufficient preparation, it's fairly doable.

I suspect that when we struggle to express a concept in our native language, we may have somewhat deceived ourselves in how clearly we expressed the concept in English. I notice all the time that people think they are more profound in a foreign language, when it's in fact precisely their lack of familiarity with that language that disguises the banality (A phenomenon also known as "quidquid Latine dictum sit altum videtur").

Somewhat related, I see people cursing in foreign languages…

Do you have some references on that phenomenon?
That's quite surprising to me! Because it used to be the case that some reading ability in German was required for the serious engineer or scientist.

From memory from around 1850 up to 1920s.

(I'm not that old heh, but I know people who have done serious historical research in engineering that required German)

At least in robotics a lot of good current research is being published in German.
I suspect what you're saying could definitely be a phenomenon. However, in this case, I think it's just a matter of domain and context.

I speak both English and Spanish natively, however, I'm more comfortable in English when talking about e.g. technology and music. On the other hand, I'm more comfortable in Spanish when talking about math, feelings, etc.

As you can probably already tell, it's not like math and feelings are very related. It's just that I've probably been more exposed to those things in Spanish than in English. Same goes for technology and music topics, I've just been exposed to them in English a lot more than in Spanish.

Btw, I also had to write a dissertation in Spanish and I, too, had trouble with it, hah.

I'm Flemish, so I speak Dutch. Since it's a small language, at university, most advanced courses used English (or French) books. There are a lot of concepts I cannot even start to explain in Dutch. I just don't have the vocabulary.

I also was really shocked to learn later that there are programmers who don't speak English: I once interviewed a French developer who didn't know any English. He explained me that all his courses were in French, so there's no need/opportunity.

Why are you shocked? In fact I am shocked you are shocked.
Because most of the CS/CEng content is in English, not knowing english is a huge disadvantage.

Now I am shocked that you are shocked that s/he is shocked.

Knowing English definitely is an advantage, but how big?

If you’re not interested in an international careeer (many people aren’t), you have quality education available in your local language, and there’s a thriving local tech scene I don’t see why it has to be that much of a disadvantage.

There are many other languages that are big and used by tens of millions of people. In most of those languages you can find all the books, courses, and conversations you need to take up computering.

From my personal experience, best example is "You see an exception/error, search google, click the first stackoverflow link".

You can of course find the answer in your native language also, but it will be less likely it exists, it will be harder to find, and less "peer-reviewed".

Google search is engineered to show most relevant result for you. Of course it wouldn't show you other languages result.

There are tons of resources in other languages but you wouldn't aware of it, you wouldn't even know how to look for it because you don't know the language.

Then you learn that .net throws localized exceptions, word by word machine translated.
I'm shocked too. Even if your language has all the necessary words it still seems unreasonable to me to avoid learning English if you are interested in IT. One of the reasons I'd mention: almost all of the adequately fresh information is in English. Original manuals are in English, StackOverflow is in English, HN is in English, English is the lingua-franca for comments and function/class/variable names (I've seen non-English source code some times but that's rare and feels weird). English is not my native language but I'm glad it unites ~99% of the industry and the science.
> StackOverflow is in English

cough cough

- https://pt.stackoverflow.com/

- https://ru.stackoverflow.com/

- https://es.stackoverflow.com/

- https://jp.stackoverflow.com/

More seriously though, it is a bit of a chicken-and-egg issue: more content being available in English which leads to more people having to learn English and might end up producing English content.

But this in no point is an exclusive thing. There is nothing that says that if you participate in HN in English that you must always write in English. Back when I used to collaborate on a blog, we made a point of writing in Portuguese and I tried to avoid anglicisms and loan words whenever possible. My rationale was simple: I was much younger and most of the things I wrote would never be of interest to any thought-leader or something to advance the state of the art. It could however be of interest for those in Brazil that had some interest in programming, and I didn't want the language to be yet-another-barrier for them.

Check out the number of questions on those sites:

Pt: 140,876

Ru: 322,061

Es: 122,603

Jp: 22,743

Stackoverflow.com (EN): 19,580,539

Does it matter?

If I spoke no English, I'd rather have 1% of the equivalent English content in Portuguese than 0%. And having the site such as pt.SO is at least a sign that there is a significant number of people that prefer non-English to keep the discussion.

Also, there is a good amount of people that can read something from English SO, but would never contribute. Having a language-specific site is a chance for them to help more people in their situation. Again better than nothing.

Seems like you'd just be better off learning English so your ability to find help online isn't hamstrung.
So imagine a typical teenager from Brazil that is finishing his (very bad quality) public high-school and has some interest in technology. He likes to tinker with things, electronics which he can find books in Portuguese. He has access to a computer and manages to install Linux, wants to start about programming.

Do you really think that the proper advice you'd give to him is "Learn proper English first"? More likely than not, you are just killing his interest in learning and shooting down the best chance he would have to lift himself out of poverty.

Remind me to come back to this in 10 years when China surpasses the US in production of, say, AI Research. Let's see if HN will still be okay with the idea of "just go and learn Mandarin" to find stuff online.

Stackoverflow doesn't have a Chinese version - what domestic site is popular there? (And how many questions does it have?)

I looked at Segmentfault (CN) but I can't see any total number of questions - but if I refresh StackOverflow the 5 most recent questions were all asked within the last 1 minute, whereas on SegmentFault the 5 most recent questions were asked within the last 20 minutes. Although it might be biased by the current timezone.

(comment deleted)
> cough cough

I know of the localized versions of StackOverflow but they hardly are worth visiting.

> it is a bit of a chicken-and-egg issue: more content being available in English which leads to more people having to learn English and might end up producing English content.

It's not an issue, it's awesome.

> But this in no point is an exclusive thing. There is nothing that says that if you participate in HN in English that you must always write in English.

Obviously. Yet I would never use any other language to name a variable or a function. I would also use English and only English to write a manual for a library I might invent as that would mean most of the developers would be able to read it immediately without me having to waste my time on writing in different languages.

People considering writing in different languages to be waste of time is part of the problem.
I think we are talking about two different things. You are talking about uniformity and standardization as being a good thing. I am talking about accepting that input from people in other languages as a way to increase accessibility.

Expecting everyone to speak English before being able to make any meaningful work is not that different than expecting only able-bodied people to make any meaningful work.

You being shocked that there are non-English speakers working with tech is no different than being shocked by blind programmers.

That's pretty insensitive.

Non-English speakers have the option to learn English. It takes a couple of years, but I know a lot of people who have done it. And I can't think of a better investment.

Disabled people do not have the choice to make their disabilities go away. We have to learn to live with it. Compared to what I've already done to try to make my life normal, learning Russian, Urdu and Swahili simultaneously would be much easier.

What I meant is that some people simply don't speak English and still can be productive while working in tech. There is no reason to be "shocked" about it. That is all.

Whether they can learn or not is a different discussion. And I really do not want to get into some "who has it harder?" victimization game, but it surprises me that you don't see the exclusionary nature of expecting people to learn English to study and participate in discussions regarding Computer Science.

I think it's only fair for people with disabilities to be offended when someone that's not been through the difficulties that they've been through make use of their disabilities for comparisons in making a point.

"mnemonicsloth" point is valid. And he's only asking for more consideration, and in a polite manner afaic.

> I know of the localized versions of StackOverflow but they hardly are worth visiting.

Portuguese is my native english but I never use the portuguese version of StackOverflow. The english version content is just so much better that I don't bother looking at the portuguese one.

Wikipedia is an interesting case as well, since it's also available in several languages. I tend to favour the english version when looking for content that is somewhat culturally neutral.

> It's not an issue, it's awesome.

If you're a native english speaker it's really awesome. If you aren't and don't speak the language it's yet another barrier for learning. Even greater if developers that speak your language decide to dismiss it and adopt english at all times. I believe that's the point "rglullis" was trying to make.

Naming a variable? Definitely. Writing a library? Very few people do it, even less do it for global market. Shitposting on reddit? Maybe; you have fewer options with English, because anglosphere is very monopolized. Speaking English in sound? Absolutely retarded.
>almost all of the adequately fresh information is in English

Thats because you know english, naturally you would look for english resources.

There are as many(probably more) fresh information in chinese too but if you don't know chinese you wouldn't aware of it.

I often use English CS terms prefixed/suffixed for Russian inflection embedded in a grammatically correct Russian sentence. (Russian is very flexible at adopting foreign roots within in its grammatical framework.)

There are "official" Russian translations of most CS terminology, but they often feel too long, too formal for casual conversation, or sometimes even too ambiguous.

This is a common theme in this thread, but I opine using English loanwords in Russian sentences IS using Russian, not using English. I am not sure why anyone thinks otherwise.

English loanwords in Korean are Korean words, not English words. They get Korean affixes. For example, methods are called 메소드 in Korean, but only as a programming term. Methods are otherwise translated as 방법. Therefore, word "method" in English and word "메소드" in Korean are completely different words, even if they share the origin and pronunciation. English word have normal non-programming meaning, Korean word does not.

When discussing things with coworkers for example, all or almost all CS terminology is in English, but those get incorporated in otherwise Dutch text. Grammar, non-CS-specific vocabulary is all in Dutch.

Comments and variable names in code are all in English.

Yes, I talk (almost) exclusively German to my co workers / friends etc.

However a lot of CS specific English terms are used and adapted to fit German grammar.

Example:

Committest du in den Master oder hast du einen neuen Branch angelegt? (Are you comitting into the master branch or did you create a new one)

As someone who grew up bilingual German/English this is really hard for me, I end up getting really confused while speaking (in German) about technical to-I a because I’m never sure which words have been “eingedeutscht” and which haven’t.

So I try to do in English and end up speaking Denglish instead. :). A personal failing of course, but amusing.

ahhahahahah perfect definition :) my native language is portuguese, but i'm working in english on the German speaking part of Switzerland (where they speak swiss german). Trying to learn german and distinguish when use the english words within a German sentence is like a lottery :D
I’m curious as to why master and branch are borrowed rather than translated. Those seem straightforward enough to translate. But then again, I don’t speak German and I’m not a linguist.
I am a native German speaker and developer. Literally every resource I look up on the internet concerning my work I look up in English. I actually start thinking about my problems in English.

When MDN shows me content in German the first thing I do is switch to English to lower the cognitive load.

I can just speak for myself, but jumping back and forth between two languages is adding unnecessary cognitive load.

I also never ever heard someone talk about the "Meisterzweig" in a Git repository.

I also immediately switch to the English version of any documentation. Worst offender here is the MS knowledge base with it’s really bad auto-translations.

For me part of the reason most people use English in CS boils down to the English textbooks being better.

Probably because github and stackoverflow write them in English ;)

Also there is no need to translate technical lingo if everybody understands it. More general IT terms are translated sometimes (e.g. hard disk = Festplatte, keyboard = tastatur). I'm sure a linguist could explain why it happens in some cases and not in others.

Well, these have become technical terms sufficiently abstracted from their general sense that people have no problems borrowing the terminology from a different language. In fact English is a worse offender when it comes to these things, e.g. hydrogen for waterstuff.
Croatian here. In the circles I run, everyone says the english variant "branch", even though it could be straightforwardly translated (to "grana"). The reason is the following - when I hear "branch" it evokes the version control concept in my mind. When I hear "grana" it evokes the part of the tree or bush. So, we use "branch".

And if I were to try to translate "master", it would end up translated as a word that could be equally well translated back to English as "lord", which is just silly.

It strikes me that by reserving “grana” for branch of a tree, and “branch” for source code branch, you have created a more precise language than English for these concepts.
I think younger people (who mostly speak english as well) are less concerned about borrowing or code switching, whereas older people (who may have lower levels of english skills) may have wanted to stick to all-German, resulting in such backporting as “hereunderladen”.

People like to use the terms/style they are most familiar with. (See also: how über/ueber turned into “uber” in english.)

I think the age of the term and the age of the speaker matter a lot.

For those specifically: Because those are the names the tools use, and it'd be annoying to talk using one word, turn around and type a different word in the terminal.

Generally, abstract or mathematical concepts tend to have German words, but even those aren't always used. Things specific to tools/technologies typically don't, and few bother coming up with German equivalents. And German doesn't mind integrating other words, even mixing them in compound nouns with German ones.

"Nein, Committe niemals in den Master."*

Nice to see I can even practice German in HN.

* Needless to say, excuse my (possibly) horrible German.

That sentence is perfectly fine

The "niemals" make it sound like you care very very deeply about me not committing to the master (and your are right of course)

(comment deleted)
Committe lieber in den Ast (I'm sure nobody use that for branch, right?)
Some might use „Zweig“.
can't speak german but just wondering if literally this translates to

>committing you in the master or have you a new branch created?

if so i'm interested to know why you translated as you did, instead of something like

>are you committing to the master branch or did you create a new branch?

in particular i'm wondering why in your translation the word branch completely shifts from where it is to in the german.

I remember back in the 90s Heise's CT magazine used to have really good articles (only in German). The prose is very heavily German with relatively few English words.

Looks like they're still around today.

https://www.heise.de/ct/

In my experience, Germans are less hung up about borrowing English words as-is, probably because they're both Germanic languages.

Speakers of Romance languages (French for instance) are more hesitant. The French generally insist on localizing borrowed terms -- l'ordinateur (computer), logiciel (software), etc. And these are actually used in real life.

Heh, this is fun. I learned a lot about functional programming while studying in Germany, so my first exposure to a lot of words was German. But they are mostly small adaptations of the English terms (monad == die Monade) anyway.

Fun fact: the professor taught the whole lecture in German but wrote definitions in English on the board (while simultaneously speaking German).

I found that a lot of theoretical CS terms, especially the ones established before the 60s/70s will still use the German terminology. Or if you talk about algorithms, language theory, etc.

Compare that to newer concepts like distributed computing, HTML, etc. ⇨ Using English terminology

For those who discuss CS in their native languages, how many of you also name variables using your native language too?
I do, and Python 3's support for Unicode identifiers was a welcome addition. It's a great help for readability.
It's really difficult for me and I hate to deal with code that uses native variable names.

Constantly Switching from English keywords, English resources and code samples on the Internet to local variable names adds a lot of cognitive load.

Some people do it though especially my co-workers with a background in mechanical or electrical engineering.

There is a problem here, in that some times the business concepts do not exist in English.
I think I can only echo most of the comments here that of course there are translations of "branch" "implementation" etc., but the norm is to adapt the English one to the language in my experience.

Good example is Turkish, there have been a lot of effort into deriving enough words to be able to converse in full Turkish about the CS topics or even Scientific topics, but it was not able to "satisfy the demand".

As an example, "feeding data to some service", there is a widely used "veri" for "data", and there is also translation of "to feed", "beslemek".

Sometimes when I hear "Servise veri besliyoruz"(We are feeding data to the service) I immediately think of someone feeding some kind of animal.

So in my experience talking to Turkish developers, if they are from a "corporate" environment, they are more likely to use these native words but people involved in startups etc. usually say "Servise Data feedliyoruz". (Generalising a lot here, I am sure they are a lot of exceptions)

Fun fact: Turkish actually derived a word for "to compute" to avoid confusing it with "to calculate", Although it is not used at all: "bermek". while the "calculating" is "hesaplamak".

In case you are interested(Turkish): http://user.ceng.metu.edu.tr/~ucoluk/yazin/berimsel_bir_dene...

While "branch" is loaned in Korea, "implementation" is never loaned, the translation 구현 completely satisfied that demand. In my experience, there are better and worse translations of terms, and adoption mostly depends on quality of translation.

Edit: Additional explanation. 구현 roughly means "realization", which I think is a better term than even "implementation" itself. Word "implementation" in non-programming context is translated as 시행. In Korean, "implementing an interface" sounds wrong, compared to "realizing an interface".

It's old-fashioned, but branch does have a Korean equivalent: 분기 (literally "branching", or a single branch separating into multiple branches). E.g., 무조건 분기 (unconditional branch), 조건 분기 (conditional branch), 분기문 (branch statement).

(I suspect it was imported from Japanese 分岐.)

Is that branch as in CPU instructions? We(edit: in Japanese) refer to the Git feature as ブランチ(buranchi) and CPU instructions as 分岐命令(bunki meirei). Old CS folks calls computers as 計算機 but normally it’s コンピュータ.

Sounds like whether a word is loaned or created/translated varies?

Ah yes it's CPU instruction. I'm not sure if a git branch is ever called 분기 - I guess most people use the English "branch" for it.
That article is a bit inconsistent. If "ber" is the root word for "compute", then "computing" should be translated as "berleme", not "berimleme" (similar to "hesap -> hesaplama" vs "calculate -> calculation").
It's always mixed, there are some words people translate, some words they don't.

A more formal setup asks for more translations, what does make things really hard. One of the hardest parts of writing my master thesis was discovering the translation of "image matching" (for 3D reconstruction). But I got away with English just fine before I had to write it down.

Of course, just an year after that I was in a corporate-like environment (in the government) trying to discover the translation of "runway end turnaround area" for airports. It was still too formal to use English, but we could just settle this one by consensus.

I can speak several African languages and a few ethnic dialects(fairly common thing)indigenous to West Africa, but I consider myself, a native English speaker because I was educated entirely in English(It's the official language of my motherland).

With that being said, due to the high nature of abstraction when treating CS concepts, you'd be hard-pressed to find vocabulary built into an African language or dialect that could support any meaningful conversation on a CS topic. A few governments looked into it, but it's almost impossible to implement anything in local languages. Transliterating or translating directly from English doesn't generally work. Same for the francophone countries, and the majority of sub-Saharan Africa(including the Portuguese-speaking islands I've been to). You can have conversations in those dialects but you'll need to mix them up with English, and therefore, CS is mainly taught in English.

However, in North Africa and the League of Arab states, I've witnessed CS courses that were taught in Arabic, but the instructor had to default to English words to explain programming concept. It's usually a hilarious mix-match of English and Arabic that could be defined as a language on its own.

As an Albanian, no. Discussing more complex CS topics is not pleasant at all.
I grew up in Germany, but have been in the US for close to a decade now and all my technical education has been here. I have tried sending technical emails in German, but it's usually an absolute disaster. I have no Frome of reference for how to actually express things correctly. I also find my non-technical written German to have suffered quite a bit. Spoken word is fine, but writing is a bit tough. I guess I just didn't do any of that for a good ten years, so it got a bit rusty.
Me too, I got my engineering degree in Germany in 92 but moved to the US right after. At this point I really struggle to communicate anything technical in German and even while I lived there CS lingo was notoriously mixed.
Actually I can't. It would just sound so strange to me talking about branches, trees, traversal, cache lines, threads, forking and killing processes and so in all the non-English languages that I speak or understand.

It would seem to my brain as if I talking about those actual things and not the abstract CS concepts i.e. saying "a tree" in would just make it seem we talking about actual green trees outside so I'd start laughing probably.

I am a native Sinhalese, and I can speak Indonesian (Bahasa Indonesia) and Tamil.

No, we cannot use native languages for CS. For Sinhalese, there is an on-going attempt to invent words or rather put words together to translate a technical term to Sinhalese, but nobody can figure it out. "Download", for example, is literally translated to a word that doubles as taking something down via a crane, and it has become a sort of a joke that the linguistics even attempted to translate.

However, in Sri Lanka, English is one of the official languages and university courses are in English, even the non-CS majors. Professionally, pretty much every company is using English for both team and client communication.

Other than a few starter YouTubers, I have yet to see anyone meaningfully using Sinhalese in CS.

It is a similar situation in Indonesia too, although more Indonesian words are used. Indonesian itself is rather limited due to its limited nature, and borrows many of the words from English and Dutch. The former languages in the archipelago such as Javanese and Sundanese tend to be quite limited for technical literature, but rich with grammar and meaning.

>> "Download", for example, is literally translated to a word that doubles as taking something down via a crane

As an only English speaker, I dont see any problem with that or understand why it would be funny. To transfer a pile of material down to the ground via crane seems like a good metaphor for transferring a pile of data down from the cloud.

In Tamil, lot of CS terms are already translated but nobody uses that in speaking form. And they are properly translated in websites and mobile apps too.
We used German for everything in my undergrad courses. Germany seems to have its own proud CS culture, haha.

We have "Informatik" which comes in the flavours:

Theoretische Informatik, which is low-level Computer Science, think information theory.

Praktische Informatik, which is high-level Comouter Science, like programming language design and software architecture.

Angewandte Informatik, which is software development, like apps, databases etc.

Technische Informatik, which is computer engineering.

And then, of course, we have a never ending count of cross cutting CS degrees like: Medieninformatik, Bioinformatik, Wirtschaftsinformatik, Medizininformatik, etc.

This all has to be mentally moved into the right English equivalent and then translated.

I'm German. theoretical CS and maths terms are no problem because they all have a German equivalent. More programming related lingo is more difficult because it's so heavily dominated by the anglosphere that I (and a lot of people I know) just adopt the english phrases. Like git vocabulary or language related stuff.
What about naming variables, classes, files, etc.?
please see my comment above. All English today unles you are a Beginner.
Almost always English unless German domain-specific terms. Very rare exceptions, typically in some custom business application one person wrote.
I had another question, somewhat unrelated - how do you do naming if you're programming? In German you can just build a long word without spaces in between, so do you still do camel/snake casing to split them up?
At some point in the past, a few programming languages would try to be localized. I faintly remember Visual Basic using German names for the functions? Also I think SAP/ABAP was German at first. So when you write WENN X>LAENGE(Y) DANN you'd be using German variables, because it fits the programming language. Today I would expect all variables be english and comments be German at best. If I'd see code with German variables I'd just assume it was a beginner.
I've actually worked at more foreign firms than German one's so I may not be the ideal person to answer but when I worked on code that uses German naming people would usually use cases or underscores/hyphens like they do in English. It's just not very readable to use longer German compound words.

That said I think German names are relatively rare outside of old code. Most people just adopt straight up English terms.

At the turn of the 20th Century, German was the language of science. Annalen der Physik was THE preeminent journal of physics and where many of the important discoveries that laid the foundation for quantum mechanics and modern physics were published. Einstein published the theory of relativity in Annalen dear Physik for example.

Here’s an interesting article that talks about the decline of German language use in science. https://www.pri.org/stories/2014-10-06/how-did-english-becom...

>>>>And you have a set of people who don’t speak foreign languages,” said Gordin, “They’re comfortable in English, they read English, they can get by in English because the most exciting stuff in their mind is happening in English. So you end up with a very American-centric, and therefore very English-centric community of science after World War II.”