Portál AbcLinuxu, 6. května 2024 21:30

Ruby pro začátečníky - 1

8. 2. 2006 | Jaromír Hradílek
Články - Ruby pro začátečníky - 1  

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.

Obsah

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

1. Úvod

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.

2. Krátce z historie

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.

3. Jak to vypadá

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

4. Instalace

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.

5. Spuštění

5.1 Interpretr 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!
~$

5.2 Interaktivní interpretr 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.

Seriál Ruby pro začátečníky (dílů: 8)

První díl: Ruby pro začátečníky - 1, poslední díl: Ruby pro začátečníky - 8 (soubory, výjimky, kontakt s OS).
Následující díl: Ruby pro začátečníky - 2 (komentáře, aritmetika, proměnné)

Související články

Seriál: BASH
Python a PyQt - 1 (úvod)
Python a PyQt - 2 (podmínky, cykly, tlačítka)
Začínáme programovat v jazyce Python
Kommander - 1 (Skriptované GUI)
Kommander - 2 (Starý parser)
Kommander - 3 (Nový parser)
Seriál: Začíname KProgramovať
Programujeme v PERLu - I
Programujeme v PERLu - II

Odkazy a zdroje

Ruby

Další články z této rubriky

LLVM a Clang – více než dobrá náhrada za GCC
Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Reverzujeme ovladače pro USB HID zařízení
Linux: systémové volání splice()
Programování v jazyce Vala - základní prvky jazyka

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.