Rouille – Rust Programming, in French

Project and implementation

  • Rouille is a proc-macro that lets you write Rust using French keywords and identifiers via a simple word→word dictionary.
  • It’s explicitly not meant for serious use; the mapping is intentionally naïve and inefficient, and the French is “lenient” and humorous (e.g. compiler jokes, slang).
  • There’s a name clash with an existing minimal synchronous Rust HTTP framework already called “rouille”.

Other localized variants and related projects

  • The repo links to many other “Rust in X language” forks (German, Russian, Spanish, Greek, Slovak, etc.); people also mention Esperanto, Latin, and a German project “Rost”.
  • Several say their versions were hand-written as jokes, not AI-generated, though some suspect newer ones might be.
  • Other examples of localized or joke languages: Baguette# and Chamelle (French OCaml variants), Latin “ferrugo”, French LSE (BASIC-like), localized VBA, AppleScript French/Japanese dialects, non-English PLs (Russian, Chinese, Hindi).

Quality, tone, and translation choices

  • The French dictionary is widely found hilarious, especially vulgar or playful mappings:
    • WTFPL → “license rien à branler”.
    • “merde” / “calisse” / “oups” → panic.
    • “super” for super, playing on a French homograph rather than the intended meaning.
  • Some French speakers dislike or debate particular choices (e.g. translating Option as “PeutÊtre” instead of using “Option”, second-person imperatives, word order like “asynchrone fonction”).
  • Reactions to other language variants are mixed:
    • Russian variant seen by some as funny, by others as lazy “gopnik” stereotyping.
    • Spanish “rústico” is criticized because the README wrongly claims it means “Rust”.
    • Greek is seen as too bland; Slovak version is criticized for omitting diacritics.

Experiences coding in one’s native language

  • Many French speakers report strong discomfort reading code in French; it feels like bad pseudocode or someone “yelling orders”, whereas English feels neutral/technical.
  • Several non-English speakers recount starting with localized variable names (Portuguese, French, Swedish, etc.) in early learning, then switching to English for collaboration, searchability, and consistent terminology.
  • Others note that for native English speakers, code doesn’t really feel like English anyway; keywords have specialized meanings, and PLs are their own register.

Localization, tooling, and thought experiments

  • People imagine a world where programming languages are fully localized: separate compilers per language or a single AST-based representation with localized views in the editor.
  • Practical concerns arise: canonical on-disk format, whether identifiers are translated, increased complexity, and parallels to localized Excel/Sheets function names that hinder portability.
  • Some propose IDE/LSP-level “mnemonics” or doc-comment-based translation layers as a more realistic approach than fully localized core languages.