Autor Zpráva
okolojdouci
Profil *
Moderátor Chamurappi: Vytrženo z JS - Vlastní wysiwyg editor.

Už tady proběhl flame ohledně Witikova zlozvyku používat diakritiku tam, kde se z toho každému soudnému člověku ježí chlupy na hlavě?
Witiko
Profil
okolojdouci:
Ne, můžeš se do toho pustit, možná nám na to Chamurappi či někdo jiný vyčlení i vlákno. Rád si tvou logickými argumenty podloženou kritiku poslechnu. Stejně tak se těším na to, čím podpoříš tvrzení, že se jedná o zlozvyk. Takže s chutí do toho.
Chamurappi
Profil
Reaguji na okolojdouciho:
Odpor většiny programátorů k diakritice v identifikátorech existuje ze tří důvodů:
1) Část (převážně starých) programovacích jazyků to nepobere.
2) Potenciální problémy při špatném kódování jsou horší než jen pouhá nečitelnost textů.
3) Programátor musí používat českou klávesnici i při programování, což málokdo umí.

Sám jsem s jedním známým před pár lety napsal poměrně rozsáhlý projekt v C#, v němž jsme diakritiku důsledně používali. Žádný problém, žádné ježení chlupů…
okolojdouci
Profil *
Chamurappi:
Sám jsem s jedním známým před pár lety napsal poměrně rozsáhlý projekt v C#

.. díky čemuž mě napadlo
4) Nemožnost spolupráce s někým, jehož mateřština diakritiku nezná.


Witiko:
tvrzení, že se jedná o zlozvyk
"zlozvyk" byla trochu nadsázka a provokace. Proč to děláš, netuším.
Witiko
Profil
okolojdouci:
.. díky čemuž mě napadlo
4) Nemožnost spolupráce s někým, jehož mateřština diakritiku nezná.
Pokud budeš zvšeobecňovat, tak můžeš vyvrátit prakticky cokoliv. Kontext je vše. Tzn. když budu psát kód na kterém spolupracuji s partou lidí, kteří neumí česky, tak logicky diakritiku nevyužiju a stejně tak nejspíš nebudu volit názvy v češtině. Naopak pokud vím, že budu pracovat jen s partou lidí, kteří česky umí / případně sám, důvody proti se vytrácí. Pro mě osobně je plusem zvýšená čitelnost, což myslím zodpovídá i „Proč to děláš, netuším.“ Otázka podle mě není proč to dělat, ale proč to nedělat, když má člověk tu možnost. Mě to přijde přirozené.

Chamurappi:
Programátor musí používat českou klávesnici i při programování, což málokdo umí.
Možná jsem zvláštní případ, ale při kódování píšu vždy s českou klávesnicí a chlupaté či hranaté závorky či jiné znaky píši přehozením klávesnice nebo příslušnou zkratkou. Sice ne všemi deseti, tzn. Yahů by ze mě neměl radost, ale co se dá dělat.
Chamurappi
Profil
Reaguji na okolojdouciho:
Cizinci v týmu jsou obecně důvodem pro nepoužívání češtiny i cestiny ve zdrojácích (tedy i v komentářích).

Mám zkušenost s ryze českým týmem programátorů, který se rozhodl nazývat všechny identifikátory anglicky jen proto, že tak se to má dělat, pak ale na některé komplikovanější výrazy museli používat slovník, z něhož byli schopní vybírat i exotická a významově nepříliš pasující slůvka :-) … ve srovnání s tím mi ta čeština nepřipadá tak chlupyježivá.


Reaguji na Witika:
při kódování píšu vždy s českou klávesnicí a chlupaté či hranaté závorky či jiné znaky píši přehozením klávesnice nebo příslušnou zkratkou
Já programuji výhradně na české QWERTY, anglickou klávesnici jsem odinstaloval, protože jsem se na ni přepínal omylem. Přes pravý Alt jde snadno napsat všechno, co programátor potřebuje.
Joker
Profil
Witiko:
Kontext je vše. Tzn. když budu psát kód na kterém spolupracuji s partou lidí, kteří neumí česky, tak logicky diakritiku nevyužiju a stejně tak nejspíš nebudu volit názvy v češtině.
Tohle je často těžké odhadnout. Jednak spousta větších projektů vzniká rozšířením malého projektu, takže říct si „na tomhle určitě žádný cizinec nikdy nebude spolupracovat“ je ošidné. Nebo později zjistím, že do většího projektu psaného „anglickým stylem“ se mi hodí pár komponent které už mám psané „českým stylem“.

Z tohohle pohledu by asi bylo nejlepší používat vždycky angličtinu, problém je to co píše Chamurappi:
Mám zkušenost s ryze českým týmem programátorů, který se rozhodl nazývat všechny identifikátory anglicky jen proto, že tak se to má dělat, pak ale na některé komplikovanější výrazy museli používat slovník, z něhož byli schopní vybírat i exotická a významově nepříliš pasující slůvka
Taky mám zkušenost, že hodně českých programátorů prostě neumí tak dobře anglicky a pak vznikají dost podivné názvy.

Přes pravý Alt jde snadno napsat všechno, co programátor potřebuje.
Nojo, ale občas je pak otravné neustále mačkat pravý Alt :-) Já tohle používám jen na jeden symbol, na delší výraz nebo když píšu celý text v angličtině přepínám na anglickou klávesnici.
Jinak i pro ty kdo přepínají na anglickou je podle mě česká QWERTY nutnost, jinak „se y toho ybláyní“.
Timy
Profil
Já myslím, že i krkolomné anglické názvy jsou lepší než české. Důvody vidím hlavně dva:

-- V angličtině existuje programátorské názvosloví. Když budu mít v programu metody getSize() a setSize(), tak je jasné, že se jedná o getter a setter metody vlastnosti Size. Existuje pro to v češtině nějaký opravdu ustálený výraz? Podobně třeba pro návrhové vzory. V angličtině bude dost ustálených pojmů, které prostě v češtině nejsou a člověk pak musí taky vymýšlet různé krkolomné patvary.

-- I když píši program v českém týmu a jsem si jistý, že se ke zdrojákům nikdy nedostane nikdo jiný než našinec, tak pořád můžu v kódu využít externí knihovnu, která bude jistě psaná anglicky. Vzniká pak česko-anglický maglajz. Ten vlastně vzniká i tak, každý programovací jazyk má identifikátory v angličtině. Opačnou situací pak je, když z tohoto českého projektu budu chtít vytáhnout kus kódu do anglicky psaného programu.

Myslím si, že občasné nepasující anglické slůvko nevadí. Český "překlad" nebude v celkovém součtu nijak lepší kvůli chybějícím konvencím a tu angličtinu se lidi časem naučí.

Klávesnici používám českou, anglickou jsem nikdy nepoužíval.
Witiko
Profil
Joker, Timy:
Po pravdě řečeno nemám s angličtinou sebemenší problém a proto opět opakuji, že kontext je vše. Tzn. Timym uváděný getSize a setSize můžu v přetížit na size, externí knihovny často nemusím potřebovat atd. atd. Ano, souhlasím - samozřejmě, že v určitých případech je využití nevhodné. Ale tvrdit na základě těchto několika příkladů, že je dobrým pravidlem nepoužívat při jakémkoliv kódování češtinu raději pro jistotu vůbec je lenost a argumentační pochybení. Pointou je i fakt, že původní narážka je kvůli mému použití diakritiky v identifikátorech v html - kde konkrétně já například žádné jasné nevýhody nevidím, naopak.
Timy
Profil
Witiko:
A to už jako dopředu u každého projektu víš, že nebudeš zcela jistě potřebovat žádnou externí knihovnu nebo alespoň pár funkcí zkopírovaných z netu? Nebo že ten kód, který napíšeš teď, nebudeš potřebovat někdy v budoucnu v projektu, který už je psaný anglicky? Pointou je, že tohle zpravidla nikdy nevíš. Nehledě na ten bod, že nativní funkce jazyka jsou zpravidla anglicky, takže ten maglajz tam je, i když žádnou externí knihovnu nepoužiješ.
okolojdouci
Profil *
Witiko:
tvrdit na základě těchto několika příkladů, že je dobrým pravidlem nepoužívat při jakémkoliv kódování češtinu raději pro jistotu vůbec je lenost a argumentační pochybení

Nechci tady začít šermovat odprogramovanými roky nebo počty vývojových prostředí. Nicméně lze říct, že diakritika v názvu proměnné někde prostě není možná, někde působí problémy a někde problémy nepůsobí - obdobně jako třeba velikost písmen. Nikdy by mě nenapadlo v tomto směru nějak experimentovat, protože jsem moc líný (ano) na to, abych si pamatoval, kde to možné je a kde není - navíc, když se to může lišit v různých verzích jednoho softwaru. Jestli máš jistotu, že si toto v html a JS (tj. napříč všemi současnými a budoucími prohlížeči) dovolit můžeš, klidně to dělej. Nemusím všechno chápat :)

Měl jsem za to, že se ozve víc lidí, na které to působí jako červený hadr.. asi jsem nadprůměrně konzervativní.
Taurus
Profil
Pro mě to není jako červený hadr, ale beru angličtinu jako správný úzus. A to jsem velký zastánce diakritiky, interpunkce, češtiny a bůhvíčeho ještě.
Witiko
Profil
Timy:
A to už jako dopředu u každého projektu víš“ - kdo se baví o projektech, mluvíme o kódování obecně. Například konkrétně v projektu jménem píšu ukázkový html kód pro fórum jakpsatweb.cz o 20ti řádcích jsem ochoten si vsadit, že externí knihovny a funkce potřebovat nebudu. ;-) Může se to jevit jako výjimka, ale ve skutečnosti je zde poměrně široká skupina případů, kdy to člověk může říct s jakžtakovou jistotou. Takže „Pointou je, že tohle zpravidla nikdy nevíš.“ skutečně není obecně platné tvrzení.

alespoň pár funkcí zkopírovaných z netu
Pravda je taková, že pokud mám na výběr, tak naslepo cizí funkce nekopíruji, buď je přepíšu celé nebo alespoň mírně přepracuji. Většinou odmítám důvěřovat tomu, že zveřejněný kód je udržovatelný a dobře napsaný, aniž bych si to ověřil. V průběhu tohoto procesu není problém v případě potřeby přepsat identifikátory.

Nehledě na ten bod, že nativní funkce jazyka jsou zpravidla anglicky, takže ten maglajz tam je, i když žádnou externí knihovnu nepoužiješ.
Jediná validní připomínka. Ano, nativní funkce jsou většinově v cizím jazyce (standardem je angličtina), ale pouze pokud je daný jazyk programovací a ne například značkovací (jako třeba právě html v reakci na něž byl vytvořeno toto vlákno), které by definition funkce postrádají. Ani to však zpravidla není tak markantní problém, pakliže člověk bere nativní funkce jako monolit.

okolojdouci:
Historické důvody jsou pochopitelnou obavou, ale v dnešní době díky standardizaci Unicode již v případě mnoha jazyků nepodloženou.


Osobně se nepovažuji za lone codera a velmi často mi při psaní angličtina sedne jednoduše více - i kvůli krátkosti výrazů (průměrná délka slov: 5.10 Aj, 8.11 Cz) a výše zmiňovaným výhodám. Důvodem, proč se tu stavím do role opozice je prostý fakt, že nemám rád univerzální zatracování čehokoliv (Joker: „Z tohohle pohledu by asi bylo nejlepší používat vždycky angličtinu“) , zvláště když z osobní zkušenosti vím, že použití češtiny v kódu má své místo. Zrovna značkovací jazyky jsou podle mě skupinou na které je to vidět nejjasněji.
Timy
Profil
Witiko:
kdo se baví o projektech
No... já :-). Ano, Hello World si taky můžeš napsat česky, "ukázkový program v C# s českými identifikátory s diakritikou" taky napíšeš s českými identifikátory s diakritikou. Asi je taky jedno, jak programuje sváteční "programátor", který se po roce rozhodl, že si na svůj blogísek přidělá sněžení... V podobných případech je to zpravidla jedno, to je pravda, to nijak nezpochybňuji. Já se ale nebavím o drobcích, ale o nějakých normálních programech, kteří píší normální programátoři. Že nikdy není nic opravdu 100% je asi jasné, výjimky existují vždy (až na některé výjimky), ale stále si myslím, že obecně platí, že je lepší programovat anglicky než česky.

Reaguji jen na programování, původní diskusi jsem vůbec nečetl. A přestože HTML by definition funkce postrádá, tak <head> mi přijde dostatečně anglické ;-).

Jediná validní připomínka.
Ještě jsi, už podruhé, vynechal ten bod, kdy po čase ze starého českého kódu chceš překopírovat nějaký univerzální kód do nového projektu.
Witiko
Profil
Timy:
Ještě jsi, už podruhé, vynechal ten bod, kdy po čase ze starého českého kódu chceš překopírovat nějaký univerzální kód do nového projektu.
Omlouvám se. :-) Osobně mě až zase tak netrápí přepis identifikátorů pár veřejných členů a případně interface. Toho univerzálního kódu totiž většinou není zase tolik, alespoň já se zpravidla setkávám s projekty, kdy jsou algoritmy psány na míru problému. To znamená, že většinou se těžení ze starého kódu tak či onak neobejde bez modifikací, z nichž pak dané přejmenování tvoří minoritní část.
Joker
Profil
Timy:
metody getSize() a setSize(), tak je jasné, že se jedná o getter a setter metody vlastnosti Size. Existuje pro to v češtině nějaký opravdu ustálený výraz?
Co jsem viděl, v češtině se taky používá get a set.
Tj. když místo Size bude Velikost, metody budou getVelikost() a setVelikost(). Tím právě vzniká taková směska.


Witiko:
Ale tvrdit na základě těchto několika příkladů, že je dobrým pravidlem nepoužívat při jakémkoliv kódování češtinu raději pro jistotu vůbec je lenost a argumentační pochybení.
To není pravda. Ten argument nespočívá v lenosti, ale v tomhle:
Dopředu nelze říct, že v projektu stoprocentně nebudou potřeba externí knihovny, že se ten projekt nerozroste, že některé části toho projektu nebudou využitelné v jiném projektu, apod. Ba právě naopak, dobře udělaný objektový návrh by právě takové věci měl zajistit.

Pak dává smysl použít to, co je nejvíce univerzální do budoucna.
Je to vlastně podobné, jako proč vůbec existuje ten objektově orientovaný návrh a proč se programy dělají univerzálnější než natvrdo zadrátované aktuální zadání od uživatele. Aneb kolikrát já už zažil předělávání věcí, o kterých původně klient tvrdil, že se to nikdy nemůže změnit.
Edit, poznámka:
Sám mám v tomhle máslo na hlavě, často programuji takovou česko-anglickou směskou.
Chamurappi
Profil
Reaguji na Timyho:
Existuje pro to v češtině nějaký opravdu ustálený výraz?
V C# nepotřebuji vymýšlet rozdílné názvy pro gettery a settery. A jinak mi nevadí používání těch ustálených výrazů, klidně bych psal getVelikost() a setVelikost(). Ustálená slůvka beru skoro jako součást syntaxe jazyka (nehledě na to, zda nazývám identifikátory česky či anglicky), takže mi nepřipadá vůbec divné spojit je dohromady s mnou vymyšleným názvem. Pod názvy metod getCold() či getPregnant() si také představíš spíš metody vracející hodnoty vlastností, než metody páchající děje vyjadřované anglickými slovy „get cold“ a „get pregnant“, ne?

člověk pak musí taky vymýšlet různé krkolomné patvary
Vymýšlení krkolomností (českých i anglických) je větší problém než případná jazyková nekonzistence. Prioritou by měla být dokonalá srozumitelnost pro lidi, kteří budou s kódem pracovat, nikoliv lingvistická čistota.

Ten vlastně vzniká i tak, každý programovací jazyk má identifikátory v angličtině.
Nemusím se vyhýbat pojmům, jejichž anglický překlad připomíná klíčová slova. Lépe poznám, co je moje a co cizí :-)

Jak jsem již psal, mám zkušenost s rozsáhlejším projektem, kde se používaly české názvy s diakritikou (nikoliv z mé iniciativy a i přes můj mírný počáteční odpor), a nebyl to nepříjemný zážitek. Naopak. Přemýšlet a bavit se o pěkném objektovém kódu výhradně tak, jak je napsán, v mateřštině, bylo příjemně osvobozující. Okusil jsem, jak se cítí rodilí američtí programátoři :-)

víš, že nebudeš zcela jistě potřebovat žádnou externí knihovnu nebo alespoň pár funkcí zkopírovaných z netu?
Externí knihovny si do češtiny nepřekládám. Můj namespace, moje pravidla, cizí namespace, cizí pravidla. To platí, i když se snažím o angličtinu — cizí kód je málokdy napsaný přesně tak, jak bych ho napsal já.

když z tohoto českého projektu budu chtít vytáhnout kus kódu do anglicky psaného programu
Privátní části nechám česky, veřejné přeložím.


Reaguji na okolojdouciho:
Jestli máš jistotu, že si toto v html a JS (tj. napříč všemi současnými a budoucími prohlížeči) dovolit můžeš, klidně to dělej.
Tu jistotu máme, oba jazyky jsou odjakživa postavené na Unicodu. Nevyužíváme nestandardní benevolence.


Reaguji na Taura:
beru angličtinu jako správný úzus
Zajímavý precedens je operátor Paamayim Nekudotayim v PHP.


Reaguji na Witika:
konkrétně v projektu jménem píšu ukázkový html kód
Tady bych si dovolil podotknout, že díky češtině v ukázkovém kódu neinformovaný začátečník jednak může lépe pochopit, k čemu ukázková funkce slouží, a jednak je mu tím jasně naznačeno, že nejde o nativní funkci v prohlížeči (nebo o cosi z nějaké blíže neurčené knihovny). Anglický název může vypadat záhadně a nebezpečně :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0