Ruby
Ruby | |
---|---|
![]() | |
Семантыка | мультыпарадыгменная: аб’ектна-арыентаваная, функцыянальная, працэдурная |
З’явілася ў | 1995 |
Аўтар(ы) | Юкіхіра «Matz» Мацумота |
Пашырэнне файлаў | .rb |
Тыпізацыя даных | дынамічная, строгая |
Асноўныя рэалізацыі | Ruby MRI, JRuby, IronRuby |
Зведала ўплыў | Perl, Smalltalk, Ada, C++, Lisp, Lua, Python |
Паўплывала на | Clojure, Crystal, Elixir, Rust, Swift |
Ліцэнзія | Ліцэнзія Ruby[d], GNU General Public License, version 2.0[d][1] і 2-пунктавая ліцэнзія BSD[d][2] |
Сайт | ruby-lang.org/en/ |
Ruby (Ру́бі, ад англ.: ruby — рубін) — інтэрпрэтаваная мультыпарадыгменная мова праграмавання, распрацаваная Юкіхіра «Matz» Мацумота ў сярэдзіне 1990-х ў Японіі. Пры стварэнні мовы быў зроблены акцэнт на прадукцыйнасць і прастату праграмавання.
У мове рэалізавана шматпаточнасць, строгая дынамічная тыпізацыя, выкарыстоўваецца аўтаматычны збіральнік смецця і кампіляцыя just-in-time. Мова падтрымлівае некалькі парадыгмаў праграмавання, уключаючы працэдурнае, аб’ектна-арыентаванае і функцыянальнае праграмаванне. Па словах стваральніка, на Ruby паўплывалі Perl, Smalltalk, Eiffel, Ada і Lisp.[3]
Кросплатформавая рэалізацыя інтэрпрэтатара мовы цалкам свабодная.[4]
Гісторыя
[правіць | правіць зыходнік]Па словах Юкіхіра Мацумота Ruby была задумана ў 1993 годзе. У 1999 годзе ў спісе рассылкі ruby-talk ён апісваў свае раннія ідэі пра мову:
![]() |
Я размаўляў са сваім калегам аб перспектывах аб’ектна-арыентаванай скрыптав��й мовы. Я ведаў Perl (Perl4, а не Perl5), але яна мне не вельмі падабалася, таму што выглядала лялечнай мовай (і выглядае дасюль). ... Я ведаў Python у той час. Але мне яна не падабалася, таму што я не думаў, што гэта сапраўдная аб’ектна-арыентаваная мова — аб’ектна-арыентаваныя магчымасці выглядалі дадаткамі да мовы. Будучы моўным маньякам і фанатам аб’ектна-арыентаванага праграмавання на працягу 15 гадоў, я вельмі хацеў сапраўдную аб’ектна-арыентаваную, простую ў выкарыстанні скрыптавую мову. Я шукаў такую, але не мог знайсці. Таму я вырашыў стварыць яе. |
![]() |
Мацумота апісвае дызайн Ruby як падобны у сваёй аснове на Lisp, з аб'ектнай сістэмай як у Smalltalk і практычнай карыснасцю як у Perl.[5]
Першы рэліз Ruby 0.95 быў абвешчаны ў японскіх групах навін 21 снежня 1995 года. На гэтай стадыі распрацоўкі ўжо прысутнічалі многія вядомыя функцыі Ruby, у тым ліку аб'ектна-арыентаваны дызайн, міксіны, ітэратары, замыканні, апрацоўка асаблівых сітуацый і збіральнік смецця.
Ужо ў 2000 г. Ruby стаў больш папулярным у Японіі, чым Python.[6] Прыблізна ў 2005 годзе цікавасць да Ruby значна вырасла, дзякуючы выпуску вэб-фрэймворка Ruby on Rails.
Асноўнай мэтай дызайну Ruby па словах Мацумота было стварыць мову, якой ён сам з задавальненнем карыстаўся б, мінімізуючы працу праграміста. На гутарцы Google Tech Talk у 2008 годзе ён казаў:
![]() |
Я спадзяюся ўбачыць, як Ruby дапаможа кожнаму праграмісту ў свеце быць прадукцыйным, атрымліваць задавальненне ад праграмавання і быць шчаслівым. Гэта асноўная мэта мовы Ruby. |
![]() |
Характарыстыкі
[правіць | правіць зыходнік]Ruby з'яўляецца аб'ектна-арыентаванай у тым сэнсе, што кожнае значэнне з'яўляецца аб'ектам, нават класы і экзэмпляры прымітыўных тыпаў даных (напрыклад, лічбаў ці лагічных значэнняў). Пераменныя заўсёды ўтрымліваюць спасылкі на аб'екты. Кожная функцыя - гэта метад, і метады заўсёды выклікаюцца для аб'екта. Метады, вызначаныя ў вобласці верхняга ўзроўню, становяцца метадамі класа Object. Ruby падтрымлівае наследаванне з дынамічнай адпраўкай і міксінамі ў якасці рэалізацыі множнага наследавання.
Ruby з'яўляецца шматпарадыгменнай у тым сэнсе, што яна дазваляе працэдурнае праграмаванне (вызначэнне функцый/пераменных па-за класамі робіць іх часткай каранёвага, «самастойнага» аб'екта), з аб'ектна-арыентаваным (усё з'яўляецца аб'ектам) або функцыянальным праграмаваннем (Ruby мае ананімныя функцыі і замыканні; усе аператары маюць значэнні, а функцыі заўсёды вяртаюць рэзультат). Ruby мае дынамічную тыпізацыю, падтрымлівае метапраграмаванне, параметрычны палімарфізм і шматпаточнасць.
Мова мае вялікую стандартную бібліятэку, якая уключае модулі для HTTP, FTP, XML, RSS, JSON, YAML, CGI, OpenSSL.
Прыклад
[правіць | правіць зыходнік]Прыклад напісання праграмы Hello world:
puts 'Hello World!'
Зноскі
- ↑ https://www.ruby-lang.org/ja/news/2013/06/30/we-retire-1-8-7/
- ↑ https://www.ruby-lang.org/ja/news/2011/10/31/ruby-1-9-3-p0-is-released/
- ↑ About Ruby (англ.). Праверана 22 ліпеня 2023.
- ↑ Ліцэнзія Ruby (англ.) (txt). Праверана 22 ліпеня 2023.
- ↑ Matsumoto, Yukihiro. Re: Ruby's lisp features. (англ.)(недаступная спасылка) (13 лютага 2006). Архівавана з першакрыніцы 16 студзеня 2007. Праверана 22 ліпеня 2023.
- ↑ Yukihiro Matsumoto. Programming Ruby: Forward (англ.) (1 кастрычніка 2000). Праверана 22 ліпеня 2023.
Спасылкі
[правіць | правіць зыходнік]- Афіцыйны сайт Ruby (англ.)
- Артыкулы і кнігі
- Programming Ruby. The Pragmatic Programmer’s Guide (англ.)
- The Little Book Of Ruby. 2006—2008 (PDF) Архівавана 9 кастрычніка 2013. (англ.)
- Фрэймворкі
- Афіцыйны сайт Rails (англ.)
- Кіраўніцтвы (англ.)