This is probably an incredibly stupid, off-topic question, but why are their database schemas and logs in English?
Like, when a DeepSeek dev uses these systems as intended, would they also be seeing the columns, keys, etc. in English? Is there usually a translation step involved? Or do devs around the world just have to bite the bullet and learn enough English to be able to use the majority of tools?
I'm realizing now that I'm very ignorant when it comes to non English-based software engineering.
> Or do devs around the world just have to bite the bullet and learn enough English to be able to use the majority of tools?
That is precisely what happens. It is not unusual for code and databases to be written in English, even when the developers are from a non-English speaking country. Think about it: the toolchain, programming language and libraries are all based on English anyway.
Interestingly, in the world of electronics this used to be true too. The first Diode on a circuit board would be marked "D1", no matter which country produced it. Datasheets for components would be in english. Any text on a circuit board would be in english (ie. "Voltage Select Switch" or "Copyright 2025".).
However, a few years back it became common for most datasheets to be available in mandarin and english, and this year most PCB fabrication houses have gained support for putting chinese characters onto a circuit board (requires better quality printing, due to more definition needed for legibility).
Now there are a decent number of devices where the only documentation is only available in mandarin, and the design process was clearly done with little or no english involved.
Not everything changes though - gold plating thickness is measured by the micro-inch. Components often still use 0.1 inch pin spacing. Model numbers of chinese chips often are closely linked to the western chip they replace, the names of registers (in the cpu register sense) are often still english etc.
Like in machining, there's a long history of measuring everything in "thou" (micro-inch sounds proleptic to me, and you'll see "mil" used in the EDA space). All the tooling uses it, standardized components use it (I can drop a 74-series TTL chip from the 1970s in a modern board), and everyone learns it when they start using EDA.
Recently there has been a shift to metric in EDA software, so you'll see often see multiples of 2.54mm, and packages are switching to metric for the fine-pitch stuff. Often you'll have spacing in both units in the same design.
Not every day these days do I encounter a new word: proleptic.
1 the anticipation and answering of possible objections in rhetorical speech.
2 the representation of a thing as existing before it actually does or did so, as in he was a dead man when he entered. Compare with analepsis: the destruction of the Vendôme Column and his part in it are foreshadowed in moments of haunting prolepsis.
> this year most PCB fabrication houses have gained support for putting Chinese characters onto a circuit board
I've yet to see one of these in the wild, but it sounds cool to me and I would like to see it.
There's something of a problem the CJK languages have in not being able to do abbreviations or acronyms, so in Japanese you will occasionally see a couple of Latin letters standing out because that's much shorter than an inconveniently translated word.
> in Japanese you will occasionally see a couple of Latin letters standing out
I mostly encounter this watching anime, and I feel it stands out more than it should. It's not just the sudden shift to an entirely different family of glyphs - the overall typography feels off. There's room for improvement here.
It’s that ugly vertically-stretched serif typeface - the one used on those little gold-coloured “QA” stickers that used to be everywhere on/in consumer goods.
> Components often still use 0.1 inch pin spacing.
This changed with IC SMD packages. It's now mostly even 100-micrometers.
SMD passives seem to be in a state of limbo, but mostly still using inches. Mouser lists resistor size codes as both inch and mm. It's a bit confusing.
In my experience, you usually get English variable names / db schemas, localized chats and tickets, with internal docs, log messages and comments being a mixed bag.
For some kinds of software, localized names make a lot more sense, e.g. when you're dealing with very subtle distinctions between legal terms that don't have direct English equivalents.
Until you start working on a code base made for something local only and with domain specific words. So much joy trying to remember how some word was translated for your code when a user reports a bug or ask for some new feature.
Bonus point when the people who decided to use English words are also all proud of their "DDD" architecture.
I agree. It makes sense when the code needs to handle domain specific words.
Based on my experience in Norway, it is common to use English but there is also not a complete surprise to find code in Norwegian either.
I remember looking at code written by a Norwegian government agency many years ago, and asking why they used Norwegian names for functions and variables. Didn't everyone use English? The answer was that they had so much domain specific terminology that it is not only hard to find English equivalents, it was so ingrained in the business logic that they don't want to risk any confusion and legal consequences. If a function was named validateFoo, then "Foo" had a single shared understanding.
Oh I'm working on a local only project right now and I also feel the pain of badly translated Swedish words. I've spent this week trying to decipher a section of code, trying to map then back to the Swedish concepts.
I've also experienced a similar situation in an English context where the concept is renamed on UI, while everywhere in the code it uses the old name. Then things are starting to mix with each other and then a new concept is introduced with the old name...
Considering Brazil and the Spanish-speaking people whom I've worked with, it's common for English coding to be the norm for the company/project, but many people are far from being proficient in English, so we end up with funny names that are often confusing or nonsense - I've seen an "evaluation service" that is actually a "rating service" (both could translate to the same in Portuguese). They often translate to false cognates too.
There are some business concepts that are very unique to a place (country-specific or even company-specific) with no precise translation to the English-speaking world, and so I sometimes prefer to keep them in their native language.
It might seem less credible to encounter English in a place where it’s less expected, but think of it this way: would a Yandex-developed ClickHouse database be adopted by Chinese devs if everything in it were written in Russian?
There is some merit in asking your question, for there’s an unspoken rule (and a source of endless frustration) that business-/domain-related terms should remain in the language of their origin. Otherwise, (real-life story) "Leitungsauskunft" could end up being translated as "line information" or even "channel interface" ("pipeline inquiry" should be correct, it's a type of document you can procure from the [German] government).
Ironically, I’m currently working in an environment where we decided to translate such terms, and it hasn’t helped with understanding of the business logic at all. Furthermore, it adds an element of surprise and a topic for debate whenever somebody comes up with a "more accurate translation".
So if anything, English is a sign of a battle-hardened developer, until they try to convert proper names.
In my experience, Germany is the most common exception to the "programming is done in English" rule.
In general, these things happen, and are not restricted to pre-Internet times - in fact, I most often see it in random webshit SaaS developed in Europe - things like, say, food delivery - Pyszne.pl and pizzaportal.pl (defunct) come to my mind. Those sites tend to be well-localized, so they seem like local businesses targeting the national market. But then you accidentally look at an URL deep in ordering form, or the ordering form breaks and you pull up dev tools to fix it, and suddenly you realize the SaaS operator is actually German or Swedish or Dutch, and they're just deploying the same platform across the EU, with a really good localization polish.
'T_PAAMAYIM_NEKUDOTAYIM' is the PHP parser's name for the '::' double-colon/scope-resolution-operator token; it means 'T_DOUBLE_COLON' in Hebrew, hence related parser error messages mean "Unexpected double-colon/scope-resolution-operator found". There was some controversy in the PHP community in 2013 about keeping the non-English naming as it was widely considered confusing to users.
It's 2025, I've used PHP professionally maybe for a few months out of the last 20 years, the languages I use mostly don't have `::` as a token, and still, I find it really hard to refer to it as anything other than Paamayim Nekudotayim :-)
It isn't uncommon to find german variable names in codebases that predate web 1.0 or linux.
Now that I think about it, german is especially good at creating words by concatination. So "arrival time" should just be the single word "Ankunftszeit" - "ankunftZeit" feels a bit off.
Yup. If languages were characters in a computer RPG, they'd have "special skills" listed on their character cards. Off the top of my head:
- English: verbing and nouning. All languages have ways of introducing new words, but only in English I've seen it accepted as something anyone can casually do in a throwaway manner. Have a noun but want to talk about the (contextually) default action related to the noun? No big deal, just stick an "-ing" or "-ed" to its end and carry on. I adore this feature.
- German: word concatenation you mention, it's a killer feature. And then there's the peculiar grammar that puts the most important verb at the very end of a sentence, giving you stuff like "Gegen die hohen Preise für Gas, Strom und Treibstoff will die Regierung etwas machen", meaning "The government wants to do something about the high prices for gas, electricity and fuel", but structured as "<tone> <stuff> <blah> <blah> <subject> <stuff> do something". So not only you need to listen to the end of a sentence to know what it's about, but you can actually zone out a bit early on, catch the last few words, and still recover the meaning. I'm sure one could write an interesting signal processing take on this.
(If anyone knows examples of such unique/special "skills" for other languages, I'd love to hear about them!)
> And then there's the peculiar grammar that puts the most important verb at the very end of a sentence
An American woman visiting Berlin - intent on hearing Bismarck speak - obtained two tickets for the Reichstag visitors' gallery and enlisted an interpreter to accompany her.
Soon after their arrival, Bismarck rose and began to speak. The interpreter, however, simply sat listening with intense concentration. The woman, anxious for him to begin translating, nudged and budged him, to no avail.
Finally, unable to control herself any longer, the woman burst out: "What is he saying!?" "Patience, madam," the interpreter replied. "I am waiting for the verb."
'Aan die hoge brandstofprijzen zal de regering iets gaan DOEN'.
If I say it in my local dialect, it will sound a lot like German.
Speaking of unique skills, I find French very unique as well. "His life" translates to "sa vie" because vie happens to be female. "what is it" translates to "qu'est-ce que c'est", a _seemingly_ random concatenation of shortened words, in spoken form it is only 3 syllables!
Someone who worked on a non-English environment years ago here: sometimes you do use the local language in some contexts, but, more often than not, you end up using English for the majority of stuff since it's a bit off-putting to mix another language with the English of programming languages and APIs.
Our US company sent me to France to help out with an implementation. The guy I worked with spoke very little English and my French is terrible. Both of us had done Latin, however - so the comments were hilarious as we used that as our common link. One of those projects I'd expect to show on the daily WTF at some point.
I did try my hand at a translation tool, as it was all i18n up proper. Watched one guy blow coffee through his nose when I demo'ed - and the 'BACK' navigation was the French word for a persons back or something like that.
Isn't it true that schoolboys in many countries would learn Latin 100+ years ago? I suppose it would've been used sometimes in international communication?
If you're from Europe knowing Latin definitely gives you a deeper appreciation of a bunch of stuff.
It's a useful way of formalising verb conjugation and tenses which is common across the major European languages. Something they all take for granted but I watch my poor mother's mind melt when she tried learning German as a Chinese speaker. Especially as a lot of these forms are looser and more forgiving in English.
A lot of vocabulary has its origins in Latin and biology and medicine still like to borrow from it.
It's niche but only today I was playing some Mozart on the piano and saw "M. S." where I was meant to cross the hands and I considered for a sec and guessed it must be mano sinistra (forgive the declension) even though I've never learned Italian thanks to Latin.
100+ years is still pretty recent. The immediate predecessor to English as a world language was French. Matter of fact, my country has only dropped French translations from its passport with the most recent design update a decade ago or so.
Latin would have been used pre-Renaissance. Our grandparents might have still had to learn it as a part of an educated person's toolkit, but it was long not intended for communication anymore back then.
> The immediate predecessor to English as a world language was French
From what I remember, there was a divide between Catholicism and Protestantism, where some of the smaller countries that followed Protestantism used German as a common language due to its origins. I think knowledge of German in Norway was something that was expected of students attending the universities until the mid 1900s (due to geopolitical changes)
It's still mandatory (1-2 years) in non-vocational high schools in Croatia, for the stupidest of reasons ("culture" and "you might need it in law or medical higher education").
It was mandatory at the schools I attended from 7 to 14, which was in the 90s, although this was at what British people call "prep/public schools", a group of a few hundred fancy fee-paying schools. Most people dropped it at 14 (GCSEs), and almost everyone dropped it by 16 (A Levels)
Lol, I learned it in the 80s - 90s. If you chose to learn Latin & Greek in high school here in Belgium then you're seen as being a top student. It's still a big thing.
I've been working on a project for the former Polish state telco and the codebase was mostly Java EE as written in the mid-00's. Since you cannot really be productive in Java without an IDE, standard English conventions for naming have been pushed onto the devs from early on - a getter must start with `get` or `is` if the return type is boolean, class names have to contain standardized postfixes corresponding to the design pattern used, such as `AbstractFactoryBean` etc. But since few people spoke English back then, they ended up with awful hybrid names such as `getCennikSluchawkiKeySet` or `OfertaManagerPrzylaczeProxy`.
A lot of software design from the English world centers around "design patterns." And these "design patterns" have advanced nomenclature and often make things more convoluted then necessary. The whole concept of these "patterns" are actually an arbitrary style that got invented in the English speaking world. In non-english countries people program in ways that are more straightforward.
First, we create an AbstractFactory to generate objects that conform to our standardized output structure, ensuring extensibility in case "Hello, World!" ever needs additional variants. The Singleton manages our PrintManager, enforcing a single, controlled point of access to the output stream while Double-Checked Locking ensures thread-safe initialization. Dependency Injection provides our PrintHandler with a flexible logging system, allowing it to notify an Observer whenever "Hello, World!" is printed. The Mediator coordinates between components to ensure the PrintHandler doesn’t have direct dependencies on the OutputStrategy.
To maintain optimal efficiency, a Flyweight is used for the "Hello, World!" string, preventing redundant memory allocation. The Proxy regulates access to the print function, ensuring only authorized modules can invoke it. The Composite structure organizes potential multiple output streams, making it easy to expand the system beyond just console printing. A Factory of Factories, or MetaFactory, oversees creation of our AbstractFactories to maintain consistency and scalability.
Before execution, Encapsulation hides implementation details while Cohesion ensures the PrintHandler remains single-responsibility. Loose Coupling ensures that changing one component won’t break the system. Interfaces dictate behavior, and Abstract Classes provide reusable codebases. Dynamic Dispatch selects the appropriate OutputStrategy at runtime.
To enhance modularity, a Decorator wraps the PrintHandler for additional formatting options, an Adapter ensures compatibility with different logging frameworks, a Memento preserves state in case a rollback is needed, and a Facade simplifies access for higher-level modules. The Chain of Responsibility delegates different logging levels, while the Command Pattern encapsulates the printing request for possible queuing or delayed execution.
By adhering to Open-Closed, we can extend our print functionality without modifying core logic. Liskov Substitution ensures all output strategies remain interchangeable. Interface Segregation ensures smaller, focused contracts. Dependency Inversion prioritizes abstractions over concrete implementations.
Finally, SOLID principles uphold scalability, reusability, and maintainability. UML diagrams map out relationships, Sequence flows depict interactions, and Design Contracts enforce constraints, ensuring the system remains adaptable.
After all this, we simply call PrintManager.getInstance().print("Hello, World!"); and marvel at our masterpiece.
This is very much a Java phenomenon. These things do have value .. when correctly applied. But sometimes it's like seeing someone make a gadget with fifty different types of bolts rather than one or two simply because they want to use all the bits of their socket set.
No it’s from a book called design patterns. It forever influenced a huge number of American programmers to think about programming in a very specific way following very specific patterns.
I’m working for a company that’s doing things in typescript using IOC and dependency injection everywhere. It pervades the minds of Americans such that they walk and talk like a parrot parroting that book.
What Americans don’t realize is that those patterns are arbitrarily made up. It’s as arbitrary and localized as the Japanese having to bow for politeness. There’s nothing intrinsically hugely beneficial for following this style. In fact, modern languages push against it. Languages like golang and rust are examples. Even JavaScript was an example although recent es6 syntax makes patterns more easier now
I think you will find most Java programmers were using these patterns before they came across the book. The language naturally leads you in that direction. The book just put a name on them.
This is a bit environment dependent is my impression. Like France and Japan both have enough people shitty at English to generate either translations or home grown programming learning material to fight against this barrier. But my impression is that, like, a German programmer isn't getting far in life without being comfy reading stuff in English
Many non-English-language countries end up with most people who've been through higher education knowing at least some English, not only so they can handle sources but also so they can talk internationally to any other country as well as consume American media.
It's also a status symbol.
The smaller the language pool is the stronger this effect is. Japan is large enough that it's less guaranteed. Places like India and Indonesia that have a lot of internal languages end up using English as a lingua franca (+) as well.
Not literally required, because languages typically support UTF-8 source files, but it would be difficult to use most popular software libraries without being able to at least read English.
Actually, most "most popular software libraries" have either translated docs, or guides in a non-English language.
Furthermore, modern browsers can translate text on the fly. Some (like Yandex.Browser [1] not_an_ad) can even translate videos on the fly.
Sure, most of them have docs in some non-English languages, but rarely all of them. And things like StackOverflow answers, bug reports and discussions, tutorials, and blog posts tend to be mostly in English. Autotranslate works to some extent but can be misleading or confusing when dealing with specialized terms that aren't well represented in its corpus. My Japanese coworkers certainly need to be able to comprehend written English.
Sure docs for massively popular libraries are translated but think about using autocomplete, reading the actual library code, or even just reading other code in your organization. I have to imagine it would be difficult without any English proficiency.
A lot would probably be loan words anyway, and they're words many English speakers would also need to learn. Array, socket, database, loop, float, function, etc.
If the stack overflow examples are in English, you might as well use it. That's also why JavaScript is maybe a better choice than Typescript even if Typescript is better.
Probably at least some, because most tools’ documentation are not going to be in your language – at least that’s how it is here in Japan. That said plenty of Japanese engineers who have very low English skill.
It’s harder to learn for sure. Majority of the resources are in English and it’s harder to internalise the keywords. But it’s definitely possible to program without knowing English.
You don't need to know that the keywords are actually english words. So to start the first program on a floppy on a C64 you would type
load "*",8,1
and back then I didn't understand what load means any more than I understood what ,8,1 means, I just knew that if I press this sequence of letters it will start summer olympics.
> But like, you can’t program Java without English right?
Sure you can, if you know Java, which is its own language distinct from any natural language.
Conversely, you can't program in Java if you know English, but not Java.
> A for-loop has to be written in English??
No, it has to be written in Java. It's true that Java keywords are mostly themselves borrowed from English (often by way of C++ or other computer languages rather than directly) with a use in Java that has some connection to the meaning in English, so its probably easier to learn Java if you already know English (even before considering that there is probably more and better documentation in English than other languages), but that's not the same as English being a requirement for programming Java.
A for loop and other syntax keywords are barely the only English people have to understand in programming. One could say that these could just as well be arbitrary symbols, and programmers would just memorize them. But think of all the concepts named in English such as exception, factory, facade, adapter, interface, iterator, needle, haystack, constructor, queue... you name it. Not to mention documentation. So yeah, some English is mandatory, even if we're not able to communicate properly. In some projects though it's not uncommon to use local language for the domain while still keeping technical concepts in English, like getAnniversaire() or PersonneTable.
It's like names of Pokemons. Every kids know that Bulbasaur is grass-poison typed and evolves into Ivysaur at Level 16. You have to memorize them all to be a good player and that's a whole load of nonsense! But that's not relatively huge undertaking, and nothing remotely like the full language.
Yes, for Java in particular you need to know the various English keywords. At least I don’t think anyone has written a non-English Java variant that compiles to the JVM just as Java would.
If you know another language than English, try Microsoft Excel in that other language. And even if not, just for fun install a non-English version of Excel.
They translated the keywords. Even if you've programmed in proper programming languages for years without knowing English, all the regular keywords to get stuff done you will know in English. And you won't be able to do a single thing in Excel coz none of the keywords work.
One good thing I guess: You can honestly say when they ask you "hey, you know how to program computers, right? Can you help me with this problem in Excel" and you can honestly say: Nope, can't, no idea how that works. See it doesn't even have a simple IF.
Yes, but you don't need to know what "for" and "while" mean in your language, you just need to know their behavior. The same way Arnold Schwarzenegger was acting without knowing much English - everything was phonetically spelled for him in early roles.
I learned Pascal before I learned many English words like "if". You don't need to know what "if" or "for" mean to remember those keywords or to know what they do.
Almost all software engineers learn a passing amount of English - truly localized programming environments are quite esoteric and not really available for most mainstream use cases I can think of.
Depending on the company culture and policy, the most common thing to see is a mix of English variable and function names with native-language comments. Occasionally you will see native-language variable and function names. This is much more common in Latin character set languages (especially among Spanish and Portuguese speakers) in my experience; almost all Chinese code seems to use approximately-English variable and function names.
I've also seen a codebase with a mix of English and Portuguese variable/function names and comments. In that particular case, the Portuguese variable/function names were basically treated as technical debt, with a gradual ongoing transition to consistent English naming.
> Or do devs around the world just have to bite the bullet and learn enough English to be able to use the majority of tools?
I'm a native English speaker, but from looking at various code bases written by people who aren't, I gather that it's basically this. It wasn't too long ago that one couldn't even reliably feed non-ASCII comments to a lot of compilers, let alone variable and function names.
"Or do devs around the world just have to bite the bullet and learn enough English to be able to use the majority of tools?"
Yes, that's what we did and do.
Depending on the project, I do use german variable names and comments at times, but stopped using all special characters like öüäß, they mess things up, despite in theory should just work fine.
Nowdays even chrome dev tools come in german, but experience shows, translated programming tools (or any software really) usually just have the UI a bit translated. But any errors you encounter or any advanced stuff will be in english anyway. And if you google issues of your translated UI, you won't find much, so better just use the original version.
So english it is.
(And it is the lingua franca in most parts of the world anyway)
Your country's biggest SW company is SAP, world infamous for their German column names, haha. Pretty sure it's the most widely used product in the world with non-English internals that people actually interact with - I'm sure there's some Realtek firmware with billions of installs that's in Chinese but barely anyone has to look at that.
When I interact with it by asking it a question in Spanish, the parts between the <think> ... </think> are in English before it goes on to answer in Spanish.
Give it a try in your favourite language.
I went on to ask it if it "thinks" in English, Spanish or Chinese but it just gives the pat answer that, being an LLM, it doesn't think in any language.
I'm from Sweden (okay not same thing as China due to english being more common here) but I always code in english. Even if it is a script just for myself I will use english for variable names etc
I do that as well and also in almost all my personal documents on most (but not all) topics. All the books and most online forums I read are in English. I rather have documents uniformly in Swedish English (en-SE?) than some Swenglish mess of Swedish mixed with English words.
It also helps on the rare occasions some random notes evolve into a proper project that will have to be in English eventually anyway. There is no need for an extra translation step between initial idea and final product. All my vague hobby gamedev ideas are in English for instance.
As a Turkish developer, I can say that all developers learn at least some English in order to be able to grasp documentation and also programming languages since syntactic elements are in English too.
That said, many developers might still prefer Turkish for naming DB tables, fields, variables, types and so forth if that’s the preference of the team. It wouldn’t be an exceptional situation. It’s quite easy too since Turkish also uses a Latin alphabet. May not be as easy or preferable in Chinese.
From what I’ve seen, code usually comes in one of two languages: English or French. Somehow everyone but the French speaks enough English to write code!
Please come in Belgium, there are places where you can see code in Dutch, French and Englis within the same file. I suppose you even should be able to find code with some additional German in it..
Worked for a french company once. The code was in English, but the comments were in French. I guess this happens, because all the language keywords are English, so it might be strange to mix and match langauges there. But comments were fair game.
Ah interesting! I've definitely seen some French code somewhere with the variable names being all French as well, so it really was strange to see them be mixed.
Unless they're using a programming language that isn't English-based (for example, Russian 1С system uses Russian keywords and the whole codebase is usually in Russian), then most of the code stays English.
This way, you don't have to change keyboard layout while writing code.
Anyway, you're forced to learn some English when doing any real software development.
Anecdotally, a lot of 1C developers are not proficient in anything else because they don't need English in the main field, platform docs included, and can only get scarce translated versions of anything else. And blogs in Russian, which are not plenty and not always correct.
This makes some of their infra work and common misconceptions a little bit ... esoteric. So, English is crucial not just to do the job but to get best practices and CS info in general. It really helps a lot.
I've been doing SWE for 10+ years in Poland and I encountered non-English language in code precisely once - in a German project, lol.
Some guys do leave Polish comments here and there, or in commit messages or in other docs/jira tickets/whatever - but in db schema, variables, properties, methods etc? Never, ever.
English is 100% a requirement for every developer job offer I've ever encountered in Poland. Not necessarily a very high level for programmers (if you don't speak directly with the client), but you wouldn't get an offer at all if you're very far below B1.
I mean we're kind of an outsourcing hub so it makes sense.
Even some of our companies outsource further to the east so you really can't avoid it.
In Germany I've seen both. Whenever possible I push for having everything in English. Code comments, general documentation, databases, etc simply because the german developers know English but the non-german developers sometimes don't know German. It also puts everyone at roughly the same language level since we don't have many English natives.
PS: I remember quite a while back when Wargaming's World of Tanks became a big thing they had to translate everything from Russian to English because they wanted to get foreign developers involved as well. Never heard of the reverse happening.
I am European, however I have worked with developers from various parts of Asia and South America. English is usually a second language, however most developers are fairly fluent using it as a spoken or written language. Also, most development resources are written in English, so all developers know how to read it. Programming languages and their standard libraries are also written in English. It's the lingua franca worldwide, so we are all happy to use it in the technical context.
I write code in english and user (andmin, ops, app user) messages in the appropiate language.
As programming languages keywords and APIs are written in english, it just looks better to keep it that way for identifiers and internal doc, the other way causes a dissonance for me which feels unconfortable.
EU - while exceptions exist, my experience generally has been that devs working in English are virtually always much better devs than their peers working in the native language of the land. Likewise, most business projects I've worked on were entirely English on the inside, even when the UI was e.g. german-only. I've also seen a few projects where the business domain is so thoroughly native-tongue (typically when the business domain is a projection of the local bureaucracy) that you couldn't name business entities in English if you tried. Those can end up with a somewhat weird hodgepodge, where the code and comments and such are still English, just the names of the entities aren't.
> Or do devs around the world just have to bite the bullet and learn enough English to be able to use the majority of tools?
Not only that. All of the code I (not a native English speaker) write, even if only I will ever see it, is in English - comments too. And I'm pretty confident all my colleagues do that too.
Might be different for languages with large population of native speakers (Croatian is just a few mil so we're more exposed to it), but you still can't avoid using English for tools / libs / docs / research papers / stack overflow...
> Or do devs around the world just have to bite the bullet and learn enough English to be able to use the majority of tools?
That's how it goes, at least around Europe. People know English as a technical jargon (similar to legal French and Latin in English) and can juggle enough to get around documentation, but I've been in companies where I was the only fluent English speaker (and we're talking startup stuff). That gave ma a bunch of cool opportunities though, being pulled in every other meeting as the designated translator.
I'm a native Hebrew speaker, I wouldn't even think to put Hebrew into my code, similar to how I won't use emoji or other non-ascii characters, except Hebrew in particular is even worse since it's RTL, and mixing it into LTR code would be a pain in pretty much every text editor.
I do occaisonally find code with variable names in other languages, but it's very rare, for the most part if you want to code, English is the way.
I've also seen a few devs who used Hebrew variable names but spelled in English (`shalom` instead of שלום).
There basically isn't non English software engineering.
English is the universal language in programming and software engineering, much like Latin was the universal scholarly language in the past. Sometimes even to the extent that the language starts leaking from the code and technical documents, reports, etc. are being written in English, often just because the people working close to the software are more familiar with the terminology in English than in their native language.
Curiously that wasn't always the case, if you bought a compiler and IDE in the 90s or 2000s from Microsoft or a few others, you'd get an environment that's fully translated to the local language. Granted, those translations frequently made almost no sense at all, but the words were all decidedly Not-English. You could also go out and buy translated books and references.
Even when you install e.g. Debian today and select Not-English as the system language, you might be surprised to see that GCC actually has i18n'd error messages, at least for some languages. Same for coreutils. I doubt anyone uses that intentionally, and they're probably not very up to date, but it does exist... kinda.
The Soviet Union is the only country I know that programmed extensively in non-English languages. The Soviets had a Russian-language implementation of ALGOL 68. They also, as best I understand, still use a Russian version of a language called 1C.
I remember when Adobe Flash Player would report bugs in Polish language, because my Windows was Polish. Googling the bug message was problematic, because most discussion is done in the international, English language. So the next time I was installing Windows, I made sure to choose English as the language. The same goes for browsers and pretty much everything else.
It's very uncomfortable to switch languages during development. Think how often you would need to switch languages if you use Chinese for column names and such. English has been the second language for Chinese for the past 30 or so years. I started to learn Enginse from Grade 4, and nowadays they started in kindergarten.
This is precisely how English is the lingua franca of developers around the world, and a lot of (not all, of course) companies in e.g. Germany or Japan hire English-speaking programmers.
Most Chinese open source code I've seen is written in English, with English variable names, but comments in Chinese Unicode glyphs (in between all the buffer overflows and other general carelessness).
Don't forget Shenzhen is a stone's throw away from Hong Kong where English is widely spoken.
That's pretty much it. Even stuff developed in other countries tends to be in English. For example, Lua was created in Brazil but it's primarily in English. Or Ruby, it was created by a japanese dev but I don't think it really supported japanese for a while.
Because DeepSeek researchers are Elite, English is like very very easy and common for top Chinese students. They just use it, and feel nothing wrong about it.
I write all of my code in english. Even if it's just for me. I am a native german speaker.
It just makes things A LOT easier in terms of debugging, researching, reading examples from documentation, etc etc. I don't even understand my (boomer) colleagues who straight up refuse to learn english and get angry when they can't find solutions with german search input
Yep, wish my employer saw this the same way. I (mid/senior level IC) have unintentionally found myself responsible for breathing down the neck of a flagrant remote non-worker.
Very frustrating as someone who doesn’t really want to be a manager. Feels gross to say, but this field (and beyond?) needs to be better at recognizing who can/can’t be trusted with remote work. Not sure what the answer is though, because I sure as hell don’t want more egregious surveillance and/or a more PIP-happy employer.
Give it time. If I do another startup, I’m not even going to bother renting an office. For me the answer is pretty obvious, all work that can be remote should be remote.
And the situation you’re describing can also happen on-site. I’m in that situation now, where I (a very senior IC, by choice) am expected to both deliver the “IC” stuff, and supervise 3 other people because their manager can’t tell a softmax from a hole in the ground.
The problem there is that by default a virtual environment version of Python is just a symbolic link to the actual binaries installed elsewhere on the machine. If you do an OS upgrade or do anything that increments the system Python version, it could cause problems in the environment.
Like, when a DeepSeek dev uses these systems as intended, would they also be seeing the columns, keys, etc. in English? Is there usually a translation step involved? Or do devs around the world just have to bite the bullet and learn enough English to be able to use the majority of tools?
I'm realizing now that I'm very ignorant when it comes to non English-based software engineering.