Preferably in English. Nothing is worse than reading code with a mixture of languages. Although false friends can also be quite annoying.
post
I wrote variable names and comments in Spanish when I started as my English level back then was very low.
Once my English improved and started to use English documentation and tutorials I just switched to write in English.
In my previous job I worked at software consultancy, I had coworkers who wrote code in Spanish but it wasn’t the norm.
Currently I work for an international company, the team is Spanish but we have to write everything in English as it can be shared with teams in other countries and audited by international organisations.
When AI tools were allowed, a lot of people use them in Spanish, it generates code with comments in Spanish. I had to reject a lot of PRs from the same guys over an over because everything must be in English.
The real deal isn't the language barrier but the keyboard layout. Most special characters usually used for coding are just perfectly at hand when using the US layout.
At one point i started buying US keyboards set with the US-int layout, which i find easier to use than ES and latam.
This, I switched my keyboards to US layout, and since I learned a bit touch typing , having the laptop with ISO es_ES is not of a big deal having the symbols not matching the input layout.
For Mac it is a bit shittier, I don’t get used to the way to introduce the Ñ with its US int.
On Linux, I didn’t managed to set the US int, only US so I don’t have either Ñ nor the possibility to add accents. It might be easy but I didn’t look for it either.
It depends honestly.
Key words like If, Match, Else, From, This ,etc will be in English, but variable names can be in any Unicode language as the var name gets converted to machine code after compilation.
Most popular programming languages have English-language keywords and that can't be changed, so we certainly have to learn those.
How we learn to name symbols (variable/function names), that obviously depends on the programming course. But most real-world code has most symbols written in English with the possible exception of business-specific terminology that the business doesn't use in English. The same is true of comments.
As somebody with a friend who speaks Chinese as their first language, I know she often uses non-English file names, variable names, etc.
It's still standard Python and C++ though (and excellent code at that!), nothing esoteric.

Also air traffic control and commercial aviation radio communication are in English, worldwide.
For handling international traffic under ICAO rules, ATC is indeed supposed to be done in English.
But if we take a look at some of the terminology in aviation, the French words cannot be ignored. Mayday and pan-pan are from the French venez m'aider and panne.
When radio silence is required, a station might command "SEE-LONCE" but this comes from the French word for silence. Though I think this is a rarity in aviation.
And then outside of aviation radio, the French left their mark on aircraft parts names: fuselage, empennage, aileron.
Never even heard of a programming language in Danish. Even the ones invented by danes are in english.
Everyone should code in Armenian. Why? Because it would be funny.
Western Armenian or Eastern Armenian?
Idk. I was just talking out of my ass. I don't know how they are different.
much easier to look for guidance for coding in english instead of my native language, syntax makes more sense too. Though personally i would wish more stuff was properly translated into finnish instead of english slowly gnawing at it.
this, for anythijg technical in pretty much any field, searchig in english is always better
That's probably fair, but I would also worry that anything coded in Finnish would be trying to find a way to kill me for not respecting its personal space.
I'm a native Spanish speaker, it depends on the language and the person.
Spanish has very few diacritics, so it's quite understandable in ASCII (áéíóúüñ). But I guess it would be a lot harder in other languages like Czech or Vietnamese.
When I program for myself or in public repos, I tend to code everything in English, but when I have to do projects with classmates at my university, I usually do it in Spanish because they are not great at English.
We always code in English at work. Using our native language for programming is generally frowned upon.
I quit my degree in computer science in 2018 after studying for two years, but I remember that it was a big focus on using norwegian for variable names.
No chance, hungarian has non-ascii characters(ő and ű), digraphs(cs, dz, gy, ly, ny, sz, ty, zs) and a trigraph(dzs). Also generally how the language works is pretty disadvantegous to coding and tech. English has maaaany useful one syllable imperatives(get, click, etc), even with doors irl its often in english whether you pull or push cause hungarian doesnt really have these completely stateless verbs. One thing that did exist back in the day was people coding in german but i only know a single person who still does this.
A mix. In uni we learned algorithms in pseudo code and that was always in native language. Actual coding was typically English, but older professors often did it in their language.
Hedy is a new programming language designed for pedagogy that can be localized to different languages.
Coding is all done in the language of the code... if, and, or, for, include, except, etc. It's not exactly a vast array of words you need to know to be able to code.
Also, I can only speak for Sweden, but I started learning english in third grade. These days they start in kindergarten. Basic stuff, days of the week, 1 through 10. But still.
Are you coding in basic? Look at the std libs for any modern language and there is a plethora of words to learn to program effectively.
The words you need to "know" to code, compared to what you need to know to communicate effectively, are but a promille.
He also specifically said "learn to code". Beginners often struggle with the concept of a loop, let alone trying to import a bunch of libraries
Online: everything in English for me, except for some explanations sometimes but that's just at random as I'm a hobbyist/amateur.
Offline (a course I did): explanations in Portuguese (Brazil), we learned Portugol (programming language that uses Portuguese keywords) as an introduction then switched to C.
You'll be surprised to learn that WinDEV can be programmed in a ton of diferent languages. I mean the instruction set and all. It feels dirty to read code written in french, and that's my mother tongue. What a shit show. Only 'logo' for kids in primary school makes sense to have in their native language. EDIT : mostly french or English actually https://pcsoft.fr/wlangage.htm
Came here exactly for this comment...
Windev is probably one of the worst possible programming language out there, look at this !
This is from their official documentation
// Récupère le CA du mois en cours
TotalCA est un monétaire = CalculCAMoisEnCours()
// Si le CA dépasse l'objectif
SI TotalCA >= 1 250 000 ALORS
LIB_Objectif= "Objectif dépassé !"
LIB_Objectif.Couleur= VertFoncé
SINON
// Si le CA n'atteint pas l'objectif minimum attendu
SI TotalCA <= 200 000 ALORS
LIB_Objectif= "Objectif non atteint"
LIB_Objectif.Couleur= RougeClair
FIN
FIN
I teach my students to just code in English from the start. Not all languages/compilers/linkers/whatever handles the Danish characters 'æ', 'ø', and 'å' all that predictably, most companies will require you to use English for international collaboration, and besides most documentation is in English anyway. Last reason is why I urge my students to just use English versions when available. Some FLOSS translations are crap, and you can't just copy paste an error into askjeeves and get an answer.
The only thing that has to be in Danish is Excel automation, because for some bizarre reason Microsoft translated all some of the functions. I say some because I've seen functions in English that just wasn't available in Danish Excel.
About every programming language is based on English. Names for functions, objects, variables are based on personal, project, or company preferences. In reality you'll find these only in two languages as far as I've seen in the last decades: either English or Chinese. I've seen German and, sadly, French, but they are outliers.
I learned English before learning Programming, but there are localized programming languages targetting learning like Portugol https://pt.wikipedia.org/wiki/Portugol
Sadly, in the horrible english language
I don't begrudge peoples difficulties with English. It has some positives like not needing gendered conjugation for objects and a fairly wide cultural exposure. However it freely steals words from other languages making it a bit of a mongrel. Also the spelling and pronunciation is entirely non-regular so the usual answer to people looking for rules to work these things out is "just know".
Well we learn to code in the programming language that the teacher choses, not in any natural language at all, so neither English nor our native languages.
But all significant programming languages that I know do have reserved control words that are taken from English. Maybe that is the direction of your question?
Then no, mostly we don't use specifically crafted or preprocessed programming languages just to have control words recognizable as words in our native languages. We just learn the English-based control words as features of the programming language, if we don't already recognize them.
As for the variable names and natural language comments embedded in the code, that we create, that varies. I'd say as soon as interlingual collaboration or code sharing is a possibility, people will go for English in my experience. And I suspect that people who have gone for English before tend to stick to English even in their private use.
This is also related to learning materials, documentation of language features and libraries being available to the largest degree in English.
I perceive it as easier to stick to English, rather than to code switch between natural language while I program.
There have been some interesting attempts to translate languages, but generally at most you would get phoneatically local names using English characters for functions and variables, etc.
I have no clue but at the very least, a programmer names their own variables and, barring any special characters, they could be named in any language.
i think it depends, for me at least, mostly being self taught, english entirely because I just think in english, search in english, speak in english to myself so much
The only things that tend to be in another language in code are variables and strings, from my experience.
I learned to code before I learned proper English as a child.
However, many educators insist of forcing students to first learn Hungarian pseudocode (not Hungarian notation) stuff first, I specifically was forced to learn Hungarian pseudocode SQL, because our teacher thought the future of programming will be natural language programming (she was a mediocre mathematician). Problems with it include:
- Hungarian is very antithetical to be used as keywords in a programming language, mainly by substituting affixes with different words, or keeping the affixes in certain ways.
- Students who already know English or actual coding are confused by it.
- Natural language programming is quite bad. Nothing is gained by throwing out programming symbols in favor of natural language. In fact, things are being lost, and the main advocates of NLP are just out-of-touch techbros, who think creation is about having a cool idea.
- Time that could been spent learning other things are wasted on it.
all 74 comments