Ve svém okolí už naštěstí nevím o nikom, kdo by psal kód v češtině, a to je jedině dobře. Při vývoji se ale člověk nesetkává jen s kódem a “bohužel” toho čte nebo píše daleko víc, například:
- Commit message do VCS
- Komentáře na GitHubu, BitBucketu nebo jiném code review toolu
- Tickety v bug tracking systému
- User stories / lístečky na tabuli
- Doc commenty, generovaná dokumentace
- Specifikace
- Wiki atd.
Každá z těchto věcí jde potenciálně psát v češtině nebo v angličtině, a pokud jste čistě lokální tým bez větších šancí na brzkou mezinárodní expanzi, má čeština své výhody a je potřeba se rozhodnout, kde udělat ten nepříjemný přechod.
Zatím na všech místních projektech, co jsem byl, se zhruba dodržovalo následující:
- Kód v angličtině
- Komentáře a případná dokumentace v angličtině
- Commit message v angličtině
- Všechno ostatní v češtině
Ono to má svou logiku – vše, co je blízko kódu, je anglicky, a “nedůležité” věci okolo se kvůli snadnější srozumitelnosti a řadě dalších důvodů píší česky. Trochu nepříjemné ale je, že se tyto věci prolínají – např. bug tracking systém v češtině zobrazuje commit message v angličtině, diskuze pod anglicky psaný commitem probíhá v češtině apod.
Protože jsou častým účastníkem oněch “třecích ploch” právě commity, přemýšlel jsem, jestli nezačít psát commit zprávy česky a anglicky nechat jen kód. Opravdu, jaký má smysl psát popisy commitů v angličtině, když veškerá další komunikace okolo projektu probíhá v češtině? Není naopak vynucovaná angličtina určitým klackem pod nohy vývojářům? Přeci jen, dávat dohromady anglické věty už je něco jiného než psát v angličtině kód.
Zatím jsem se k psaní commit zpráv česky neodhodlal, stále mi to připadá svým způsobem divné, ale trochu to ve mně hlodá pokaždé, když někde vidím mix češtiny a angličtiny.
Kde děláte čáru mezi češtinou a angličtinou vy?
Jako lokální firma jsme také řešili podobné jazykové problémy. Přecházeli jsme na novou vývojovou platformu, ale limitováni jsme byli stávající databází, která měla struktury v češtině (bez diakritiky ;). Nakonec jsme se rozhodli pro kombinované řešení i v kódu. Nádstavba persistentní vrstvy je v angličtině. Aplikační vrstvy od obchodní logiky výše jsou kvůli srozumitelnosti v češtině. Důvodem je i soulad s dlouhodobě udržovanou dokumentací (případy užití, doménové slovníky), kterou máme v češtině. Odpadla nám potřeba konvertovat mezi ekvivalenty z češtiny do angličtiny, kterou zřejmě ve Tvém kombinovaném řešení musíš (intuitivně) provádět.
Pokud je projekt nadnárodní nebo některý ze stakeholderů nemluví česky, pak bych čekal, že celý projekt pojede v angličtině. Jinak bude pro dotyčného některá část projektové dokumentace nesrozumitelná. Nebo ji bude potřeba duplikovat v obou jazycích.
Chtělo by se tedy říci, že projekt buď jede celý v češtině nebo celý v angličtině. Každé kombinované řešení je ústupkem jednomu jazyku. Ale z jakých důvodů? Měřítkem by měla být efektivita, kvalita a rychlost práce týmu. Dovedu si představit, že některý tým může být produktivnější, pokud pojede celý v češtině. Ale za tento názor mi dá Aleš Roubíček co proto ;-)
Mentální přepínání mezi češtinou a angličtinou je sice nepříjemné, ale psát kvůli tomu kód dobrovolně v češtině IMO není vůbec dobrý nápad. Stejně je to spíš “čeština” než čeština (klíčová slova jsou anglicky, metody v používaných knihovnách jsou anglicky atd.), a navíc si tím člověk do budoucna v podstatě uzavírá možnost mít členy týmu z jiné země. Tickety, commit zprávy apod. se dají začít psát anglicky ze dne na den, ale česky psaný kód je velký problém.
Pokud máte kód prolezlý češtinou z historických důvodů, tak tvůj pohled chápu, jen jsem chtěl upozornit, že u nového projektu bych “čistě český projekt” v žádném případě nedoporučil.
Řeším to zhruba tak, jak jsi popsal v článku. Commit messages bych nikdy nepsal česky, nehodí se to. Angličtina se mi zdá stručnější a jasnější. Lépe se s ní popisují technické věci.
Zbytek je buď česky nebo taky anglicky, záleží na okolnostech. Problém s “mentálním přepínáním” mezi češtinou a angličtinou opravdu nechápu. Je nutné rozumět oběma jazykům a nepřekládat slovíčka z jednoho jazyka do druhého.
Záleží, jak dobře anglicky umíš, a u větších projektů s větším týmem se celkem spolehlivě najdou lidi, pro které je angličtina mimo kód problémem nebo přinejmenším nepohodlností. I na našem projektu s Jirkou Pénzešem, kde ani jeden nemáme s angličtinou zásadnější problém, je trochu divné, že mezi česky psanými tickety, maily, Yammerem, wiki apod. plují anglicky psané commit message. Z čistě komunikačního pohledu opravdu nevidím důvod, proč psát commit zprávy v angličtině, ale je fakt, že to je tak zažité, že i my to nakonec používáme.
V týmu na projektu aktuálně píšeme téměř vše česky – kromě kódu. I dokumentaci v kódu píšeme česky, přičemž tu a commit messages píšeme bez diakritiky. Těžko říci, jestli je to dobře nebo špatně, ale týmu to vyhovuje, nikdo není znevýhodněn (stačí si být trochu v angličtině nejistý a už je to komplikace způsobujííc bolení hlavy a zpomalující tak základní proces jako commitování) a jestli se někdy k aplikaci dostane zahraniční vývojář, tak holt bude muset použít Google Translator :)
IMHO
Já commit zprávy používám podobně jako komentáře. Koukám do kódu, kdo tam sakra proč právě tohle dal, podívám se na blame a z commit zprávy se to často dozvím.
Takže commit zprávy by podle mě měly být ve stejném jazyce jako komentáře. A ty jsou součástí kódu, takže by měly být ve stejném jazyce jako kód. A ten (alespoň ve většině programovacích jazyků) používá anglická klíčová slova, takže není na výběr.