Ruby

**Ruby** (*Ру́бі*, ад  — рубін) — інтэрпрэтаваная мультыпарадыгменная мова праграмавання, распрацаваная Юкіхіра «Matz» Мацумота ў сярэдзіне 1990-х ў Японіі. Пры стварэнні мовы быў зроблены акцэнт на прадукцыйнасць і прастату праграмавання.

У мове рэалізавана шматпаточнасць, строгая дынамічная тыпізацыя, выкарыстоўваецца аўтаматычны збіральнік смецця і кампіляцыя just-in-time. Мова падтрымлівае некалькі парадыгмаў праграмавання, уключаючы працэдурнае, аб’ектна-арыентаванае і функцыянальнае праграмаванне. Па словах стваральніка, на Ruby паўплывалі Perl, Smalltalk, Eiffel, Ada і Lisp.

Кросплатформавая рэалізацыя інтэрпрэтатара мовы цалкам свабодная.

## Гісторыя 
Па словах Юкіхіра Мацумота Ruby была задумана ў 1993 годзе. У 1999 годзе ў спісе рассылкі ruby-talk ён апісваў свае раннія ідэі пра мову:

Мацумота апісвае дызайн Ruby як падобны у сваёй аснове на Lisp, з аб'ектнай сістэмай як у Smalltalk і практычнай карыснасцю як у Perl.

Першы рэліз Ruby 0.95 быў абвешчаны ў японскіх групах навін 21 снежня 1995 года. На гэтай стадыі распрацоўкі ўжо прысутнічалі многія вядомыя функцыі Ruby, у тым ліку аб'ектна-арыентаваны дызайн, міксіны, ітэратары, замыканні, апрацоўка асаблівых сітуацый і збіральнік смецця.

Ужо ў 2000 г. Ruby стаў больш папулярным у Японіі, чым Python. Прыблізна ў 2005 годзе цікавасць да Ruby значна вырасла, дзякуючы  выпуску вэб-фрэймворка Ruby on Rails.

Асноўнай мэтай дызайну Ruby па словах Мацумота было стварыць мову, якой ён сам з задавальненнем карыстаўся б, мінімізуючы працу праграміста. На гутарцы Google Tech Talk у 2008 годзе ён казаў:

## Характарыстыкі 
Ruby з'яўляецца аб'ектна-арыентаванай у тым сэнсе, што кожнае значэнне з'яўляецца аб'ектам, нават класы і экзэмпляры прымітыўных тыпаў даных (напрыклад, лічбаў ці лагічных значэнняў). Пераменныя заўсёды ўтрымліваюць спасылкі на аб'екты. Кожная функцыя - гэта метад, і метады заўсёды выклікаюцца для аб'екта. Метады, вызначаныя ў вобласці верхняга ўзроўню, становяцца метадамі класа Object. Ruby падтрымлівае наследаванне з дынамічнай адпраўкай і міксінамі ў якасці рэалізацыі множнага наследавання.

Ruby з'яўляецца шматпарадыгменнай у тым сэнсе, што яна дазваляе працэдурнае праграмаванне (вызначэнне функцый/пераменных па-за класамі робіць іх часткай каранёвага, «самастойнага» аб'екта), з аб'ектна-арыентаваным (усё з'яўляецца аб'ектам) або функцыянальным праграмаваннем (Ruby мае ананімныя функцыі і замыканні; усе аператары маюць значэнні, а функцыі заўсёды вяртаюць рэзультат). Ruby мае дынамічную тыпізацыю, падтрымлівае метапраграмаванне, параметрычны палімарфізм і шматпаточнасць.

Мова мае вялікую стандартную бібліятэку, якая уключае модулі для HTTP, FTP, XML, RSS, JSON, YAML, CGI, OpenSSL.

## Прыклад 
Прыклад напісання праграмы Hello world:

```ruby
puts 'Hello World!'
```

## Спасылкі 
* Афіцыйны сайт Ruby 

; Артыкулы і кнігі

* Programming Ruby. The Pragmatic Programmer’s Guide 
* The Little Book Of Ruby. 2006—2008 (PDF)  

; Фрэймворкі

* Афіцыйны сайт Rails 
* Кіраўніцтвы 

Катэгорыя:Мовы вэб-праграмавання
Катэгорыя:Скрыптовыя мовы
Катэгорыя:Аб’ектна-арыентаваныя мовы праграмавання
Катэгорыя:Мовы з дынамічнай тыпізацыяй
Катэгорыя:Свабодныя кампілятары і інтэрпрэтатары
Катэгорыя:Мовы праграмавання высокага ўзроўню