**Ruby** je interpretovaný skriptovací programovací jazyk. Vďaka svojmu jednoduchému syntaxu je pomerne ľahký na naučenie, predsa však dostatočne výkonný, aby dokázal konkurovať známejším jazykom ako je Python a Perl. Je plne objektovo orientovaný – všetko v Ruby je objekt.

História
--------

Tvorcom Ruby je jediný človek – Yukihiro Matsumoto, známy taktiež pod prezývkou *Matz*. Ten ako zástanca objektovo orientovaného programovania hľadal v prvej polovici 90. rokov skriptovací jazyk, ktorý by mu vyhovoval. Ale Perl mu pripadal v tej dobe málo výkonný a Python zase nebol natoľko objektový, ako by chcel. A tak sa rozhodol, že vytvorí vlastný jazyk. Práce na ňom začali v roku 1993, prvá verzia bola uverejnená v roku 1995. Matz svoj jazyk pomenoval podľa rubínu – anglicky Ruby.

Dnes je Ruby asi najširšie používaný v zemi svojho pôvodu – v Japonsku. Rozšíreniu do sveta dlhú dobu bránila absencia kvalitnej dokumentácie v anglickom jazyku. Dnes už je však anglických materiálov celkom dosť. V súčasnej dobe záujem o Ruby prudko rastie vďaka úspechu webového frameworku Ruby on Rails.

Oblasti použitia
----------------

Rovnako ako iné skriptovacie jazyky, je oblasť použitia Ruby pomerne široká. Asi najčastejšie využitie nájde na platforme Linux (a iných systémoch typu Unix) pri písaní skriptov pre uľahčenie každodennej práce. Vďaka svojej prehľadnej syntaxi a striktnej objektovosti sa hodí i k písaniu veľkých projektov, CGI skriptov, ba dokonca GUI aplikácií (GTK2, TK, Qt, fxRuby atd.). Keďže podporuje regulárne výrazy, je Ruby vhodným jazykom pre spracovanie textových súborov.

Výhody a nevýhody
-----------------

**Výhody:**

* interpretovaný jazyk a z toho plynúce výhody (odpadá proces kompilácie, zmeny v zdrojovom kóde sú ihneď viditeľné)
* prenosnosť zdrojového kódu medzi platformami (MS Windows, GNU/Linux, Solaris, …)
* možnosť spustenia v interaktívnom režime (príkazy sú prevádzané okamžite pri svojom zápise, podporuje dopĺňanie mien)
* jednoduchý a ľahko naučiteľný syntax
* plná podpora objektovo orientovaného programovania – všetko je objekt (je možné však písať i klasické štruktúrované programy)
* dynamické dátové typy
* regulárne výrazy
* modularita zdrojových kódov
* možnosť písať GUI alebo webové aplikácie

**Nevýhody:**

* nižšia rýchlosť oproti kompilovaným jazykom (interpretovaný jazyk je prekladaný až za behu, navyše veľká časť knižníc je napísaná rovnako v Ruby)
* závislosť na interpretri
* nedostatok slovenskej dokumentácie
* menej rozšírený jazyk oproti napríklad Perlu

Ukážka kódu
-----------

Pre predstavu, ako Ruby vyzerá, ukážme si niekoľko príkladov. Pre začiatok tradičný program hello world:

```
puts "Ahoj Svet!"

```

Tento program je často používaný na dôkaz toho ako je kód v Ruby čitateľný:

```
5.times { puts "ahoj!" }

```

Tento program päťkrát vypíše "ahoj!". Doslovne by sa dal brať 5-krát (*times* znamená slovensky *krát*) 
vypíš ahoj (puts je skratka z **put** **s**tring – "daj reťazec" (na štandardný výstup)).

Tento príklad je ale stále tak jednoduchý, že nám o štruktúre nič nepovie. Nasledujúci príklad prezradí viac:

```
def fib(n)
 a, b = 0, 1
 while b < n
 print b, ""
 a, b = b, a+b
 end
end

fib(100)

```

Tu je definícia metódy fib, ktorá vypíše začiatok Fibonacciho postupnosti. Na poslednom riadku je táto metóda volaná s parametrom 100, čím hovoríme, že chceme vypísať postupnosť všetkých čísel Fibonacciho postupnosti menších než 100. Výstup programu je nasledujúci:

```
1 1 2 3 5 8 13 21 34 55 89
```

Keďže je Ruby plne objektový jazyk, ukážme i objekty:

```
class Dievca
 def initialize(meno, vek)
 @meno = meno
 @vek = vek
 end
 def to\_s
 "Meno:\t#{@meno}\nVek:\t#{@vek}"
 end
 attr\_reader :meno, :vek
end

moje\_dievca = Dievca.new('Eva', 18)
puts moje\_dievca.to\_s
puts moje\_dievca.meno
puts moje\_dievca.vek

```

Po spustení bude na výstupe:

```
Meno:  Eva
Vek:    18
Eva
18
```

V Ruby je úplne všetko objekt (i triedy sú objekty typu Class!). Napríklad 

```
1 + 2

```

je vlastne zavolanie metódy + objektu 1 s argumentom 2:

```
1.+(2)

```

Naše dva objekty 1 i 2 sú objekty triedy Fixnum, ktorá v Ruby slúži k uchovávaniu celých čísel. Veľké celé čísla sú objekty triedy Bignum, ktorých teoretická hranica je veľkosť operačnej pamäte.

Externé odkazy
--------------

* – oficiálna stránka jazyka
* – Ruby dokumentačný projekt
* – stránky projektov v Ruby
* Archivované 2004-09-26 na Wayback Machine – online kniha Programming Ruby
* Full Ruby on Rails Tutorial Archivované 2007-05-17 na Archive.today (anglicky)
* Euruko 2008[nefunkčný odkaz] – videozáznamy prednášok z European Ruby Conference 2008 v Prahe na avc-cvut.cz

| * z
* d
* u
Významné programovacie jazyky |
| --- |
| 
* Ada
* ALGOL
* APL
* AWK
* BASIC
* C
* C++
* C#
* COBOL
* D
* Eiffel
* Erlang
* F#
* Forth
* Fortran
* Go
* Haskell
* IDL
* Java
* JavaScript
* JSI
* Kotlin
* Lisp
* Logo
* Lua
* ML
* Objective-C
* Object Pascal (Delphi)
* Pascal
* Perl
* PHP
* PL/I
* PL/M
* PL/SQL
* Prolog
* Python
* R
* Ruby
* Rust
* SAS
* Scratch
* sh
* Scheme
* Simula
* Smalltalk
* SQL
* Swift
* Visual Basic

 |