6 ms·
The one big upside is, for quite a good amount of people, being able to use their native language instead of being stuck with the latin alphabet When I was in
by boudin 8y ago
The one big upside is, for quite a good amount of people, being able to use their native language instead of being stuck with the latin alphabet
When I was in france, all the software were written using french identifiers. It was much better this way since none of the code was meant to be shared outside of france and it made the code much more readable for people who were supposed to work on it. Why should it be possible only for latin based languages?
- adwn 8y agoAll keywords are in English. The standard library is in English. All external library APIs, open source or otherwise, are in English. But your own functions and variables have to be different? Why? If your grasp on English is sufficient for using a programming language, than it is also sufficient for using English identifiers. And I'm saying that as a native German speaker. > it made the code much more readable "Much more readable"? It made the code base inconsistent with the rest of the language. Are you saying that they were lacking even basic English language skills?
- hsivonen 8y agoIt may make sense to use non-English words to name stuff that is about local legal concepts in enterprise software.
- nemaar 8y agoI very much agree with you. Having some strange words in the middle of a large code that is mostly english is just, well, weird. I think inconsistency is a serious issue.
- gumby 8y agoThe language keywords are just keywords; you simply learn their meaning. As a native English speaker, though 'while' is a somewhat intuitively-named keyword, the 'for' keyword in c/c++ has to be learned. After a while you don't notice, any more than musicians have to learn Italian to play music (quick: what do 'fortissimo' and 'da capo ala fine' mean). I don't see any problem with source code that says something like 'auto maßtab = waage.m_maßtab();' 'auto' and '=' are simply language tokens.
- adwn 8y ago> I don't see any problem with source code that says something like 'auto maßtab = waage.m_maßtab();' There's no potential for confusion if you allow ASCII letters and 'ß'. Confusion can arise, however, when you allow all Unicode letters.
- ken 8y agoThis isn't a very convincing argument to me. "We fail at source code localization in 4 other ways already" is not a good argument for "let's force a failure in a 5th way, too, even though that's the one place where there's no technical issue with it". To me, using English keywords everywhere is a historical accident, not a design goal. In next-generation systems like Subtext [1], it looks entirely possible to add localization to source code, too. Once you throw out the Lisp way of having one namespace for all symbols (or, OK, like 7 in CL), to be used as functions or values, and go to a system where you want to be able to statically type-check everything, why not fully commit to it and let users give local names to identifiers? Then we won't be limited to legacy C-style naming rules, or have to argue about how many space characters to add to make all their names line up on a high-resolution VT100 emulator, either. [1]: https://en.wikipedia.org/wiki/Subtext_(programming_language) https://en.wikipedia.org/wiki/Subtext_(programming_language)
- boudin 8y agoIf you work on a purely technical framework, yes it can make sense, even if i don't see why using french would be an issue for french people. Actually, i always liked the fact that since all the keywords are english, i can use mostly all the french language. When you work on a specialised field (for example some veterinarian software I worked in), learning the specific terms in your own language is already a lot. Learning how to translate those is adding much more complexity. It gets even worse when your specifications are written in one language (french in my example) and the software is written in another, so not re-using the syntax of the specifications. Add that most of the people will then have no understanding of what the code does without a list of translation, you end up in a quite messy situation... Yes i'm saying that a lot of colleagues were lacking basic english skills, and i don't see the issue with that. English is a nice to have to communicate with people abroad, but absolutely not necessary to live in France.
- reaperducer 8y agoI once had to debug code where the code was in English, but the comments were all in Cyrillic. Oddly (to me, anyway), the software house that made the program was located in Africa.
- bsenftner 8y agoSimilar experience while working for Sony in Japan: all the code is in English, all the comments are in Kanji. Oddly, the variable names were always and only the variable names used in the code examples, as if they thought they were the only allowed variables.
- anoncake 8y agoThe code of StarOffice probably wasn't meant to be shared outside Germany. I think LibreOffice recently finished translating everything to English.
- vbezhenar 8y agoIn Russia it's considered very bad and novice style to use Russian words as identifiers (they usually spell it with latin letters anyway, constantly switching between latin and cyrillic layouts is very cumbersome). There's one exception: 1C platform, but that software is used internally for accounting and basically a DSL with heavy use of application domain terminology. Sometimes I'm tempted to use Russian identifiers for application domain terminology, because very often there's no adequate translation or I just don't know English enough to translate some terms. I like the following example: every man here has name combined from last name (Фамилия) which is used for all family members, first name (Имя), that's pretty standard. But there's also third name: Отчество, which is basically father's name with some suffix, e.g. father Иван will have child with third name Иванович. Now I've seen all kinds of translations for those terms, including plain wrong. Last name, family name for Фамилия, first name, name for имя, father name, second name, patronymic, patronymic name for отчество. I've seen bugs because one developer interpreted those terms differently from another. And that's just for name. There are plenty of other terms. Add to that that many developers are bad at English and at best will use first result from Google Translate. So may be national identifiers have its place.
- kbenson 8y ago> every man here has name combined from last name (Фамилия) which is used for all family members, first name (Имя), that's pretty standard. Sounds like you get to skirt a few of the problems outlines in Falsehoods Programmers Believe About Names[1]. That's nice for programmers in Russia that deal with Russia only, if true. :) 1: https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/ https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...
- drewmate 8y agoI think Russians do get to skirt a few of the problems... if they believe their systems are only used by native Russians with standard Russian names. Of course the whole point of the article you mentioned is that making such assumptions leads to odd behavior. I (an American) lived in Russia for a while. One time I was having a couch delivered to my apartment and had to give the store my full name. I was delighted to see my middle name show up on the receipt in the отчество (patronymic) field with the Russian patronymic suffix ович attached. I still got the couch no problem, but I got a laugh out of their attempt to shoehorn my (clearly not Russian) names into their naming paradigm.
- renox 8y agoMuch better that's debatable: 1) you can't really be a programmer without good English knowledge 2) I'm French and worked on a software in French: eventually the source code had to be translated in English (a requirement from one customer): what a waste of time & money..