Portál AbcLinuxu, 6. května 2024 21:30
V prvním díle seriálu o programovacím jazyce Ruby se seznámíme s jeho historií, instalací a jeho prostředím.
1. Úvod
2. Krátce z historie
3. Jak to vypadá
4. Instalace
5. Spuštění
5.1 Interpretr
ruby
5.2 Interaktivní
interpretr irb
V první řadě by asi bylo třeba objasnit si, o čem bude řeč. Ruby je interpretovaný skriptovací jazyk, který je díky své jednoduché syntaxi poměrně snadný k naučení, přesto však dostatečně výkonný, aby dokázal konkurovat svým známějším bratříčkům Pythonu a Perlu. Na rozdíl od zmíněných jazyků je však plně objektově orientovaný.
Stejně jako u jiných skriptovacích jazyků je oblast použití poměrně široká. Asi nejčastější využití najde při psaní skriptů pro usnadnění každodenní práce. Díky své čisté a přehledné syntaxi se však hodí i k psaní větších projektů, programování webových aplikací, ba dokonce GUI.
Prostřednictvím tohoto seriálu se vás pokusím provést základy programování v jazyce Ruby, na nichž pak můžete stavět při studiu dalších materiálů. Jelikož je to seriál pro začátečníky, neočekávám žádné předchozí zkušenosti s programováním (nicméně jsou výhodou), předpokládám však znalost operačního systému na uživatelské úrovni a schopnost pracovat s příkazovou řádkou (shellem). Při psaní se budu snažit o maximální srozumitelnost s velkým množstvím příkladů. Na konci seriálu byste měli být schopni pracovat s jazykem Ruby, psát vlastní skripty a chápat objektově orientovaný přístup.
Pokud se v některém z příkladů dopustím omylu nebo nepřesnosti, neváhejte mne prosím opravit v diskusi.
Stvořitelem Ruby je Yukihiro Matsumoto, známý pod přezdívkou Matz. Ten jako zastánce objektově orientovaného programování hledal v první polovině 90. let skriptovací jazyk, který by mu v tomto vyhovoval. Perl mu však připadal v té době málo výkonný a Python zase nebyl až tak objektový, jak by si představoval. A tak se Matz rozhodl, že navrhne vlastní jazyk. Práce na něm započaly v roce 1993, první verze pak byla uveřejněna v roce 1995. Matz svůj jazyk pojmenoval po rubínu - Ruby.
Každého, kdo rozmýšlí nad novým jazykem, určitě zajímá, jak to vlastně vypadá v akci. Pojďme si tedy ukázat pár jednoduchých zdrojových kódů a začněme tradičním programem Hello world:
puts "Ahoj svete!"
Tento program vypíše na obrazovku uvedený text. Jelikož nám toho ale o struktuře jazyka moc neřekne, přejděme ke složitější ukázce:
def fib(n) a, b = 0, 1 n.times do print b, " " a, b = b, a+b end end fib(10)
Zde vidíme definici funkce fib
, jež slouží k vypsání
prvních n prvků Fibonacciho posloupnosti. Ta je na posledním řádku
zavolána s parametrem 10
. Výstup tohoto programu by pak
vypadal následovně:
1 1 2 3 5 8 13 21 34 55
Jelikož je ale Ruby objektově orientovaný jazyk, pojďme si do třetice ukázat definici jednoduché třídy:
class Divka def initialize(jmeno, vek) @jmeno = jmeno @vek = vek end def to_s "Moje divka se jmenuje #{@jmeno} a je ji #{@vek} let." end attr_reader :jmeno, :vek end mojeDevce = Divka.new('Hanka', 20) puts mojeDevce.to_s puts mojeDevce.vek
Po spuštění tohoto programu dostaneme na výstupu:
Moje divka se jmenuje Hanka a je ji 20 let. 20
Pravděpodobně nejširší uplatnění najde Ruby v Linuxu a jiných systémech unixového typu. Pro mnoho distribucí existují připravené binární balíčky, jejichž instalace je asi nejsnazší.
Pro potřeby tohoto seriálu budeme potřebovat dva programy:
ruby
a irb
. irb
je interaktivní
prostředí a v následujících kapitolách je budeme hojně využívat, proto ho
doporučuji nainstalovat také. V některých distribucích (tuším, že třeba ve
Slackware) je vše obsaženo v jednom balíčku, v jiných je třeba stáhnout
irb
zvlášť.
V systému Debian GNU/Linux tedy Ruby nainstalujeme:
root@debian:~# apt-get install ruby irb
V systému Fedora Core použijeme nástroje yum
:
root@fedora:~# yum install ruby irb
Nemáte-li možnost instalovat binární balík (třeba pro to, že pro vaši distribuci neexistuje), a nebo nechcete, můžete si Ruby zkompilovat ze zdrojových kódů. Z domovských stránek si stáhněte nejnovější verzi (v mém případě 1.8.4) a zadejte:
~/download$ tar xvfz ruby-1.8.4.tar.gz
Tím komprimovaný balík rozbalíte. Nyní se přesuňte do vytvořeného adresáře, spusťte konfigurační skript a následně kompilaci:
~/download$ cd ruby-1.8.4 ~/download/ruby-1.8.4$ ./configure ~/download/ruby-1.8.4$ make
Toto může chvíli trvat, nicméně až se vrátíte s uvařeným čajem,
nalogujte se na účet uživatele root
a dokončete
instalaci:
root@debian:/home/blackened/download/ruby-1.8.4# make install
Nyní byste měli mít vše potřebné.
Ačkoli je tento server zaměřený na operační systém Linux, jen pro úplnost zmíním, že pro systém Microsoft Windows existuje projekt One-Click Ruby Installer.
ruby
Ke spouštění skriptů slouží program ruby
. Spustíme-li jej
bez jakýchkoli parametrů, dostaneme se do režimu zápisu skriptu. Po
stisknutí ^D
(Ctrl+D) se zapsaný program provede a
ruby
skončí:
~$ ruby 3.times { puts "Ahoj svete!" } ^D Ahoj svete! Ahoj svete! Ahoj svete! ~$
Druhou možností je zadat program jako parametr:
~$ ruby -e 'puts "Ahoj svete!"' Ahoj svete! ~$
Toto je vhodné pro krátké skriptíky, které jsme schopní vměstnat
do jednoho řádku, hůře se nám už bude psát složitější program.
Nejčastěji používanou metodou je zapsat kód do samostatného
souboru a tento soubor pak předat k provedení interpretru.
Mějme soubor ahoj.rb
s následujícím obsahem:
puts "Ahoj svete!"
K jeho spuštění použijeme příkazu:
~$ ruby ahoj.rb Ahoj svete! ~$
Poslední a nejpoužívanější metodou je vytvořit z
ahoj.rb
spustitelný soubor. Upravme náš program:
#!/usr/bin/env ruby puts "Ahoj svete!"
Řádek #!/usr/bin/env ruby
sděluje systému cestu
k interpretru. Aby to fungovalo, musí být tento na úplném začátku
prvního řádku souboru. Pak už stačí jen udělit souboru práva ke spuštění
a spustit jej:
~$ chmod +x ahoj.rb ~$ ./ahoj.rb Ahoj svete! ~$
irb
Interaktivní interpretr spustíte příkazem irb
. Na dalším
řádku se již objeví prompt, krom jiného jsou zde dvě číselné hodnoty.
První odpočítává řádky programu (počet již zadaných příkazů), druhá pak
úroveň zanoření:
irb(main):001:0> class Divka irb(main):002:1> def initialize(jmeno, vek) irb(main):003:2> @jmeno = jmeno irb(main):004:2> @vek = vek irb(main):005:2> end irb(main):006:1> attr_reader :jmeno, :vek irb(main):007:1> end => nil irb(main):008:0>
Údaj za =>
označuje návratovou hodnotu, v tomto
případě prázdnou hodnotu nil
. Výhodou irb
je, že okamžitě vidíte výsledek svého snažení:
irb(main):008:0> puts "Ahoj svete uz je ohrane, nazdar lidi!" Ahoj svete uz je ohrane, nazdar lidi! => nil irb(main):009:0>
Interaktivní interpretr ukončíme buď příkazem exit
nebo
stiskem ^D
:
irb(main):009:0> exit ~$
V příštím díle seriálu se již pustíme do samotného jazyka a ukážeme si práci s proměnnými a základní aritmetické operace.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.