If another developer comes on board, will their English be fluent enough to know those terms? There's also a huge risk in having a translation error. We're programmers, not translators.
For general variable names, I agree. On the other hand, in my experience, when the programmers aren't fluent enough in English, if English is imposed, they tend to choose really bad variable names and not comment their code properly. So I tend to impose clear names/doc over imposing a specific language.
Another factor to consider is that if we write in language that has some constructs (e.g. C - if/then/else/while/return/int/double/class/void etc.) then writing:
if (znalezione) {
...
}
looks awkward.Also one has to consider popular libraries and functions/methods/classes in them are English based, so this would add even more awkwardness to the code:
zwierzęta.stream()
.filter(z -> z.kończyny().contains(noga))
.map(z -> z.toString())
.collect(Collectors.toList());I agree with you, but the example you gave is more common than you think. We tend to over-estimate people's language skills. (keep in mind, English is not my native tongue, I'm including myself in there and it's not meant as an attack, just something we need to deal with, and I would not outright exclude bilingual code)
That's why my startup uses language-neutral variable names like i, j, k and x, y, z.
Joke aside, for anyone curious: we use such i, j variables for abstract logic like a counter (e.g. i=0 at the beginning of a loop, and gets incremented by 1 each time the loop runs), or booleans maybe (e.g. P=0 or 1, true or false). But generally it is considered good practice to give names to variables that are self-explanatory (e.g. studentName or vehicle_age) for readability and ease of understanding. Even counters and booleans should be significant when possible (e.g. "hasResponded" or "day_num").
On topic, I think english or not doesn't matter theoretically. Its cultural and indeed 80% of computing/code happens in english on earth (no source, waddayathink!). What matters imho is that semantics are correct (both human and machine language...) and reasonably meaningful to a collaborator.
To anybody wanting to know better: read open-source code. Best school there is, actual practice.
I can't imagine naming variables using any other language but English.
I spent some time as a consultant auditing other companies' software. Even with platforms where the coding-standards dictated the use of English, most of the projects I audited in Europe used the local language, rather than English - especially in variable names.Admittedly there was a selection bias - I wasn't ever hired to audit perfectly good software - but it was remarkably common.
If one were to pick Polish variable names, would the default be the neutral forms[1]? I'm sure this applies to other languages that also have forms of complex declension compared to English. Which would make more sense in Polish?
As a English-is-my-second-language person I can't imagine naming variables using any other language but English.
English is most of the times more concise than my mother language (Polish), and it is much easier to share code on the net, find help on stackoverflow, etc.