ProgramAtion in Franglais William Bartlett @ w.bartlett@zenika.fr Mastodon Github LINKEDIN punkstarman î± William Bartlett ProgramAtion in Franglais 1 / 41
A presentation at BreizhCamp 2025 in June 2025 in Rennes, France by William Bartlett
ProgramAtion in Franglais William Bartlett @ w.bartlett@zenika.fr Mastodon Github LINKEDIN punkstarman î± William Bartlett ProgramAtion in Franglais 1 / 41
Wilkommen - Bienvenue - Welcome Mon nom est William Je travaille pour Zenika en Nantes Jâai Ă©tĂ© codant depuis que jâĂ©tais un pipi petit garçon Je suis / et arrivai en William Bartlett il y a ⌠30 ans ProgramAtion in Franglais 2 / 41
What language are we coding this project in? William Bartlett ProgramAtion in Franglais 3 / 41
What language are we coding this project in? English, duh! William Bartlett ProgramAtion in Franglais 3 / 41
What language are we coding this project in? English, duh! @Authentification public class ModelCustomer { public int getNbListsOrders() { } public List<Adress> getDeliveriesAdresses() { } public Middle getMiddle() { } } public enum Middle { URBAIN, RURAL; } William Bartlett ProgramAtion in Franglais 3 / 41
Plan Why English isnât the obvious answer The solution Tips and tricks William Bartlett ProgramAtion in Franglais 4 / 41
Why English isnât the obvious answer Section 1 Why English isnât the obvious answer William Bartlett ProgramAtion in Franglais 5 / 41
Why English isnât the obvious answer Exclamation-Triangle Lâusage correct est toujours relatif au contexte. Les langues changent, nâen dĂ©plaise aux immortels. (descriptivisme > prescriptivisme) William Bartlett ProgramAtion in Franglais 6 / 41
Why English isnât the obvious answer Exclamation-Triangle Lâusage correct est toujours relatif au contexte. Les langues changent, nâen dĂ©plaise aux immortels. (descriptivisme > prescriptivisme) Exclamation-Triangle Les usages sont citĂ©s dans le but dâĂ©tudier les facteurs qui y ont contribuĂ© et les consĂ©quences qui en dĂ©coulent. William Bartlett ProgramAtion in Franglais 6 / 41
Why English isnât the obvious answer Letâs play GitHubGuessr! class Passage { constructor({ id, moduleId, userId, createdAt, updatedAt, ,â terminatedAt }) { } } William Bartlett ProgramAtion in Franglais 7 / 41
Why English isnât the obvious answer Letâs play GitHubGuessr! class Passage { constructor({ id, moduleId, userId, createdAt, updatedAt, ,â terminatedAt }) { } } class QcmCorrectionResponse { constructor({ status, feedback, solution }) { } } William Bartlett ProgramAtion in Franglais 7 / 41
Why English isnât the obvious answer Letâs play GitHubGuessr! class Passage { constructor({ id, moduleId, userId, createdAt, updatedAt, ,â terminatedAt }) { } } class QcmCorrectionResponse { constructor({ status, feedback, solution }) { } } Pix William Bartlett ProgramAtion in Franglais 7 / 41
Why English isnât the obvious answer Confusion class Thematic { } William Bartlett ProgramAtion in Franglais 8 / 41
Why English isnât the obvious answer Confusion class Thematic { } enum Middle { TERRESTRIAL, AQUATIC, AIR; } William Bartlett ProgramAtion in Franglais 8 / 41
Why English isnât the obvious answer Confusion class Thematic { } enum Middle { TERRESTRIAL, AQUATIC, AIR; } class BikeLocationService { public Trip takeBike(BikeId id) { } public void returnBike(BikeId id) { } } William Bartlett ProgramAtion in Franglais 8 / 41
Why English isnât the obvious answer Confusion class Thematic { } enum Middle { TERRESTRIAL, AQUATIC, AIR; } class BikeLocationService { public Trip takeBike(BikeId id) { } public void returnBike(BikeId id) { } } class DocumentPlan { private List<Chapter> chapters; } William Bartlett ProgramAtion in Franglais 8 / 41
Why English isnât the obvious answer Confusion order word SONAR_FAB_URL = âhttps://sonar.fab.internalâ SONAR_URL_FAB = âhttps://sonar.fab.internalâ William Bartlett ProgramAtion in Franglais 9 / 41
Why English isnât the obvious answer Confusion order word SONAR_FAB_URL = âhttps://sonar.fab.internalâ SONAR_URL_FAB = âhttps://sonar.fab.internalâ File Native Languageâs Effect on Java Compiler Errors Plus dâerreurs « unknown identifier » rencontrĂ©es par les locuteur·ices non-anglophones. William Bartlett ProgramAtion in Franglais 9 / 41
Why English isnât the obvious answer William Bartlett ProgramAtion in Franglais 10 / 41
Why English isnât the obvious answer Rassurez-vous Les devs anglophones natifs font des erreurs aussi. I set is overloaded I get is not safe (âget moneyâ) I if ⊠else if ⊠else vs. if ⊠or if ⊠otherwise I Clonable not Cloneable I Closable not Closeable William Bartlett ProgramAtion in Franglais 11 / 41
Why English isnât the obvious answer Anglicismes en français ? fr en footing jogging jogging tracksuit pressing dry cleaners brushing blow-dry shampooing/shampoing shampoo (from Hindi champo) relooking makover William Bartlett ProgramAtion in Franglais 12 / 41
Why English isnât the obvious answer Anglicismes en français ? Linguisticae Youtube Ces anglicismes qui nâen sont pas Youtube Ces anglicismes en -ing qui nâexistent quâen français Youtube Encore des faux anglicismes Paul Taylor Youtube Anglicisms in French William Bartlett ProgramAtion in Franglais 13 / 41
Why English isnât the obvious answer Anglicismes en français ? BOOK Le français va trĂšs bien, merci â Les linguistes attĂ©rĂ©es 3. Le français nâest pas « envahi » par lâanglais I exemples : le verbe spoiler, le nom masculin weekend (« bon weekâ ») I français et anglais sont des langues indo-europĂ©ennes I français et anglais ont des histoires entrelacĂ©es William Bartlett ProgramAtion in Franglais 14 / 41
Why English isnât the obvious answer Anglica lingua dominans est ⊠sed non semper ita erat William Bartlett ProgramAtion in Franglais 15 / 41
Why English isnât the obvious answer Anglica lingua dominans est ⊠sed non semper ita erat English hasnât always been dominant. It isnât dominant in many parts of the world. The Latin alphabet isnât dominant. The SOV word order is used by 40.9% of languages. SVO by 35.5%. [WALS] William Bartlett ProgramAtion in Franglais 15 / 41
Why English isnât the obvious answer Coding the world File Coding is for everyone - as long as you speak English â Gretchen McCulloch ( @gretchenmcc.bsky.social) î± William Bartlett ProgramAtion in Franglais 16 / 41
Why English isnât the obvious answer Coding the world File Coding is for everyone - as long as you speak English â Gretchen McCulloch ( @gretchenmcc.bsky.social) î± What if websites were coded in Russian? <Đ·Đ°ĐłĐŸĐ»ĐŸĐČĐŸĐș> William Bartlett ProgramAtion in Franglais 16 / 41
Why English isnât the obvious answer Coding the world Scratch File Learning to Code in Localized Programming Languages William Bartlett ProgramAtion in Franglais 17 / 41
Why English isnât the obvious answer Coding the world Excel is the most widely used programming language. Itâs functional and localized. en fr TRUE VRAI IF SI SUM SOMME VLOOKUP RECHERCHEV William Bartlett ProgramAtion in Franglais 18 / 41
Why English isnât the obvious answer Coding the world Hedy File Design, implementation and evaluation of the Hedy programming language William Bartlett ProgramAtion in Franglais 19 / 41
Why English isnât the obvious answer Coding the world Hedy File Design, implementation and evaluation of the Hedy programming language print Hello world! affiche Bonjour le monde! пДŃаŃаŃŃ ĐŃĐžĐČĐ”Ń ĐŒĐžŃ! ăżăă Hello world! presu Hello world! William Bartlett ProgramAtion in Franglais 19 / 41
Why English isnât the obvious answer Esperanto? Voir vidĂ©os sur Linguisticae William Bartlett ProgramAtion in Franglais 20 / 41
Why English isnât the obvious answer Rouille? Rust programming in French rouille::rouille! { utilisons std::collections::Dictionnaire comme Dico; convention ClĂ©Valeur { fonction Ă©crire(&soi, clĂ©: ChaĂźne, valeur: ChaĂźne); fonction lire(&soi, clĂ©: ChaĂźne) -> PeutĂtre<&ChaĂźne>; } ,â statique mutable DICTIONNAIRE: PeutĂtre<Dico<ChaĂźne, ChaĂźne>> = Rien; structure ConcrĂšte; rĂ©alisation ClĂ©Valeur pour ConcrĂšte {} } William Bartlett ProgramAtion in Franglais 21 / 41
Why English isnât the obvious answer Dette technique I DifficultĂ©s Ă lâembarquement (surtout dâun dâanglophone) I CrĂ©ation dâun pidgin William Bartlett ProgramAtion in Franglais 22 / 41
Why English isnât the obvious answer Langage omniprĂ©sent Un langage commun entre experts mĂ©tier et informatique. William Bartlett ProgramAtion in Franglais 23 / 41
Why English isnât the obvious answer Langage omniprĂ©sent Un langage commun entre experts mĂ©tier et informatique. Comment le langage peut-il ĂȘtre commun si le mĂ©tier ne parle pas anglais ? William Bartlett ProgramAtion in Franglais 23 / 41
Why English isnât the obvious answer Langage omniprĂ©sent Un langage commun entre experts mĂ©tier et informatique. Comment le langage peut-il ĂȘtre commun si le mĂ©tier ne parle pas anglais ? Domain experts object to terms or structures that are awkward or inadequate to convey domain understanding, while developers watch for ambiguity or inconsistency that will trip up design. â 2003. Eric Evans. Domain-Driven Design William Bartlett ProgramAtion in Franglais 23 / 41
The solution Section 2 The solution William Bartlett ProgramAtion in Franglais 24 / 41
The solution La solution William Bartlett ProgramAtion in Franglais 25 / 41
The solution Les solutions William Bartlett ProgramAtion in Franglais 25 / 41
The solution Les solutions Business in English/international â code in English William Bartlett ProgramAtion in Franglais 25 / 41
The solution Les solutions Business in English/international â code in English MĂ©tier en français â code en français franglais William Bartlett ProgramAtion in Franglais 25 / 41
The solution Everything in English William Bartlett ProgramAtion in Franglais 26 / 41
The solution Everything in English Everything? William Bartlett ProgramAtion in Franglais 26 / 41
The solution Everything in English Everything? Everything! William Bartlett ProgramAtion in Franglais 26 / 41
The solution Everything in English @Entity public class TradeVariableCapitalInvestmentCompany { Duration getFrequency() { } Counterparty getCounterparty() { } double getRate() { } Motto getMotto() { } List<Event> getPaymentsEvents() { } } William Bartlett ProgramAtion in Franglais 27 / 41
The solution Everything in English @Entity public class SicavTrade { Duration getFrequency() { } Counterparty getCounterparty() { } double getRate() { } Currency getCurrency() { } List<Event> getPaymentEvents() { } } William Bartlett ProgramAtion in Franglais 28 / 41
The solution Rules of Thumb I I I I English word order (RaceHorse vs HorseRace) Borrow specific terms (SICAV, dĂ©partement âŠ) Only pluralize last word (getAuthorNames not getAuthorsNames) Use international English I postCode not zipCode I color not colour I Use count instead of nb (Use getAuthorCount not getNbAuthors) William Bartlett ProgramAtion in Franglais 29 / 41
The solution Gotchas False friends I Agenda â Agenda I Eventuelle â Eventual I Valider â Validate Spelling differences I Authentification = Authentication I Adresse = Address I Plateforme = Platform I Persistance = Persistence I Exemple = Example William Bartlett ProgramAtion in Franglais 30 / 41
The solution Coder en franglais Termes mĂ©tier en francais I Pas dâaccents, malgrĂ© JLS SE 8 § 3.8 - Identifiers tant que WINDOWS ne soit pas rentrĂ© dans le rang William Bartlett ProgramAtion in Franglais 31 / 41
The solution Coder en franglais Termes mĂ©tier en francais I Pas dâaccents, malgrĂ© JLS SE 8 § 3.8 - Identifiers tant que WINDOWS ne soit pas rentrĂ© dans le rang Le reste en anglais I mots-clĂ©s I conventions (get, set, update, delete âŠ) I patrons (Bean, Strategy, Factory ⊠sauf si vous savez les traduire) William Bartlett ProgramAtion in Franglais 31 / 41
The solution Coder en franglais Termes mĂ©tier en francais I Pas dâaccents, malgrĂ© JLS SE 8 § 3.8 - Identifiers tant que WINDOWS ne soit pas rentrĂ© dans le rang Le reste en anglais I mots-clĂ©s I conventions (get, set, update, delete âŠ) I patrons (Bean, Strategy, Factory ⊠sauf si vous savez les traduire) Alternance codique (code switching) William Bartlett ProgramAtion in Franglais 31 / 41
The solution Coder en franglais @Entity public class PlacementSICAV { Duration getPeriodicite() { } Contrepartie getContrepartie() { } double getTaux() { } Devise getDevise() { } ConventionDeBase getConvention() { } List<Evenement> getEvenementsDePaiements() { } } William Bartlett ProgramAtion in Franglais 32 / 41
Tips and tricks Section 3 Tips and tricks William Bartlett ProgramAtion in Franglais 33 / 41
Tips and tricks Trucs et astuces I Faire avec ce quâon a I Cultiver le langage I Documenter les conventions (ADR) William Bartlett ProgramAtion in Franglais 34 / 41
Tips and tricks Refactoriser progressivement @Entity public class SicavTrade { Duration periodicity; Duration getPeriodicity() { return periodicity; } } William Bartlett ProgramAtion in Franglais 35 / 41
Tips and tricks Refactoriser progressivement @Entity public class SicavTrade { Duration frequency; @Deprecated(forRemoval=true) Duration getPeriodicity() { return frequency; } Duration getFrequency() { return frequency; } } William Bartlett ProgramAtion in Franglais 36 / 41
Tips and tricks Refactoriser progressivement @Entity public class SicavTrade { Duration frequency; Duration getFrequency() { return frequency; } } William Bartlett ProgramAtion in Franglais 37 / 41
Tips and tricks So, you didnât listen to me and you are translating Put the translation in the documentation /** Placement SICAV / @Entity public class SicavTrade { /* PĂ©riodicitĂ© / Duration getFrequency() { } /* Contrepartie / Counterparty getCounterparty() { } /* Taux */ double getRate() { } } William Bartlett ProgramAtion in Franglais 38 / 41
Tips and tricks So, you didnât listen to me and you are translating Look for good translations I Linguee I Wikipedia, Wiktionary/Wiktionnaire I Domain glossaries I Mozilla I Finance I Read books about the domain I Ask domain experts I Listen to podcasts about linguistics (Lingisticae, Parler comme jamais, Vox, Lingthusiasm) William Bartlett ProgramAtion in Franglais 39 / 41
Conclusion Section 4 Conclusion William Bartlett ProgramAtion in Franglais 40 / 41
Conclusion Conclusion I Naming is hard. English is hard. I Business in English â code in English I MĂ©tier en français â code en franglais I termes mĂ©tier en francais I termes « techniques » en anglais William Bartlett ProgramAtion in Franglais 41 / 41
Conclusion Conclusion I Naming is hard. English is hard. I Business in English â code in English I MĂ©tier en français â code en franglais I termes mĂ©tier en francais I termes « techniques » en anglais Future work I Explorer plus la littĂ©rature scientifique I Regarder dâautres langues William Bartlett ProgramAtion in Franglais 41 / 41