Rouille – Rust Programming, in French
194 points
8 days ago
| 30 comments
| github.com
| HN
fouronnes3
11 hours ago
[-]
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.
reply
resonious
10 hours ago
[-]
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.

reply
layer8
5 hours ago
[-]
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.
reply
bionsystem
7 hours ago
[-]
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.
reply
Someone
5 hours ago
[-]
> "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.

reply
capitainenemo
4 hours ago
[-]
Wouldn't that be LISMOI.md ? [edit] nope - apparently LISEZMOI.md
reply
Someone
4 hours ago
[-]
Possibly. My French isn’t that good.
reply
capitainenemo
4 hours ago
[-]
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.

reply
bondant
3 hours ago
[-]
It would be LISEZMOI.md
reply
brabel
2 hours ago
[-]
Unless When

I guess you will not like Lisp then (;

http://clhs.lisp.se/Body/m_when_.htm

reply
galangalalgol
7 hours ago
[-]
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.

reply
12_throw_away
2 hours ago
[-]
> 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.

reply
zozbot234
7 hours ago
[-]
> 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.

reply
mr_toad
6 hours ago
[-]
> 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.

reply
TofuLover
7 hours ago
[-]
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.
reply
12_throw_away
2 hours ago
[-]
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

reply
KineticLensman
8 hours ago
[-]
(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.
reply
didgeoridoo
7 hours ago
[-]
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.
reply
KineticLensman
7 hours ago
[-]
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"
reply
lordnacho
9 hours ago
[-]
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.

reply
embedding-shape
6 hours ago
[-]
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 "åäö" 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.

reply
SwiftyBug
8 hours ago
[-]
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?
reply
goku12
6 hours ago
[-]
> 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.

reply
brabel
1 hour ago
[-]
> 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 verificação (print “pessoa é 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 verificação (imprime “pessoa é maior de idade”))
reply
goku12
1 hour ago
[-]
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?
reply
brabel
27 minutes ago
[-]
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.

reply
williamdclt
8 hours ago
[-]
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

reply
fouronnes3
8 hours ago
[-]
Yes we do this while learning programming. Then it quickly becomes a sign of being a novice programmer that we look down on.
reply
nxor
7 hours ago
[-]
Should it be looked down on?
reply
hiccuphippo
6 hours ago
[-]
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 omisión", 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 omisión" 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.

reply
capitainenemo
4 hours ago
[-]
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 omisión, but maybe just put an underscore. por_omisión
reply
SilasX
3 hours ago
[-]
For another example of this, there was BritCSS someone made that lets you use British spellings in CSS:

https://github.com/DeclanChidlow/BritCSS

reply
layer8
5 hours ago
[-]
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.
reply
vor0nwe
9 hours ago
[-]
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`...

reply
Tade0
5 hours ago
[-]
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.

reply
ddkto
5 hours ago
[-]
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/

reply
Tade0
48 minutes ago
[-]
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.

reply
TimorousBestie
5 hours ago
[-]
L’ordinateur really should have caught on, it’s a pity. A beautiful word.
reply
SiempreViernes
4 hours ago
[-]
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.
reply
_notreallyme_
10 hours ago
[-]
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.

reply
gwbas1c
6 hours ago
[-]
> 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.

reply
LudwigNagasena
3 hours ago
[-]
"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.
reply
teunispeters
4 hours ago
[-]
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!
reply
graemep
7 hours ago
[-]
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.

reply
silisili
11 hours ago
[-]
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 .

reply
0xb0565e486
4 hours ago
[-]
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.

reply
lgeorget
9 hours ago
[-]
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.

reply
9dev
8 hours ago
[-]
For real though! I could get used to &ipse.
reply
agumonkey
8 hours ago
[-]
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
reply
CoastalCoder
5 hours ago
[-]
I'm curious if there was a similar dynamic when German stopped being the standard language for scientific research.
reply
nkrisc
9 hours ago
[-]
The words may be English but it doesn’t feel like English at all because it’s but structured like natural language.
reply
wiether
11 hours ago
[-]
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.

reply
kubb
11 hours ago
[-]
It looks more elegant than English.
reply
croisillon
11 hours ago
[-]
i thought the verbs in English-programming were meant to be infinitive and not imperative?
reply
mr_toad
5 hours ago
[-]
Most programmers probably don’t even know what that means.
reply
trallnag
7 hours ago
[-]
How's Microsoft Excel for you?
reply
fouronnes3
5 hours ago
[-]
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.
reply
wiether
11 hours ago
[-]
The complete dictionary is here: https://github.com/bnjbvr/rouille/blob/principale/rouille_co...

I just can't stop laughing at the "génial" => "super" https://github.com/bnjbvr/rouille/blob/principale/rouille_co...

reply
melicerte
6 hours ago
[-]
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...

reply
nartho
4 hours ago
[-]
I'm partial to crate -> cagette
reply
lkuty
9 hours ago
[-]
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.
reply
philistine
3 hours ago
[-]
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.
reply
PoignardAzur
6 hours ago
[-]
"PeutÊtre" => "Option" is the clearest evidence this is shitposting, because Option is also a French word.

But the best one is "merde" | "calisse" | "oups" => "panic"

reply
masom
5 hours ago
[-]
lol, the author (or whoever translated) doesn't know that "super" doesn't mean "génial" in the context it would be used in.

"super" is also a Latin word that's valid French.

> Au-dessus de, exprimant une supériorité dans la qualité

https://www.larousse.fr/dictionnaires/francais/super-/75409

reply
fouronnes3
5 hours ago
[-]
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 "vérifie les buches" for "check the logs".
reply
wiether
5 hours ago
[-]
Yeah that was my understanding and why I found it so funny!
reply
layer8
5 hours ago
[-]
It’s intentional and meant as a joke.
reply
zozbot234
5 hours ago
[-]
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.
reply
SilasX
3 hours ago
[-]
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

reply
SilasX
3 hours ago
[-]
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 "arrêt" 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".)

reply
wiether
1 hour ago
[-]
I don't understand any of this.

Probably because of their proximity with the USA, the french-speaking community in Québec is far more attached to using French than actual French people. That's why in France we use "Stop" and not "Arrêt".

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.

reply
zozbot234
6 hours ago
[-]
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 Résultat<...> when you can write just Résu? Why PeutÊtre and not Ptêt, very common in quick language, e.g. for texting or chatting?
reply
michidk
12 hours ago
[-]
fk lese(&selbst, schlsl: Zeichenkette) -> Ergebnis<Möglichkeit<&Zeichenkette>, Zeichenkette> { wenn lass Etwas(wöbu) = gefährlich { WÖRTERBUCH.als_ref() } { Gut(wöbu.hole(&schlsl)) } anderenfalls { Fehler("Holt das Wörterbuch".hinein()) } }

https://github.com/michidk/rost

reply
croemer
10 hours ago
[-]
I don't like the non-Germanic ref here in als_ref is not Germanic enough. als_ver (from Verweis) would be nicer.
reply
9dev
8 hours ago
[-]
I read it as als_referenz, which arguably makes sense!
reply
croemer
7 hours ago
[-]
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.
reply
ahartmetz
8 hours ago
[-]
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)
reply
fransje26
8 hours ago
[-]
Almost perfect. I'm missing the Schwabacher typeface rendering.
reply
fainpul
12 hours ago
[-]
Indent with two spaces for code formatting.
reply
yohbho
10 hours ago
[-]

  fk lese(&selbst, schlsl: Zeichenkette) -> Ergebnis<Möglichkeit<&Zeichenkette>, Zeichenkette> {
            wenn lass Etwas(wöbu) = gefährlich { WÖRTERBUCH.als_ref() } {
                Gut(wöbu.hole(&schlsl))
            } anderenfalls {
                Fehler("Holt das Wörterbuch".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.

reply
ahartmetz
8 hours ago
[-]
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.

reply
b3orn
4 hours ago
[-]
I would use "sei" instead of "lass" for "let" to be more in line with notation in mathematical proofs.
reply
_ache_
12 hours ago
[-]
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...

reply
el_pollo_diablo
12 hours ago
[-]
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/

reply
croemer
10 hours ago
[-]
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

reply
gnarlouse
15 hours ago
[-]
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.

reply
asgerhb
7 hours ago
[-]
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.
reply
widdershins
3 hours ago
[-]
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.
reply
zozbot234
3 hours ago
[-]
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.
reply
cenamus
6 hours ago
[-]
You mean excel?
reply
hiccuphippo
5 hours ago
[-]
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).

reply
layer8
4 hours ago
[-]
Unfortunately it still uses a dot for the decimal point.
reply
sim7c00
1 hour ago
[-]
sacrebleu
reply
jagged-chisel
4 hours ago
[-]
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.

reply
zozbot234
4 hours ago
[-]
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.
reply
pseudalopex
4 hours ago
[-]
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

reply
24f0bacc7c72d0a
12 hours ago
[-]
Name conflict with the OG rust synchronous web framework: https://github.com/tomaka/rouille
reply
haunter
9 hours ago
[-]
Related: Non-English-based programming languages https://en.wikipedia.org/wiki/Non-English-based_programming_... (not really up to date though)
reply
athulbc
2 hours ago
[-]
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.
reply
lower
12 hours ago
[-]
reply
estimator7292
5 hours ago
[-]
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
reply
benob
11 hours ago
[-]
This is very lenient French: "fetchez le dico"
reply
moezd
11 hours ago
[-]
This is hilarious, thank you for your effort good sir, this is what I pay the internet for! :)
reply
joshdavham
15 hours ago
[-]
Is the compiler now gonna scream at me for using the wrong gender?
reply
makeitdouble
15 hours ago
[-]
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())

reply
posix86
9 hours ago
[-]
Missing!! They should've translated `let` to `le` and `la`.
reply
jacknews
14 hours ago
[-]
lol, it'll just say 'Noh!' and then ignore any further input. Especially if you forget the --bonjour flag.
reply
ttoinou
13 hours ago
[-]
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
reply
athulbc
5 hours ago
[-]
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.
reply
grishka
14 hours ago
[-]
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.
reply
fainpul
12 hours ago
[-]
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

reply
fainpul
2 hours ago
[-]
BTW, here's the stream to go along with that:

https://www.youtube.com/watch?v=f4EOMbmIqqw

reply
grishka
2 hours ago
[-]
This is amazing.
reply
dullcrisp
9 hours ago
[-]
This is excellent.
reply
johncolanduoni
13 hours ago
[-]
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).
reply
yoz-y
11 hours ago
[-]
Slovak one does not use diacritics so it’s quite hard to read.
reply
listeria
4 hours ago
[-]
I was immediately put off by the Spanish version when I saw it was called "rústico", which does not translate to rust at all, it means rustic. The Spanish word for rust would be "óxido".
reply
zozbot234
4 hours ago
[-]
"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 "Rústico" as a name for a programming language.
reply
listeria
3 hours ago
[-]
That's all well and good, except the README clearly states:

> rústico (Spanish for Rust)

which is plain wrong.

reply
mrugge
13 hours ago
[-]
I thought the Russian version was pretty funny. Thanks for calling it out.
reply
konart
13 hours ago
[-]
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.

reply
ronin-red
8 hours ago
[-]
That reminds me of LSE, a French BASIC-like programming language.

https://en.wikipedia.org/wiki/LSE_(programming_language)

reply
aprilfoo
9 hours ago
[-]
Fantastique !

Let's create "Piaf" to see la vie en rose, the French à la https://codewithrockstar.com/.

reply
lowleveldreams
7 hours ago
[-]
It's interesting how coding in your own language can make the logic feel completely different.
reply
the__alchemist
16 hours ago
[-]
There is also a Rust minimal HTTP server by this name. (Incidentally, one of the few that isn't Async.)
reply
lagniappe
3 hours ago
[-]
C'est dégoûtant.
reply
d--b
13 hours ago
[-]
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.

reply
ahartmetz
8 hours ago
[-]
"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.

reply
rossant
12 hours ago
[-]
But is it more vulgar than the English version? Deep question.
reply
sweca
10 hours ago
[-]
hahaha j'adore que le mot québécois "calisse" est inclus
reply
worldsavior
8 hours ago
[-]
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.
reply
mr_toad
5 hours ago
[-]
Whenever I try speaking French to them they stare at me in horror and immediately switch to English.
reply
zukzuk
7 hours ago
[-]
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.
reply
nxor
7 hours ago
[-]
What's wrong with that? You want more Anglomania?
reply
userbinator
14 hours ago
[-]
Be sure to look at the "other languages" section; and then wonder whether all of it was generated by AI.
reply
jeroenhd
6 hours ago
[-]
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.

reply
vortegne
8 hours ago
[-]
The Russian version seems to be handcrafted with humor
reply
OccamsMirror
13 hours ago
[-]
It definitely was.
reply
Lukas_Skywalker
12 hours ago
[-]
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.

reply
jeroenhd
6 hours ago
[-]
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.

reply
elAhmo
8 hours ago
[-]
L'Horrible
reply
jacknews
15 hours ago
[-]
This is fun. My son is learning esperanto, is there a version for that, maybe a weekend projekto for him.
reply
gpm
14 hours ago
[-]
reply
honeybadger1
5 hours ago
[-]
next up, rust in ebonics
reply