Programovací jazyk Ruby – japonská hvězda mezi jazyky

Jazyk, s nímž bych vás dnes chtěl seznámit, nese krásné jméno Ruby, do češtiny přeloženo Rubín. Vzácný červený kámen těšící se veliké oblibě především v asijských zemích. Jeho domovem je nám kulturně vzdálené Japonsko.

Otcem tohoto mocného, dynamického, plně objektově orientovaného skriptovací jazyka je Yukihiro Matsumoto, na Internetu vystupující pod přezdívkou „Matz“. Dle svých slov, s přesností na den, započal Matsumuto vývoj Ruby 24. února 1993. První program „Hello world“, jehož kód, jak je tradicí, si za chvíli ukážeme, pak napsal tentýž rok v létě.

Nyní ale již konkrétně k samotnému interpretru a jazyku. Interpretr jazyka Ruby je psán v jazyce C, což zaručuje jeho běh na nejrůznějších platformách. Najít ho tak například můžeme pod Linuxem, nejrůznějšími druhy UNIXU, MS-Dos, MS-Windows, BeOS a MacOS X. Navíc je od počátku vyvíjen jako open source.

Návrh jazyka byl nejvíce ovlivněn jazyky Perl, Lisp a Smalltalk, a tak není divu, že mnoho užitečného z nich Ruby obsahuje. Někdy se ve stručnosti charakterizuje vzorcem RUBY = (Perl+Smaltalk)/2.

Free Ride

Jak Matsumoto mnohdy uvádí, na samém počátku stála snaha vytvořit skriptovací jazyk, který by byl mnohem silnější než Perl a mnohem více objektově orientovaný než Python. Další snahou pak bylo (a je) vytvořit počítačový jazyk, v němž se programátor může soustředit víc na řešení daného problému než na syntaxi jazyka samotného. Tedy vytvořit jazyk vyšší úrovně.

Matsumuto k tomuto říká: „Při užití Ruby se chci koncentrovat na věci, které dělám, a ne na magická pravidla jazyka, jakými jsou public void something something something, abych řekl „napiš Ahoj světe“. Já chci jen říct „napiš to!“. Nechci se obklopovat magickými klíčovými slovy. Chci se pouze a jen soustředit na požadovaný úkol. A toto je základní idea Ruby.“

Další pak je svoboda, která dává programátorovi možnost udělat stejnou věc mnoha způsoby. Nyní si pro představu uvedeme tři způsoby, jak na obrazovku monitoru vypsat známou větu „Hello World“.

Ukázka číslo 1:

print "Hello World!"

Ukázka číslo 2:

puts "Hello World!"

Ukázka číslo 3:

def helloWorld
puts 'Hello world!'
end
helloWorld

Posledním neméně zajímavým principem, který si šíře uvedeme, je princip nejmenšího překvapení. Což v praxi znamená, že pokud v Ruby napíšeme kód, neměli bychom být překvapeni jeho chováním. Proto, aby se tento princip uplatnil, je ale potřeba nejprve nějaký čas s Ruby pracovat.

Matsumuto o tomto říká: „Princip nejmenšího překvapení začne pracovat až potom, co se Ruby naučíte velmi dobře. Velmi intenzivně jsem necelé tři roky programoval v jazyce C++. A i po tolika letech mě C++ stále dokáže překvapit.“ Toto by se s Ruby stát nemělo.

Ptáte-li se na praktické využití jazyka Ruby, uveďme si, že ho můžeme pohodlně použít při řešení následujících typů úloh: zpracování textu, psaní CGI skriptů, vytváření síťových aplikací, tvorba GUI, práce s XML a výuka objektově orientovaného programování.

V praxi pak Ruby například využívá Americká NOAA (National Oceanographic and Atmospheric Administration) ke zpracovávání snímků a meteorologických dat, která jsou pořizována ze satelitu. V NASA zase našel uplatnění pro provádění nejrůznějších výpočtů. Ruby byl i částečně použit v pátrání po příčinách hrůzného pádu amerického raketoplánu Columbia v roce 2003.

Řekli o Ruby:

Věřím, že lidé, kteří píší program, chtějí vyjádřit sebe. Nechtějí bojovat s jazykem. Programovací jazyk musí být pro programátora přirozený.
Yukihiro Matsumoto

Pracuji pro společnost, která mi povolila přepsat existující Windows/Visual Foxpro/COM systém užitím Ruby. Vývoj nového systému byl velmi rychlý a čistý. Ruby nám dal jednoduchý způsob vyjádřit naše UML diagramy v kódu.
Gabriel Emerson

Odkazy

Domovská stránka Ruby

Učebnice programování v Ruby (anglicky)

Další výborná učebnice v Ruby (anglicky)



Článek vyšel původně v časopisu LinuxEXPRES. Autor článku Lukáš Faltýnek.

Článek je uveřejněn s GNU FDL licencí (anglicky).

You can skip to the end and leave a response. Pinging is currently not allowed.

5 komentářů k “Programovací jazyk Ruby – japonská hvězda mezi jazyky”

  1. Botanicus napsal:

    IMHO to je jinak: RUBY = (Perl+Smaltalk) * 2 ;) … a krom toho vliv Pythonu taky neni maly, rekl bych, ackoliv se o tom nemluvi

    Musim si rejpnout: print „Hello World!“ a puts „Hello World!“ v zadnem pripade nejsou ekvivalenty (coz sice nebylo explicitne tvrzeno, ale radeji to pisu aby ostatni meli jasno) – print „Hello World!\n“ je totez co puts „Hello World!“ To defovani umi snad kazdej slusnej jazyk vyssi urovne, mozna je zajimavejsi treba rozvest moznost zapisu stringu nebo treba Arrayu. Treba:
    a = „Hello“
    puts %Q|#{a} world!| # s interpolaci
    puts %q(#{a} world!) # bez interpolace
    puts

  2. Botanicus napsal:

    BTW to orezavani komentaru, to je ale blbej napad.
    Melo tam byt jeste cosi jako:
    puts

  3. LuFa napsal:

    Jaké ořezávání komentářů prosím? Vůbec netuším. Můžete se prosím vyjádřit konkrétněji? Díky moc, Lukáš.

  4. Botanicus napsal:

    jasne ze muzu :) Dela to &alt;&alt;-EOF, resp. asi jenom &alt;&alt;

  5. Botanicus napsal:

    K certu, HTML kod to nesezralo, omlouvam se, proste dve otevrene tagove zavorky za sebou

Napište prosím komentář

You must be logged in to post a comment.