Ruby

Матеріал з Файна Меморії
Перейти до навігації Перейти до пошуку

Ruby (Рубі) - об'єктно-орієнтована мова програмування, з динамічною типізацією, рефклесією і іншими фішками. Дуже підходить для швидкої розробки різних фєтілющечок. Спиздив Взяв багато чого від Python, Perl, Smalltalk та інших мов.

Огляд[ред.]

Історія створення[ред.]

Був собі такий студент Юкіхіро Мацумото, він дуже цікавився мовами програмування і ось у 1993 році він почав розробку свого Ruby. Цілі якими керувався Юкіхіро при створенні Рубі: ruby має бути інтерпретованою об'єктно-орієнтованою мовою програмування, з синтаксисом як перемішок Perl та Python.[1] І ось в 1995 році він вийшов.

Фєйлофосєя Рубіка[ред.]

Він пиздець який об'єктно-орієнтований (Юкіхіро - ще той фанат ООП). Всі функції є методами, всі данні є об'єктами, ну і інший анти-ФП маразм. Має дуже дурні змінні:

a = "Москалі маздай"
b = a
a[0] = 'Т'
puts b  #виведе "Тоскалі маздай"


Тобто змінні - не об'єкти, а посилання на них. Коли ми змінили значення змінної a, змінилась і b.

Переваги[ред.]

  • Простий, зрозумілий синтаксис.
  • Багатопоточність
  • «Збиральник сміття».
  • Два види виділення блоків:
{
#як в Сі
}
########
do
#Як в поцкалі
end
  • Обробка виключень в стилі Жаби та Python.
  • Дуже кроссплатформний

Приклади коду[ред.]

Робота з файлами:

 
File.open('shit.dat', 'w') {|file|
   file.puts 'Shit, yeah'
 }


Обробка виключень:

 raise ShitError, "OH, SHI--", caller

І так далі.

Посилання[ред.]

Примітки[ред.]

  1. Спиздив таки ^__^
{{#if: |}} {{#if:Ассемблер · Сі · C++ · Lisp · Haskell · Java · Javascript · Поцкаль · Perl · PHP · Python · Ruby · Tcl · Visual Basic | {{#if:Промислові |}} {{#if:Programming.jpg|}} }} {{#if:HQ9+ · INTERCAL · Brainfuck · Befunge · Malbolge · Piet · Spoon · Whitespace | {{#if:Езотеричні |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: | {{#if: |}} }} {{#if: |}}