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.
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.
Considering how much manufacturing and science etc. has fully migrated to metric, even in the US, this seems bizarre to me.
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.
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 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.
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.
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.
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.
It's a little bit better if only the comments are in Swedish but it's still annoying...
Luckily it's very rare.
Bonus point when the people who decided to use English words are also all proud of their "DDD" architecture.
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.
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...
Fun times.
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.
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.
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.
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)
Luckily if you are intelligent enough to read Dutch learning English is a walk in the park.
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.
https://chatgpt.com/share/679b43af-e770-800a-92ee-b27bd87194...
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.
See e.g. FizzBuzz Enterprise Edition https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris...
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.
Java was released in 1995.
function czyWybranoPsa() {
var isPies = false; var bil_dod_psy_arr = [17, 18, 19]; // psa, psa-asystenta, psa-przewodnika
$(".bilet_dodatkowy").each(function(idx, elem) { if (bil_dod_psy_arr.indexOf(parseInt($(elem).val())) > -1) { isPies = true; } });
return isPies; }
[1] https://yandex.ru/project/browser/streams/technology (RU only)
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.
Come to think of it, I wonder if there are language concepts that don't map to English that artificially restrict what we can program?
For example would programming U->D, R->L in Chinese (vs L->R, U->D in English) result in easier to read programs somehow?
Would being able to program using iconography (like a bunch of FE languages) result in more "screens" of text to aid understanding?
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.
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.
Example: https://easy-excel.com/excel-in-other-languages/excel-formul...
(someone who had to learn english to do programming)
relying on machine-translated documentation or limiting yourself to only using libraries written in your native language would be a huge impediment.
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.
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.
(+) latin term!
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.
'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.
Old habits die hard I guess...
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.
- 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!)
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!
Not if you think of it as Hungarian notation.
Literally the arrival time of the train
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.
function czyWybranoPsa() {
var isPies = false; var bil_dod_psy_arr = [17, 18, 19]; // psa, psa-asystenta, psa-przewodnika
$(".bilet_dodatkowy").each(function(idx, elem) { if (bil_dod_psy_arr.indexOf(parseInt($(elem).val())) > -1) { isPies = true; } });
return isPies; }
;)
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.
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.
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'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.
See also: aviation.
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.
However, I suspect it's a honey pot.
Don't forget Shenzhen is a stone's throw away from Hong Kong where English is widely spoken.
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)
Yes, coding in english is the standard.
https://en.wikipedia.org/wiki/Non-English-based_programming_...
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.
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 שלום).
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
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...
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.
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.
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.
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.
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.
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 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.
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.