Kapitola 9. Ruby a čeština

FIXME:Najit vhodnější místo pro tento text.

Tento text je velmi starý. V současné době je v Rubi již podpora UNICODE.

Měl bych zmínit vztah Ruby k češtině. Češtinou mám na mysli dvě různé věci. Ta první je použití češtiny v hodnotách, tedy v řetězcích. Tedy schopnost Ruby zpracovávat český text. Zcela určitě umí poslední verze stabilní řady, tedy v tuto chvíli verze 1.8.5, a předpokládám že i některé předchzí, pracovat s češtinou v kódování utf-8. Starší verze se zcela jiste srovnají s jakýmkoliv 8-mi bitovým kódováním kódováním češtiny jako je například ISO-8859-2 známé taky jako Latin2.

Chceme-li tedy pracovat s češtinou v UTF-8 musíme definovat odování a nahrát moduly jenž umožňují některé textové operace v utf-8.

$KCODE='u'
require 'jcode'

To be done.

Druhou věcí jenž rozumím pod pojmem schopnost pracovat s češtinou je možnost použít české a nejen české znaky mimo hodnoty. Tedy v názevech symbolů, proměnných, metod, tříd a modulů. Tento způsob umožňuje zápis jako:

poloměr = 23
průměr = poloměr * 2
puts "Výsledek je #{průměr}"

Ve vývojové řadě verzí 1.9 již byla tato možnost implementována, takže následující kód vám bude fungovat:

#!/usr/bin/env ruby1.9
# -*- mode:ruby; coding:utf-8; -*-
$KCODE='utf8'
require 'jcode'

symbol = :český
p symbol

proměnná = :ěščřžýáíé
p proměnná

Použití znaků mimo standardní sadu ASCII nám otevírá nové a zcela netušené možnosti. Nicméně bychom měli přesně vědět z jakých důvodů se do těchto velmi zrádných vod pouštíme. Pokud chceme učit programování děti, můžeme tuto možnost využít. Nemusí se zatěžovat problémy s angličtinou či cestinou. Myslím že pro tento účel je použítí národních znaků akceptovatelné a ospravedlnitelné.

Proč píši ospravedlnitelné. Inu proto že hodláme-li psát netriviální program, který dostanou k dispozici lidé na celem světě, je absolutním zvěrstvem použít národní znaky v kódu programu jako názvy proměnných a symbolů. Když pominu, že češtiny neznalý programátor takový text vnímá jako obrázkové písmo a má problém se v něm zorientovat. Tak vyvstane téměř neřešitelný problém s jeho možností takový text editovat. On zcela jistě na své národní klávesnici (například španělské) nemá žádnou možnost jak napsat písmeno "ř". Takže nemá žádnou možnost jak takový program upravovat. Když už tedy nemůžeme, například z důvodu neznalosti angličtiny používat anglické názvy, buďme k programátorům, například z brazílie, alespoň na tolik shovívaví, že použijeme místo názvů českých názvy ceske. Tedy bez diaktitiky.

Pokud jste pořád ještě nepochopili o čem zde píši, představte si že vám na stole (v počítači) skončí program, který by jste rádi upravili pro vlastní potřebu, a on jako naschvál je psaný v čínštině. Tedy v čínštině jsou nejen komentáře, ale také názvy proměnných a symboly. Mějte tohle vždy na paměti, pokud vás popadne touha psát program česky.

Snad bych dodal ještě jednu věc. Pokud se chcete věnovat programování na profesionální úrovni, je znalost angličtiny stejně nezbytná, jako byla nezbytná znalost latiny ve středověku pro jakéhokoliv učence.

Pro toho kdo nepochopil malá ukázka:

FIXME:připravit ukázku ve formě obrázku. Jako text s tím mám problémy.

色は = 45 + 匂へ
ど散り = ぬるを(色は)
puts "#{ど散り}"
Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .