Proč psát programy česky?
Krátké zamyšlení pocházející z jedné diskuse o tom, v jakém jazyce (nikoli programovacím) psát zdrojové kódy.
… já zase jednou četl a upravoval zdroják v italštině, neříkám, že to bylo úplně triviální, ale dalo se to (něco člověk odhadne, něco najde ve slovníku). A taky jsem viděl programy psané českou programátorskou angličtinou a byla to dost hrůza a utrpení – gramatické chyby a spelování jsou to nejmenší, víc dají zabrat posunuté významy a neexistující slova (znějí anglicky, ale nikdo jiný než autor jim nerozumí)… člověk pak aby měl v hlavě čtyři slovníky:
- oficiální české odborné termíny – tak to bude lokalizované např. pro zákazníky v GUI programu nebo na webu.
- slang – jak se o tom mluví třeba v kuchyňce nebo v mailech mezi vývojáři
- zkomolená angličtina – protože někdo nařídil, že zdrojáky budou anglicky, tak se tedy píší „anglicky“ – na oficiální překlad se ale čekat nemůže, tak si to každý pojmenuje, jak uzná za vhodné
- oficiální anglický překlad – anglická lokalizace termínů od zadavatele – která přijde pár dní před nasazením a dávno po tom, co ty „anglicky“ psané zdrojáky musely být napsány.
Tak se pak nediv, že toho mám někdy dost a svoje programy píšu česky :-)
Obecně se má za to, že každý programátor umí anglicky – jinak by přece nerozuměl dokumentaci, tutoriálům a vůbec by nebyl schopný programovat. Jenže jedna věc je, mít programátorskou slovní zásobu (všechny ty technické pojmy) a druhá věc je ovládat jazyk byznysu – oboru, pro který právě vyvíjím.
Pokud nařídíte, že tým má psát zdrojový kód v angličtině, musíte zajistit, že bude k dispozici kompletní terminologický slovník. A to úplně na začátku, ještě před detailní analýzou, aby všichni mluvili stejnou řečí a nedocházelo k nedorozuměním. Pokud se aplikace předá lidem z byznysu k lokalizaci do angličtiny, až když je hotová, je už pozdě – předtím totiž bylo potřeba napsat zdrojáky v angličtině – jenže kde vzít ty anglické termíny, když se lokalizace dělá až na závěr? Ti svědomitější si budou slovíčka hledat na slovnik.seznam.cz (nedělejte si moc velké naděje, že by použili nějaký odbornější zdroj) a všichni ostatní si tam vymyslí nějaké slovo, které vypadá anglicky, aby vyhověli konvencím.
Víte třeba jaký je rozdíl mezi calendar a calender?
Pravidla jsou splněna a zdroják působí dojmem, že je anglicky… ale praktický výsledek? Zmatek a nedoruzumění. Vedle češtiny, angličtiny a slangu vám přibyl čtvrtý jazyk, kterému se musíte naučit – zkomolená programátorská angličtina. Pokud tedy nejste schopní dotáhnout věc do konce, nechte raději vývojáře psát jejich rodným jazykem.
Když přijde nováček do týmu, musí se přizpůsobit a přijmout konvence. Co když ale rozhodovat můžete? Výhody a nevýhody jsou na obou stranách a dilema si musíte vyřešit sami.
- Pokud si brousíte zuby na to, že ten software jednou prodáte nějaké americké firmě za těžké prachy, s česky psaným zdrojovým kódem byste asi moc neuspěli.
- Rodný jazyk je rodný jazyk, ať už anglicky umíte sebelíp (a většina vývojářů moc dobře anglicky neumí). Češtinou si ušetříte práci při vytváření slovníku předem (a tím i čas a peníze) nebo si ušetříte čas a peníze při následné údržbě, protože nebudete muset řešit situace, kdy uživatel hlásí nějakou chybu, popisuje v ní věci anglickými slovy, jenže ve zdrojáku máte „anglická“ slova úplně jiná (protože lokalizace vznikala až ex post a na refaktoring jste se vykašlali).
- Uvažujete-li o najímání levných nevolníků třeba z Indie, angličtině budou rozumět lépe než češtině (ale beztak to není moc šťastný nápad). Politicky korektně řečeno: plánujete-li práci v mezinárodním týmu.
- Čeština je názornější – na první pohled je vidět, kterou část kódu jste psali sami a co už je za hranicí vašeho programu (třídy a metody ze standardní knihovny, cizí frameworky). Mít tuhle jasnou a na první pohled zřejmou linii dělící váš a cizí kód, je šikovné. U výukových příkladů nebo kousků kódu (třeba ukázky na webu, kde nemáte k dispozici IDE) to platí dvojnásob. Rychlejší porozumění kódu se počítá.
Ať už se rozhodnete jakkoli (obě možnosti jsou legitimní a najdou své uplatnění), snažte se při tom přemýšlet a zvažujte výhody a nevýhody jednotlivých variant – místo bezmyšlenkovitého přejímání klišé typu „programy se přece píší jedině v…“