Ask HN: Can you discuss CS in your native language?
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 ] threadThis reminds me that I can't stand people coding in languages other than English. Variable names/comments in French? No thanks.
https://en.wikipedia.org/wiki/Non-English-based_programming_...
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/
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.
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.
- č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.
Our expression for "mouse" was quite byzantine: "manipulator stołowo-kulotoczny" (table sphererolling manipulator?). This just begs for a TLA like "MSK".
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.
That's a great example of the difference between translation and localization.
The worst part about those calques are their lack of brevity.
In Korea "to click" is translated as "to press". Now, that wasn't difficult, was it?
Then again some words, like "sterownik"(can be understood as "someone who steers" - driver) remain in use to this day.
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.)
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.
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.
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.
(Not saying they should be doing it this way -- in a way I'm glad they are.)
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?
What languages? Its a language in its own right. Its a programming language. Specifically java, javascript, C#, C, C++ language.
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 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.
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…
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)
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 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.
Now I am shocked that you are shocked that s/he is shocked.
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.
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".
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.
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.
Pt: 140,876
Ru: 322,061
Es: 122,603
Jp: 22,743
Stackoverflow.com (EN): 19,580,539
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.
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.
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.
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.
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.
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.
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.
"mnemonicsloth" point is valid. And he's only asking for more consideration, and in a polite manner afaic.
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.
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.
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.
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.
Comments and variable names in code are all in English.
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)
So I try to do in English and end up speaking Denglish instead. :). A personal failing of course, but amusing.
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.
For me part of the reason most people use English in CS boils down to the English textbooks being better.
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.
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.
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.
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.
Nice to see I can even practice German in HN.
* Needless to say, excuse my (possibly) horrible German.
The "niemals" make it sound like you care very very deeply about me not committing to the master (and your are right of course)
>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.
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.
Fun fact: the professor taught the whole lecture in German but wrote definitions in English on the board (while simultaneously speaking German).
Compare that to newer concepts like distributed computing, HTML, etc. ⇨ Using English terminology
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.
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...
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".
(I suspect it was imported from Japanese 分岐.)
Sounds like whether a word is loaned or created/translated varies?
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.
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.
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.
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.
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.
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.
That said I think German names are relatively rare outside of old code. Most people just adopt straight up English terms.
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.”