Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions Ruby — Уикипедия

Ruby

от Уикипедия, свободната енциклопедия

Ruby
Парадигма: обектно-ориентиран
Излиза през: 1995
Разработен от: Юкихиро Мацумото
Система типове: динамична
Главни реализации:
Диалекти:
Повлиян от: Smalltalk, Perl, Lisp, Python, Clu, Dylan
Повлиял: Groovy
Сайт: www.ruby-lang.org


Ruby (произнася се руби, на български означава рубин) е интерпретируем, интерактивен, обектно-ориентиран език за програмиране. Комбинира синтаксис от много други езици, сред които Smalltalk, Perl, Lisp и Python. Основната му имплементация е безплатна и с отворен код.

Съдържание

[редактиране] История

Езикът е създаден от японеца Юкихиро Мацумото, по прякор „Мац“. Той започва работа по Ruby през 1993. През 1995 излиза първата версия на езика.

Името на езика произлиза от зодиакалния камък на приятел и колега на Юкихиро.

До октомври 2006 последната стабилна версия е 1.8.5. Клонът 1.8.х е стабилен, разработчиците работят в клона 1.9, който след стабилизирането си ще се превърне в 2.0.

[редактиране] Мотивация

Водещият принцип на Мац при създаването на езика е да направи програмистите щастливи чрез намаляване на ненужната работа, следвайки принципите за дизайн на потребителски интерфейс[1]. Мац твърди, че дизайнът на приложения трябва да зависи от човешките, а не от компютърните нужди[2].

Мац иска Ruby да следва принципът на най-малка изненада. Това значи, че поведението на езика трябва да е интуитивно и той трябва да работи, както програмистът би очаквал. Възможно е крайният резултат да е „принципът на най-малка изненада за Мац“, но огромен брой програмисти по света твърдят, че езикът съответства и на техния модел на мислене.

[редактиране] Семантика

Ruby е обектно-ориентиран. Всяка данна, била тя променлива, константа, или даже литерал е обект. Всяка функция е метод. Променливите са винаги псевдоними на обектите и никога самите обекти.

Въпреки че Ruby не поддържа множествено наследяване, класовете могат да импортират модули и поддържат динамично делегиране.

Според често задаваните въпроси от документацията на Ruby „Ако харесвате Perl, ще започнете да харесвате и Ruby и лесно ще навлезете в неговата семантика. Ако харесвате Python може би ще се отдръпнете заради огромната разлика във философията между Python и Ruby/Perl“[3]

[редактиране] Характеристики

  • обектно-ориентиран
  • четири нива на достъп: глобално, класово, инстанция и локално
  • обработка на изключения
  • итератори и анонимни функции
  • вграден синтаксис за боравене с регулярни изрази
  • предефиниране на операторите
  • вградено автоматично управление на паметта
  • многоплатформеност
  • поддържане на многонишково програмиране с обособена разлика между нишки и фибри
  • интроспекция, рефлексия и метапрограмиране
  • богата стандартна библиотека

Ruby все още не поддръжка цялостно Уникод, а само частично UTF-8.

[редактиране] Хранилища и библиотеки

Ruby Application Archive (RAA) и RubyForge са хранилища с повече от 2000 приложения и библиотеки.

RubyGems е стандартният пакетен управител за инсталиране на допълнителни библиотеки. По употреба силно прилича на портовата система, срещана в различните BSD дистрибуции.

[редактиране] Примерен код

[редактиране] Hello World

 puts "Hello World!"

[редактиране] Прости функционалности

# напомняме, че всичко е обект:
-199.abs                                       # 199
"ruby is cool".length                          # 12
"Rick".index("c")                              # 2
"Nice Day Isn't It?".split(//).uniq.sort.join  # " '?DINaceinsty"

[редактиране] Реализация

Ruby има две основни реализации: официалният интерпретатор, който е и най-широко използван, и JRuby - интерпретатор написан на Java.

[редактиране] Операционни системи

Ruby се разпространява за следните операционни системи:

  • повечето версии на Unix, включително Linux
  • DOS
  • Microsoft Windows 95/98/XP/NT/2000/2003/Vista
  • Mac OS X
  • BeOS
  • Amiga
  • MorphOS
  • Acorn RISC OS
  • OS/2
  • Syllable

[редактиране] Лиценз

Интерпретаторът и библиотеките са с двоен лиценз: GPL и Ruby License [4].

[редактиране] Бележки

  1. Езикът за програмиране Ruby от Юкихиро Мацумото 2000-06-12 (informit.com)
  2. Философията на Ruby, Разговор с Юкихиро Мацумото, от Бил Венърс 2003-09-29 (Artima Developer)
  3. Сравнителна характеристика на Ruby и Python (rubygarden.org)
  4. Ruby License (ruby-lang.org)

[редактиране] Външни препратки

Ada | ALGOL | APL | AspectJ | BASIC | COBOL | C | C++ | C# | D | ColdFusion | Delphi | Eiffel | Forth | FORTRAN | Haskell | Java | JavaScript | Jython | Lisp | Logo | Lua | Mesa | ML | Modula-2 | Oberon | Pascal | Objective-C | Perl | PHP | PL/I | PostScript | Powerbuilder | Prolog | Python | Ruby | Scheme | Smalltalk | Tcl/Tk | Visual Basic

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu