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
Optionas “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.