[HN Gopher] Rouille - Rust Programming, in French
       ___________________________________________________________________
        
       Rouille - Rust Programming, in French
        
       Author : mihau
       Score  : 197 points
       Date   : 2025-10-23 09:43 UTC (8 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | the__alchemist wrote:
       | There is also a Rust minimal HTTP server by this name.
       | (Incidentally, one of the few that isn't Async.)
        
       | gnarlouse wrote:
       | Listen, if you didn't just spend at least 5 minutes trying to
       | make random foreign accents reading the code to yourself out loud
       | trying to figure out what the code does...
       | 
       | We're different people.
        
       | jacknews wrote:
       | This is fun. My son is learning esperanto, is there a version for
       | that, maybe a weekend _projekto_ for him.
        
         | gpm wrote:
         | https://github.com/dscottboggs/rustteksto
        
       | joshdavham wrote:
       | Is the compiler now gonna scream at me for using the wrong
       | gender?
        
         | makeitdouble wrote:
         | This is actually in a very aproachable and lenient french. The
         | compiler will offer you a smoke to cool down and think about
         | your syntax from some distance.
         | 
         | > Arf("fetchez le dico".vers())
        
         | jacknews wrote:
         | lol, it'll just say 'Noh!' and then ignore any further input.
         | Especially if you forget the --bonjour flag.
        
           | ttoinou wrote:
           | Without the proper ---bonjour flag as first argument, I
           | expect the compiler to work against me, pretending to compile
           | fine while introducing subtle users bugs
        
         | posix86 wrote:
         | Missing!! They should've translated `let` to `le` and `la`.
        
       | userbinator wrote:
       | Be sure to look at the "other languages" section; and then wonder
       | whether all of it was generated by AI.
        
         | OccamsMirror wrote:
         | It definitely was.
        
           | Lukas_Skywalker wrote:
           | I don't think so. At least the french one is quite old and
           | was discussed here before AI was in wide use:
           | https://news.ycombinator.com/item?id=28490935
           | 
           | I remember that many of the other languages popped up a
           | little later.
        
           | jeroenhd wrote:
           | I doubt it. Rouille uses a very simple "word to other word"
           | map that anyone with an hour of free time can fill out for
           | their own language.
           | 
           | The implementation is also rather inefficient, but it's not
           | like such a translated macro will be used for anything
           | serious.
        
         | vortegne wrote:
         | The Russian version seems to be handcrafted with humor
        
         | jeroenhd wrote:
         | I can tell you that github.com/jeroenhd/roest was all done
         | manually.
         | 
         | If I'd used AI, I probably would've included grammatical gender
         | for nouns.
        
       | grishka wrote:
       | The Russian version linked there is, uh, underwhelming. That
       | whole gopnik vibe is entirely unwarranted. I understand a bit of
       | Spanish and that one is much better in comparison.
        
         | johncolanduoni wrote:
         | I wish the Greek one had a vibe at all, past putting the Rust
         | logo on a gyro. Not even a curse word. You could have some fun
         | with compiler errors and allusions to Oxi Day (which was two
         | days ago).
        
           | yoz-y wrote:
           | Slovak one does not use diacritics so it's quite hard to
           | read.
        
         | mrugge wrote:
         | I thought the Russian version was pretty funny. Thanks for
         | calling it out.
        
           | konart wrote:
           | idk, as I see it - it's funny if you are 14 years old or non
           | native, so the whole vibe is a bit amusing.
           | 
           | Just like it may be amusing to watch "Don't Be a Menace to
           | South Central While Drinking Your Juice in the Hood" as long
           | as you understand satire.
        
         | fainpul wrote:
         | I don't know russian, so I can't judge the quality, but
         | Tsoding's lang might suit you better:
         | 
         | https://github.com/tsoding/good_training_language
        
           | dullcrisp wrote:
           | This is excellent.
        
           | grishka wrote:
           | This is amazing.
        
           | fainpul wrote:
           | BTW, here's the stream to go along with that:
           | 
           | https://www.youtube.com/watch?v=f4EOMbmIqqw
        
         | listeria wrote:
         | I was immediately put off by the Spanish version when I saw it
         | was called "rustico", which does not translate to rust at all,
         | it means rustic. The Spanish word for rust would be "oxido".
        
           | zozbot234 wrote:
           | "Rustic" is actually a very common term in the Rust
           | community, though it's an obvious joke drawing on 'Pythonic'.
           | But there's nothing inherently wrong with "Rustico" as a name
           | for a programming language.
        
             | listeria wrote:
             | That's all well and good, except the README clearly states:
             | 
             | > rustico (Spanish for Rust)
             | 
             | which is plain wrong.
        
       | d--b wrote:
       | I like the translation of the WTFPL as << la license rien a
       | branler >>
       | 
       | If you don't know the idiom, you should check it out, it's both
       | particularly vulgar and very commonly used.
        
         | rossant wrote:
         | But is it more vulgar than the English version? Deep question.
        
         | ahartmetz wrote:
         | "Nothing to wank license", too literally translated
         | 
         | French has so many perfectly normal looking words for sexual
         | stuff. Not particularly long or short, not a compound of other
         | words or a circumscription... nope, just a word for a thing,
         | like table or house or tree.
        
       | 24f0bacc7c72d0a wrote:
       | Name conflict with the OG rust synchronous web framework:
       | https://github.com/tomaka/rouille
        
       | _ache_ wrote:
       | You must learn about Baguette#.
       | 
       | An implementation of OCaml (similar to Haskell, but from France
       | instead of UK), but with french pastries name. It was half a
       | joke, half a serious study project.
       | 
       | https://github.com/vanilla-extracts/ocaml-baguettesharp-inte...
        
         | el_pollo_diablo wrote:
         | Years ago the research team behind OCaml released Chamelle, a
         | version of the language localized in French, as an April fool's
         | joke:
         | 
         | https://gallium.inria.fr/blog/ocaml-5/
        
       | michidk wrote:
       | fk lese(&selbst, schlsl: Zeichenkette) ->
       | Ergebnis<Moglichkeit<&Zeichenkette>, Zeichenkette> { wenn lass
       | Etwas(wobu) = gefahrlich { WORTERBUCH.als_ref() } {
       | Gut(wobu.hole(&schlsl)) } anderenfalls { Fehler("Holt das
       | Worterbuch".hinein()) } }
       | 
       | https://github.com/michidk/rost
        
         | fainpul wrote:
         | Indent with two spaces for code formatting.
        
           | yohbho wrote:
           | fk lese(&selbst, schlsl: Zeichenkette) ->
           | Ergebnis<Moglichkeit<&Zeichenkette>, Zeichenkette> {
           | wenn lass Etwas(wobu) = gefahrlich { WORTERBUCH.als_ref() } {
           | Gut(wobu.hole(&schlsl))                 } anderenfalls {
           | Fehler("Holt das Worterbuch".hinein())                 }
           | }
           | 
           | isn't the idea behind programming "languages", that they are
           | sentences readable to both humans and the compiler?
           | 
           | This absolutely is not readable to me. But woerterbuch and
           | schluessel should of course not be abbreviated, for
           | legibility.
        
             | ahartmetz wrote:
             | If German was seriously used in programming languages, I'd
             | hope for some better and shorter terms. Some here might be
             | intentionally too literal translations anyway. "Let" is
             | from mathematics, it's called "Sei" in German. "Sei x = 5".
             | "Anderenfalls" could be "sonst". "Zeichenkette" is just too
             | long and would require some thinking or a historical
             | accident to find a shorter term.
             | 
             | Ready surprisingly nice to me anyway.
        
             | b3orn wrote:
             | I would use "sei" instead of "lass" for "let" to be more in
             | line with notation in mathematical proofs.
        
         | croemer wrote:
         | I don't like the non-Germanic ref here in als_ref is not
         | Germanic enough. als_ver (from Verweis) would be nicer.
        
           | 9dev wrote:
           | I read it as als_referenz, which arguably makes sense!
        
             | croemer wrote:
             | For sure it's valid German but for maximum fun it's nice to
             | have it be as Germanic as possible and avoid words that
             | share roots with the standard English programming terms.
        
         | fransje26 wrote:
         | Almost perfect. I'm missing the Schwabacher typeface rendering.
        
         | ahartmetz wrote:
         | As a non-Bavarian German, I'm offended by the German = Bavarian
         | stereotype! (jk, it's just mildly annoying sometimes and this
         | is _meant_ to be silly)
        
       | lower wrote:
       | There were actually localized version of Visual Basic for
       | Applications.
       | 
       | https://de.wikipedia.org/wiki/Visual_Basic_for_Applications?...
       | 
       | https://news.ycombinator.com/item?id=21352796
        
       | wiether wrote:
       | The complete dictionary is here:
       | https://github.com/bnjbvr/rouille/blob/principale/rouille_co...
       | 
       | I just can't stop laughing at the "genial" => "super"
       | https://github.com/bnjbvr/rouille/blob/principale/rouille_co...
        
         | lkuty wrote:
         | Haha the translation is so funny. But I confess, as a native
         | french speaker, I could not code in that language. It is so
         | weird because I am used to english for coding now. Sometimes I
         | write my variable names in french and I think I even used
         | accented letters one time. What is worse, is that I tend to mix
         | english and fench variable names in my code, but anyway english
         | is way more common in the code base.
        
           | philistine wrote:
           | Using French variable names is a great way for me to know
           | this is something I defined, not something which is defined
           | by the environment.
        
         | zozbot234 wrote:
         | I find it slightly disappointing that they haven't stuck with
         | the Rust practice of picking short or abbreviated words when
         | they're clearly unambiguous - such as "fn" instead of "func" or
         | "function". E.g. why Resultat<...> when you can write just
         | Resu? Why PeutEtre and not Ptet, very common in quick language,
         | e.g. for texting or chatting?
        
         | melicerte wrote:
         | I've notice there is "merde" method which is available in the
         | example like in
         | https://github.com/bnjbvr/rouille/blob/7e9523fe24026bff1a3a7...
         | 
         | Merde is an alias for "calisse" and "oups" , see
         | https://github.com/bnjbvr/rouille/blob/7e9523fe24026bff1a3a7...
        
           | nartho wrote:
           | I'm partial to crate -> cagette
        
         | PoignardAzur wrote:
         | "PeutEtre" => "Option" is the clearest evidence this is
         | shitposting, because Option is also a French word.
         | 
         | But the best one is "merde" | "calisse" | "oups" => "panic"
        
         | masom wrote:
         | lol, the author (or whoever translated) doesn't know that
         | "super" doesn't mean "genial" in the context it would be used
         | in.
         | 
         | "super" is also a Latin word that's valid French.
         | 
         | > Au-dessus de, exprimant une superiorite dans la qualite
         | 
         | https://www.larousse.fr/dictionnaires/francais/super-/75409
        
           | fouronnes3 wrote:
           | I'm pretty sure they know, and that's what makes it funny.
           | There's an entire genre of internet humor based on using
           | incorrect (because of homophone/homograph words) english-to-
           | french translation. For example saying "verifie les buches"
           | for "check the logs".
        
             | wiether wrote:
             | Yeah that was my understanding and why I found it so funny!
        
           | layer8 wrote:
           | It's intentional and meant as a joke.
        
             | zozbot234 wrote:
             | I might have picked "desu" as the keyword, a shorter
             | phonetic respelling of dessus. Since the super keyword is
             | often repeated in Rust, this would lead to code like
             | `utilisons desu::desu::desu::a()`, for some added Japanese
             | flavor.
        
             | SilasX wrote:
             | Even so, it parallels a real thing that happens in non-joke
             | contexts, where they avoid valid French when it looks "too
             | English":
             | 
             | https://news.ycombinator.com/item?id=45773624
        
           | SilasX wrote:
           | Haha there are other cases where there is valid French that
           | isn't accepted in French speaking areas because it looks too
           | similar to English.
           | 
           | 1) Quebec wanted "arret" instead of "stop" on stop signs,
           | even though the latter is accepted as valid French and used
           | in France.
           | 
           | https://en.wikipedia.org/wiki/Stop_sign?utm_source=chatgpt.c.
           | ..
           | 
           | 2) The use of the TLD .gouv.fr instead of .gov.fr, even
           | though "gov" is a recognizable contraction of the intended
           | French word "gouvernement".
           | 
           | (No, it's not a valid defense that "'gov' would be pronounced
           | differently from 'gouv'": the English TLD .com is a
           | contraction of "commercial", even though the "com" in "dot-
           | com" is pronounced differently from the "com" in
           | "commercial".)
        
             | wiether wrote:
             | I don't understand any of this.
             | 
             | Probably because of their proximity with the USA, the
             | french-speaking community in Quebec is far more attached to
             | using French than actual French people. That's why in
             | France we use "Stop" and not "Arret".
             | 
             | On the other hand, ".gouv.fr" is something used in France.
             | gouv[ernement] is completely different than
             | go[u]v[ernement] Not only because of its pronunciation, but
             | also because it's not a simple shortening of the original
             | word.
             | 
             | We never use "aso" to talk about an "association", even
             | though it would shorten it even more, because it just
             | doesn't make sense. You can remove the ending of a word,
             | creating a kind of "prefix", bug it you remove multiple
             | part of a word it just become something different.
        
               | SilasX wrote:
               | >On the other hand, ".gouv.fr" is something used in
               | France. gouv[ernement] is completely different than
               | go[u]v[ernement]
               | 
               | How are they different? Contractions and abbreviations
               | drop letters. That's the point. .gov would have been
               | perfectly fine and matched other countries. It's a clear
               | example of being different for the sake of it.
        
       | moezd wrote:
       | This is hilarious, thank you for your effort good sir, this is
       | what I pay the internet for! :)
        
       | fouronnes3 wrote:
       | As a native french speaker, I feel so uneasy reading source code
       | in french. It feels very very uncanny. I've often wondered if
       | English native speakers feel the same when reading normal source
       | code which is always in English. They probably don't. But how?
       | I've always associated the "other language-ness" to correctness
       | and technicality. It must be so weird to code in your own
       | language. Feels like reading bad pseudo code. It's very nice to
       | be able to map "english" to "technical, correct" and "native
       | language" to "descriptive, approximate, comments, pseudo-code".
       | Having only a single language to work with is like removing a
       | color from the rainbow.
        
         | wiether wrote:
         | Salutations,
         | 
         | I always felt the same and one theory I have is because the
         | imperative nature of source code feels rude if you try and put
         | it in French. It feels like yelling orders to a dog.
         | 
         | Then I don't know if it's just because in French, despite
         | everyone calling us rude, we are usually quite polite. Or if
         | it's the same for every ESL.
        
         | silisili wrote:
         | As an American...no uncanniness to English. I guess because it
         | was always the default and what was taught.
         | 
         | The first time I encountered a non English PL, I did feel the
         | same uncanniness you spoke of. It felt... wrong? I wish I
         | remembered which one it was. It was probably the first time I
         | realized how prevelant English was, and that PLs could even be
         | written in any language .
        
         | croisillon wrote:
         | i thought the verbs in English-programming were meant to be
         | infinitive and not imperative?
        
           | mr_toad wrote:
           | Most programmers probably don't even know what that means.
        
         | kubb wrote:
         | It looks more elegant than English.
        
         | resonious wrote:
         | I'm a native English speaker. I do actually remember
         | programming languages feeling a little uncanny at first. Like
         | you can tell that it's "computery" and that the language author
         | tried to make it English-like and only sorta succeeded.
         | 
         | So I think at this point, for me, programming languages just
         | aren't English. One odd thing I've noticed is that in Ruby the
         | `unless` keyword confuses the hell out of me, and yet when
         | speaking English I never get tripped up on the actual word
         | "unless". So I guess it's handy that the keywords in
         | programming happen to be English words, but my comprehension of
         | programming languages seems to occupy another region of my
         | brain.
        
           | bionsystem wrote:
           | I'm quite fluent in english and "unless" is also weird to me,
           | for some reason, "when" in ansible is also very weird, I
           | don't know why. Back to the original post, I would never work
           | for my (French) government again if they adopt something like
           | rouille ; just reading the README felt very weird.
        
             | galangalalgol wrote:
             | But rust lets you use unicode for identifiers. Just make
             | every variable its own greek letter. Or Tamil, plenty of
             | languages available. Why waste screen space by using entire
             | words? That is mostly sarcasm, maybe?
             | 
             | Didn't someone say something about using French to speak of
             | love and german to speak of science? Maybe english is
             | getting it's use.
        
               | zozbot234 wrote:
               | > But rust lets you use unicode for identifiers. Just
               | make every variable its own greek letter.
               | 
               | This can actually be useful for locally-defined
               | variables. Even more so if you're using an editor with
               | LSP support where it's trivial to bring up the doc
               | comments for an identifier as a tooltip - with some added
               | support, you could even write these doc comments in
               | multiple natural languages, while keeping the code itself
               | quite linguistically neutral.
        
               | mr_toad wrote:
               | > Didn't someone say something about using French to
               | speak of love and german to speak of science?
               | 
               | Possibly a quote attributed to Charles V: I speak in
               | Latin to God, Italian to Women, French to Men, and German
               | to my Horse.
        
               | 12_throw_away wrote:
               | > Didn't someone say something about using French to
               | speak of love and german to speak of science? Maybe
               | english is getting it's use.
               | 
               | That's interesting - as someone noted below, in musical
               | notation, the keywords are nearly all Italian, and it
               | would feel quite weird if they were written in English
               | instead. So in that sense, yeah, maybe `for`, `if`,
               | `then`, `import`, etc. are the "fortissimo" and "d.s. al
               | coda"s of the programming world.
        
             | Someone wrote:
             | > "unless" is also weird to me
             | 
             | I think that's because it (?almost?) always splits "is not"
             | in two parts. Compare "If x is not y" with "if not (x is
             | y)".
             | 
             | > for some reason, "when" in ansible is also very weird
             | 
             | When feels weird to me, too. I think that is because "when"
             | often implies something will happen, but you don't know the
             | exact time, while "if" means you don't know whether it will
             | happen at all (compare "when it rains" with "if it rains").
             | So, using when to describe a trigger is fine, but to me it
             | doesn't make sense as a statement in an imperative
             | programming language.
             | 
             | > just reading the README felt very weird.
             | 
             | I had to check, and yes, there is a README.md, and no
             | LIVREMOI.md.
        
               | capitainenemo wrote:
               | Wouldn't that be LISMOI.md ? [edit] nope - apparently
               | LISEZMOI.md
        
               | Someone wrote:
               | Possibly. My French isn't that good.
        
               | capitainenemo wrote:
               | Going to go with "yes" based on this 2nd hit in a DDG
               | search :) https://gitlab.com/bztsrc/easyboot/-/blob/main/
               | LISMOI.md?ref...
               | 
               | [edit] n/m based on correction below and followup search,
               | there are far more LISEZMOI.md files than LISMOI.md
               | files.
        
               | bondant wrote:
               | It would be LISEZMOI.md
        
             | brabel wrote:
             | Unless When
             | 
             | I guess you will not like Lisp then (;
             | 
             | http://clhs.lisp.se/Body/m_when_.htm
        
           | layer8 wrote:
           | I'm not a native speaker, but I always liked the postfix
           | "unless" in Perl, for use with operations that are performed
           | in the common case and only omitted under special
           | circumstances.                   do_something() unless
           | special_condition;
           | 
           | It vibes with "unless" in English usually implying an
           | exception.
        
         | _notreallyme_ wrote:
         | As a native french speaker, I have the same feeling when
         | reading code written with french keywords, except that since I
         | learned boolean and arithmetic in french, it makes more sense
         | to me to read them in french. As others have pointed out, it
         | seems to only be a matter of how you learn to read and write
         | code.
         | 
         | For comparison, in mathematics I learned to read all the
         | symbols in french, and only learned their english equivalent
         | much later, so it feels uneasy for me when i read their english
         | version. So it is clearly a matter of habit that took its root
         | when you learned reading.
        
         | lordnacho wrote:
         | For anything vaguely technical, I use the English term. I don't
         | feel comfortable in any other language, no matter how well I
         | speak it. It just doesn't sit right with me to use eg a Danish
         | term for density, or power, or eigenvalue, or anything
         | programming.
         | 
         | Part of it is that even though I might know the term, it won't
         | be long before I need to bring in something where I don't know
         | the term. At that point I'll be inventing a local term, when I
         | know what the English term is.
        
         | nkrisc wrote:
         | The words may be English but it doesn't feel like English at
         | all because it's but structured like natural language.
        
         | vor0nwe wrote:
         | In this particular case, it might also feel uncanny because the
         | keywords were merely translated; but the grammar (most notably
         | word order) doesn't (always) match.
         | 
         | `asynchrone fonction` feels wrong because it's the wrong word
         | order for French; it should be `fonction asynchrone`...
        
         | lgeorget wrote:
         | Yes it's so strange, like bad and unreadable pseudocode.
         | 
         | I could see myself coding in Latin though:
         | https://github.com/pianoman911/ferrugo. Something about the
         | prepositions tickles my brain the right way.
        
           | 9dev wrote:
           | For real though! I could get used to &ipse.
        
         | agumonkey wrote:
         | It is uncanny but in that case I had a fun feeling reading
         | usual abstraction (maybe types, self traits) in French, it
         | tapped into a different part of the brain, that helps thinking
         | about what the code means less mechanically
        
         | SwiftyBug wrote:
         | I'm a native Portuguese speaker. Here, when people are first
         | starting to learn programming, it's very common for them to
         | write code in Portuguese. For example, they would write this
         | simple age verification algorithm:                 int
         | verifica_idade(int idade) {         if (idade < 18) { return
         | -1; }         return 1;       }            int main() {
         | int idade;         scanf("%d", &idade);              int
         | verificacao = verifica_idade(idade);                if
         | (verificacao < 0) { printf("Acesso negado\n"); }         else {
         | printf("Acesso liberado\n"); }              return 0;       }
         | 
         | Do French (or other languages) speakers also do this?
        
           | fouronnes3 wrote:
           | Yes we do this while learning programming. Then it quickly
           | becomes a sign of being a novice programmer that we look down
           | on.
        
             | nxor wrote:
             | Should it be looked down on?
        
               | hiccuphippo wrote:
               | I think so. You don't know who might touch your code
               | later, better to use English than for them to figure out
               | what those words mean. It would be like using giberish
               | for all your variables.
               | 
               | Another issue, even for other speakers of your language,
               | we don't all translate english words the same, some words
               | are just not translatable and some words look the same
               | but mean different things, how can they tell if it was
               | meant to be English or not?
               | 
               | For example in Spanish, "default" translates to "por
               | omision", two words, there's no single word for it, a lot
               | of people translate it to "defecto" because it's similar
               | but that means flaw, defect. It's so used, people say
               | "por defecto" instead of "por omision" now and some
               | dictionaries added it as a translation already.
               | 
               | Another example, "cache", I know its meaning in computer
               | lingo, the times I've had to use it is in the context of
               | computers, so I have no idea what its translation to
               | Spanish is or if there's even a word for it. If someone
               | used the translation in code I would have no idea what
               | I'd be looking at.
               | 
               | One more, "library" translates to "biblioteca" but some
               | people use "libreria" (bookshop) because it sounds
               | similar. You can find usages of both in documentation.
               | People will probably understand both but it hurts
               | searchability.
        
               | capitainenemo wrote:
               | Well. Although this rouille thing is obviously a joke,
               | it's also just a preprocessor macro layer, so it'd be
               | pretty easy to switch to any view of the code. Could
               | write it in "french" then transform it to english, then
               | to russian.. Could also imagine doing that in an IDE
               | without even impacting copy and paste just as a visual
               | layer. Not sure what one would do for that spanish por
               | omision, but maybe just put an underscore. por_omision
        
               | SilasX wrote:
               | For another example of this, there was BritCSS someone
               | made that lets you use British spellings in CSS:
               | 
               | https://github.com/DeclanChidlow/BritCSS
        
           | williamdclt wrote:
           | Yeah it's quite common in French (for learners). At least in
           | part because French people aren't very good at English, it'd
           | add more friction to the learning process (and even for the
           | ones who aren't bad at english, it's a whole new vocabulary
           | to learn).
           | 
           | I'm not sure when I did the switch myself! Maybe as late as
           | my first professional experience, or maybe a bit later in my
           | studies
        
           | goku12 wrote:
           | > Do French (or other languages) speakers also do this?
           | 
           | I don't know anything about the Portuguese script. But your
           | example seems to be made entirely of regular Latin alphabets.
           | Now imagine another language where that isn't the case. Just
           | switching the layout even on a programmable keyboard is going
           | to be a major annoyance. I can touch type on two layouts
           | (English Qwerty and Malayalam Poorna Inscript, in case you're
           | wondering). Occasionally switching between the two layouts is
           | the biggest distraction while typing prose - even with
           | convenient layer switchers programmed in. Programming is
           | going to be hell if the keywords and identifiers are in
           | different scripts. I reckon that it would slow me down to
           | about one-third of my full speed.
           | 
           | There are genuine reasons why identifiers could be in another
           | language - like programming for linguistics (spelling and
           | grammar checkers, morphology analyzers, etc) or while dealing
           | with regional concepts. But even in those cases, programmers
           | simply transliterate it into Latin script, rather than use
           | the original script. Their sound roughly the same. But full
           | fidelity is not possible (there are sounds that you may not
           | have even imagined before). Even so, it's easier to just
           | compromise on fidelity rather than do constant layout
           | switching.
           | 
           | And then there is the reality that many language scripts are
           | simply unusable for programming. My own language is
           | agglutinative - meaning that multiple words fuse into one
           | (even 4 words combining is not unusual). The same thing can
           | be written in a dozen different ways. This isn't a big issue
           | if you're reading or listening. It won't confuse you. But the
           | moment you start applying formal rules like in a computer,
           | it's a dozen different ways to type it wrong! I like my
           | script for anything other than programming. It's very
           | expressive. But the anemic simplicity of the Latin script is
           | actually a big advantage when it comes to things like
           | programming and mathematics. I believe that you will find
           | many such peculiarities and nuances with other scripts if you
           | go searching.
        
             | brabel wrote:
             | > your example seems to be made entirely of regular Latin
             | alphabets.
             | 
             | Portuguese is a direct descendant of Latin. But it has
             | quite a bit of punctuation, OP just ignored that as the
             | programming language, C, does not support it. In Common
             | Lisp you can happily go:                   (when
             | verificacao (print "pessoa e maior de idade"))
             | 
             | You could even go all the way:                    (defmacro
             | quando (cond corpo) '(when ,cond ,@corpo)          (defun
             | imprime (x) (print x))          ; now we can do this
             | (quando verificacao (imprime "pessoa e maior de idade"))
        
               | goku12 wrote:
               | Ah! Yes! I was wondering about the diacritics/accents.
               | How do you deal with those? Do you have to switch
               | keyboard layouts like me, or are they trivial additions
               | to the qwerty layout?
        
               | brabel wrote:
               | I have 3 different keyboard layouts installed. As I live
               | in Sweden, my keyboard shows the Swedish layout, but I
               | also use both English and Brazilian ABNT layouts and know
               | them by heart.
               | 
               | I have a single key shortcut to switch between them.
               | 
               | Accents work as if I was using a native keyboard, so
               | they're not too bad (unless you're on mobile, there it
               | sucks), except the keys do not show the right symbols. If
               | you don't know the mappings by heart, you can get your OS
               | to show you the layout... maybe leave that on the side
               | and look up when you forget something.
        
           | layer8 wrote:
           | If the application domain is country-specific, this even
           | happens in professional programming, because it doesn't make
           | sense to invent English translations for the local-language
           | domain-specific technical terms. Whenever people do this, the
           | result is non-idiomatic English terms that neither make sense
           | to an English speaker nor to a local domain expert.
        
         | KineticLensman wrote:
         | (Brit here) My first encounter with a foreign PL was a French
         | Prolog implementation in the mid 80s whose only compiler error
         | message was IIRC something like 'Erreur syntactique'. This
         | seemed superbly Gallic, if somewhat less than helpful.
        
           | didgeoridoo wrote:
           | Two of the best things I learned in French class (which was
           | basically "Parisian culture of 1982" class) was that
           | "impossible" in French meant "I don't feel like it", and if
           | someone shrugged in a way where the edges of their mouth
           | touched the top of their shoulders, you were shit out of luck
           | with whatever you were asking for.
        
             | KineticLensman wrote:
             | Off-topic but that reminds me of the quote from "Stand on
             | Zanzibar" where 'impossible' is defined as IIRC "1) I can't
             | be bothered or 2) I don't approve or 3) God can't be
             | bothered"
        
         | graemep wrote:
         | It did not feel odd to me.
         | 
         | Possibly a remnant of being bilingual as a child (I am not
         | anymore, and was not by the time I learned programming later in
         | my childhood)?
         | 
         | I do not think I ever really thought of programming languages
         | as being English, but English like/derived from English.
        
         | TofuLover wrote:
         | The closest I've ever felt to this as a native English speaker
         | is reading words in music scores in English. I'm a classically
         | trained cellist, and grew up learning notation with Italian and
         | French words for directions and expression. I've never learned
         | either of those languages, save the words used in music
         | notation. Seeing a score with those words in English just
         | feels... wrong. Not in any big way, but as you said: uncanny.
         | Definitely get the "bad psuedocode" vibe, because to me it
         | English in music notation feels similar -- like the person who
         | wrote it didn't know what they were doing, even though the
         | notation makes perfect sense and the music is good. It removes
         | some of the flair of the art of the notation itself for me.
        
           | 12_throw_away wrote:
           | This is a very good analogy, sheet music with all the Italian
           | replaced by English would be very funny. "Loud!" "Very loud!"
           | "Super-duper quiet!" "This is the end of the song!" "play
           | this part reallll smooootthh" etc.
           | 
           | (Actually I believe the late P.D.Q. Bach [1] did this a lot,
           | and it was in fact quite funny)
           | 
           | [1] https://en.wikipedia.org/wiki/P._D._Q._Bach
        
         | trallnag wrote:
         | How's Microsoft Excel for you?
        
           | fouronnes3 wrote:
           | Excel is a good one, another one is World of Warcraft macros
           | which depend on the client language because Blizzard is too
           | good at i18n and they translated spell names which are used
           | as spell identifiers in the UX lua code.
        
         | embedding-shape wrote:
         | I started self-learning programming from Swedish resources,
         | using Swedish variable names and (trying) to store Swedish text
         | in databases. The good news is that I learned about encoding
         | and how to store "aao" properly early on, the bad news is that
         | it was really difficult to ask questions on Stack Overflow when
         | your PHP is 50% Swedish and 50% English. Actually entering the
         | code into Notepad++ was difficult too, weird finger movements
         | to get to the common "special" characters.
         | 
         | Since them I've moved to US keyboards after starting to work
         | with others in an office and not being able to pair program
         | otherwise, and obviously default everything else to English
         | too.
         | 
         | I'm not a native English speaker, but when I come across that
         | sort of "programmed in the country's language" programs today
         | it does take some time to get used to the style and translating
         | stuff while also trying to understand the logic. I wouldn't say
         | it's a huge time-sink, but particularly names can be difficult
         | to convert/translate on the fly when you're trying to get
         | product and developers to agree to what we're talking about.
        
         | gwbas1c wrote:
         | > I've often wondered if English native speakers feel the same
         | when reading normal source code which is always in English.
         | 
         | I think that depends on if they understand how to program. For
         | me, as a native English speaker, a computer program is not
         | speech.
         | 
         | In a program, there's three areas where the spoken language
         | influences:
         | 
         | 1: _The keywords in the language_ : IE, "if," "switch,"
         | "return," ect. These take on a meaning in my head that is
         | distinct from the meaning of the spoken word. "class" is a good
         | example: Its use in programming is shortened from
         | "classification" which comes out of category theory; but its
         | use in English means something very different. Likewise, "if"
         | in my head has such a different meaning in code that if "si"
         | were used, it wouldn't make a different.
         | 
         | IE, in code we use "class" as if
         | https://en.wikipedia.org/wiki/Class_(programming), which came
         | from https://en.wikipedia.org/wiki/Class_(set_theory) and
         | https://en.wikipedia.org/wiki/Category_theory; but in English
         | it's commonly meant to be
         | https://en.wikipedia.org/wiki/Class_(education).
         | 
         | 2: _The API names_ : By convention, APIs typically are English.
         | Learning these is like learning any kind of professional lingo.
         | I've never tried using a non-English API, and would probably
         | struggle significantly if I had to.
         | 
         | 3: _My code itself_ : A significant amount of my time spent
         | writing a computer program is making sure that my code is
         | understandable to me and the other people who have to maintain
         | the program. There's always going to be an "other-worldliness"
         | to a program until someone understands the conventions and
         | style.
        
           | LudwigNagasena wrote:
           | "Class" in the sense of classification and taxonomy is a
           | common English word used in many contexts: working class,
           | second class, business class, etc. Those aren't obscure
           | concepts. I don't think it is any more weird than "if",
           | though I am not a native speaker.
        
             | gwbas1c wrote:
             | Years ago a read an introduction to category theory, and it
             | was very obvious that it influenced object oriented
             | programming.
        
         | Tade0 wrote:
         | The first language I gained any proficiency in was Logo which,
         | as an educational tool, was translated to my language and that
         | felt to me like a 1960s understanding of communicating with an
         | AI.
         | 
         | I learned English via immersion as I was thrown into an
         | international environment at age four and to me it radiated
         | confidence as the few native English speakers there were
         | obviously much more proficient in the language.
         | 
         | I have a problem with the word "robot", as it's essentially a
         | loanword from my family of languages, but I was unaware of that
         | initially and once I've made that connection, the "coolness"
         | faded somewhat.
         | 
         | Strangely French to me has this same air of confidence,
         | displayed in, among other, the French word for "computer".
         | Truly the French copy no one, nobody copies the French.
        
           | TimorousBestie wrote:
           | _L'ordinateur_ really should have caught on, it's a pity. A
           | beautiful word.
        
             | SiempreViernes wrote:
             | Computer comes from French, so they could just have settled
             | on pronouncing it properly and gotten on with their day,
             | but nooo, gotta invent a new word for this very old french
             | word.
        
           | ddkto wrote:
           | My first language was also Logo, which I learned first in
           | English at home, then in French at school. I wonder how many
           | languages Logo was translated into?
           | 
           | Examples is French: https://www.tortue-logo.fr/fr/tortue-
           | logo/exemples/
        
             | Tade0 wrote:
             | Mine was exclusively in Polish because it was some kind of
             | demo version which lacked documentation and some functions.
             | 
             | Fortunately most commands had TLA aliases and were
             | highlighted in the editor, so I just generated all three-
             | letter combinations, inspected them visually and reverse-
             | engineered what they were doing.
        
         | CoastalCoder wrote:
         | I'm curious if there was a similar dynamic when German stopped
         | being the standard language for scientific research.
        
         | 0xb0565e486 wrote:
         | I think you may be over-reading into this a bit. Seems to me as
         | just a familiarity thing?
         | 
         | Programming in English = X Programming in French = Y
         | 
         | You're used to X and now it's Y. So it feels weird. English
         | speakers are used to X and it's X. So it feels normal.
        
         | teunispeters wrote:
         | I've worked with Japanese and German code. It is definitely
         | unfamiliar and gets me thinking a lot more about how I approach
         | code. I'm liking your description as I keep wanting to map
         | "english" to "technical, correct" too and this helps. thank
         | you!
        
       | benob wrote:
       | This is very lenient French: "fetchez le dico"
        
         | hmstx wrote:
         | Might be a Monty Python joke, as in "fetchez la vache!"
        
       | sweca wrote:
       | hahaha j'adore que le mot quebecois "calisse" est inclus
        
       | croemer wrote:
       | Previously discussed:
       | 
       | Rouille (338 points, 144 comments, Sept 11, 2021)
       | https://news.ycombinator.com/item?id=28490935
       | 
       | Rost - Write rust code in German (55 points, 16 comments, Nov 9
       | 2021) https://news.ycombinator.com/item?id=29159077
       | 
       | Rost - Rust Programming in German (161 points, 115 comments, Mar
       | 25, 2025) https://news.ycombinator.com/item?id=43488490
        
       | haunter wrote:
       | Related: Non-English-based programming languages
       | https://en.wikipedia.org/wiki/Non-English-based_programming_...
       | (not really up to date though)
        
         | athulbc wrote:
         | There are Russian and Chinese programming languages. Quite
         | natural. But there are already Hindi programming languages as
         | well. Mind blowing detail! Thank you for sharing this list.
        
       | aprilfoo wrote:
       | Fantastique !
       | 
       | Let's create "Piaf" to see la vie en rose, the French a la
       | https://codewithrockstar.com/.
        
       | elAhmo wrote:
       | L'Horrible
        
       | ronin-red wrote:
       | That reminds me of LSE, a French BASIC-like programming language.
       | 
       | https://en.wikipedia.org/wiki/LSE_(programming_language)
        
       | worldsavior wrote:
       | Not surprised this sort of thing pops up specifically for french.
       | France is known to not speak English in some situations even
       | though they know English.
        
         | zukzuk wrote:
         | Just wait until the Quebecois government here in Canada hears
         | about this. They are militant about avoiding english at all
         | costs. They changed all the STOP signs in Quebec to ARRET
         | because STOP was too english.
        
           | nxor wrote:
           | What's wrong with that? You want more Anglomania?
        
         | mr_toad wrote:
         | Whenever I try speaking French to them they stare at me in
         | horror and immediately switch to English.
        
       | lowleveldreams wrote:
       | It's interesting how coding in your own language can make the
       | logic feel completely different.
        
       | asgerhb wrote:
       | I like to imagine a world, a worse one, where programming
       | languages were localised. This might initially have been a
       | versioning nightmare, with different compiler binaries for each
       | localisation. Later, it could become standard practice to ship a
       | single compiler containing all supported localisations, the
       | correct one being chosen from either system language, a project-
       | wide setting, a preprocessor flag in each file, or some
       | combination of these. Everyone would have to learn a little
       | Polish, and "Source Code Translator" would be a profession.
        
         | cenamus wrote:
         | You mean excel?
        
           | hiccuphippo wrote:
           | Hah!
           | 
           | Reminds me of the first time I tried Excel in English (might
           | have been Google Spreadsheet) and the searchv function was
           | nowhere to be found, not knowing it was actually called
           | vlookup ("buscarv" in Spanish).
        
         | widdershins wrote:
         | I think if this were the case, we would have quickly moved on
         | from storing source code as text, and begun storing it as ASTs
         | which could be 'viewed' in any localised version of the
         | programming language. This may have had wider benefits than
         | just reading source code in your preferred language.
        
           | zozbot234 wrote:
           | You can serialize ASTs very easily as S-expressions, or
           | slightly fancier versions thereof. That's still "text" and
           | quite easily readable by humans, but somewhat less oriented
           | to direct editing.
        
       | estimator7292 wrote:
       | Funny, I was just thinking the other day that as a C/++
       | programmer, writing TypeScript feels a lot like speaking French
       | where nouns and adjectives and verbs are all in the 'wrong'
       | order. It's a very strange feeling, exactly like learning French
       | as an English speaker
        
       | athulbc wrote:
       | Currently computer programming is done using one's knowledge in
       | mathematical language(or mathematical way of thinking) +
       | knowledge in English. It would be nice to see how replacing the
       | English part with mothertounge work. For me, atleast I can read
       | the documentation with confidence and much ease(I'm not French
       | btw). And may it become an experiment to see how it works for
       | non-English languages. Thanks for the French to starting this. I
       | was once wrote in my blog about programming in my own
       | mothertounge which is Malayalam.
        
       | honeybadger1 wrote:
       | next up, rust in ebonics
        
       | layer8 wrote:
       | Unfortunately it still uses a dot for the decimal point.
        
         | sim7c00 wrote:
         | sacrebleu
        
       | jagged-chisel wrote:
       | I was curious fairly recently if programming languages could
       | support keywords in multiple languages. My mental experiment
       | wanted to have translation resource files, mapping keywords or
       | the concepts they represent (if, then, for, while, func, struct,
       | etc) to a localized human language. You could code in your native
       | language, and so could your international fellows - the file is
       | translated in the editor
       | 
       | It got complicated fast. Now you need a canonical representation
       | for disk, something still text, maybe English is the common
       | denominator? Do variable names get translated? Etc
       | 
       | I would like to see it tried, but I'm not brave enough.
        
         | zozbot234 wrote:
         | You could still use text for raw identifiers (which tends to be
         | very convenient for debugging) but define language-specific
         | alternate mnemonics as part of your language's equivalent of
         | header files. These alternate mnemonics could even just be some
         | specially formatted "doc comments", with the actual text
         | substitution being done by a LSP-like system.
        
         | pseudalopex wrote:
         | Apple developed French and Japanese dialects of AppleScript
         | evidently. And planned a Professional dialect more like other
         | programming languages.[1]
         | 
         | [1] https://news.ycombinator.com/item?id=32742275
        
       | lagniappe wrote:
       | C'est degoutant.
        
       ___________________________________________________________________
       (page generated 2025-10-31 23:01 UTC)