Rubyn: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Строка 132: Строка 132:
1. Для всех страничек сделать возможность выбора кодировки utf-8 или windows-1251
1. Для всех страничек сделать возможность выбора кодировки utf-8 или windows-1251


2. Добавить поддержку РубиНа '<source lang="rubyn">программа</source>'.
2. Добавить поддержку РубиНа '''<source lang="rubyn">программа</source>'''.


3. Пожелание непосредственно к автору учебника по Ruby (которому при его написании явно не хватало возможности работы с кириллицей) - пожалуйста, доработайте этот раздел, чтобы он стал полноценным первым учебником по РубиНу... :-)
3. Пожелание непосредственно к автору учебника по Ruby (которому при его написании явно не хватало возможности работы с кириллицей) - пожалуйста, доработайте этот раздел, чтобы он стал полноценным первым учебником по РубиНу... :-)

Версия от 08:16, 28 декабря 2007

Это первое пособие по работе с языком РубиН - RubyN - RubyN(ational) русскоязычным расширением популярного языка программирования Ruby. В целях экономии времени этот раздел представляет видоизмененный оригинальный викиучебник по Ruby.


Человек создан для творчества, и я всегда знал, что люблю творить. Увы, я обделён талантом художника или музыканта. Зато умею писать программы.

Я хочу, чтобы компьютер был моим слугой, а не господином, поэтому я должен уметь быстро и эффективно объяснить ему, что делать.

Юкихиро Мацумото

Программы должны быть написаны так, чтобы их могли читать люди, и лишь иногда так, чтобы их могли выполнять машины.

Абельсон и Сассман

Ру́биинтерпретируемый язык программирования высокого уровня. Обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, «сборщиком мусора» и многими другими возможностями, поддерживающими много разных парадигм программирования, прежде всего классово-объектную. Руби был задуман в 1993 году (24 февраля) японцем Юкихиро Мацумото, стремившимся создать язык, совмещающий все качества других языков, способствующие облегчению труда программиста.

Этот учебник намерен осветить все тонкости программирования на Ruby. Повествование идёт «по спирали»: начиная с самых общих понятий, темы рассматриваются по нескольку раз с нарастающей подробностью.

Учебник пока неполон. Читайте иноязычную литературу по Ruby и с новыми знаниями присоединяйтесь к написанию. Да-да, каждый может участвовать: научитесь работать в вики-среде, с остающимися вопросами выступайте на странице обсуждения учебника.

Отличия РубиНа от Ruby

Самое первое и главное отличие - при написании переменных, классов, методов Вы теперь не ограничены 128 первыми символами ANSI. Вам доступны все 256 8-битных символа. В данной реализации используется наиболее общеупотребительная кодировка Windows-1251.

Все ключевые слова, классы и медоты Ruby полностью доступны в Рубине, но кроме того все они имеют русскоязычные эквиваленты. Например: для ~ for

В Рубине в оригинальный язык Ruby добавлено одно ключевое слово equivalent ~ эквивалент, которое по функциональной нагрузке весьма схоже с ключевым словом alias ~ дримя, но все же имеет существенное отличие.

В дальнейшем, если вы читаете что-либо о языке Ruby, то все это в полной мере относится и к языку РубиН. В случае отличий это всегда будет оговорено и будет использовано название РубиН.

Основные свойства Ruby

Интерпретируемый язык:

Простое и быстрое программирование:

Объектно-ориентированное программирование:

Удобства:
  • Неограниченный диапазон значений целых чисел
  • Модель обработки исключений
  • Все операторы возвращают значения, даже управляющие структуры
  • Динамическая загрузка
  • Механизм перехвата исключений
  • Поддержка потоков; как собственных, так и систем семейства Unix
Недостатки:
  • Неуправляемость некоторых процессов (таких, как выделение памяти), невозможность задания низкоуровневых структур данных или подпрограмм
  • Невозможность компиляции и сопутствующей ей оптимизации программы
  • Следствие двух первых недостатков — весьма низкая скорость запуска и выполнения программ

Начало работы

От читателя требуется общее знание компьютеров, включая навыки работы с файловой системой и текстовыми файлами. Прежде чем начать программировать на Руби, нужно установить интерпретатор и обустроить для себя удобную среду для создания программ. Для испытания кода из учебника можно воспользоваться сетевым интерактивным интерпретатором.

Об установке и настройке рабочей среды Руби читайте приложение Шаблон:ССЫЛКА.

Программы на языке Ruby суть текстовые файлы, не подлежащие компиляции. Для их исполнения нужен интерпретатор, который мы уже установили. Чтобы запустить программу на Ruby, необходимо вызвать интерпретатор и передать ему имя файла с программой в качестве параметра.

Чтобы запустить программу с именем TecToBa9_nporpamma.rb (программы на Руби обычно имеют расширение .rb), в Unix-e нужно вызвать консоль и набрать:

% ruby TecToBa9_nporpamma.rb

или если Вы используете кодировку Windows-1251

% rubyn тестовая_программа.рб 

а сделав соответствующую ссылку и

% рубин тестовая_программа.рб

Также возможна настройка популярнейшей UNIX-оболочки mc таким образом, что вы сможете стартовать программу просто нажав Enter на имени программы.

Чтобы запустить программу из Windows нужно дважды кликнуть на файл с программой. Чтобы окно не исчезало и были видны результаты надо перед местами выхода из программы поставить команду ожидания ввода

СТДВВ.ввс или  СТДВВ.ввстр или STDIN.getc
Информация

Вот и добрались до еще одного существенного отличия РубиНа от Ruby - вышеуказанное пожелание очень полезно, когда вы работаете с полностью отлаженной программой, что на практике встречается довольно редко, поэтому в РубиН добавлен атрибут командной строки -z, который позволяет увидеть до закрытия окна результат выполнения Вашей программы. Насладившись созерцанием столь приятной картинки Вы сможете нажать любую клавишу (под Виндами) или клавишу Enter (под UNIX), и только после этого Ваше окошко исчезнет.

Информация

Именам программ в Windows принято давать расширение .rbw или .рбо, что позволяет использовать Windows-версию интерпретатора rubynw, который надоедающее окошко просто не вызывает. Интерпретатор rubyn предназначен для работы в консоли. Для интерпретатора rubynw вставлять код СТДВВ.ввстр ~ STDIN.getc перед местами выхода бесполезно

Первая программа

Откройте редактор и напишите программу. По традиции первая программа должна просто выводить приветствие миру:

п "Привет, Мир!"
вывстр "Привет, Мир!"

Сохраните её в файл привет_мир.рб и запустите. На экране будет красоваться надпись:

"Привет, Мир!"
Привет, Мир!

На этом традиционную часть можно считать выполненной.

Полигон для испытания программ

Чтобы посмотреть результат выполнения большинства примеров из учебника, не обязательно создавать файл. Достаточно использовать полигон для испытания программ на Руби irb, который входит во все дистрибутивы и сам написан на Руби. Запускается он командой

% irb

Полигон — это рубиговорящая командная строка. Она показывает вам результат выполнения каждой строки кода:

% irb(main):001:0> [1,2,3,4]
% => [1, 2, 3, 4]

Поскольку любая функция в Ruby может быть переопределена в любой момент, важнейшая часть написания большинства небольших программ — это именно эксперименты на полигоне. Посмотрим, например, какие есть методы у обычной строки:

% irb(main):002:0> "некий текст".методы
% => ["клон", "gem", "strip!", "член?", ...]

если же есть желание как-то упорядочить, то сделайте

% irb(main):002:0> "некий текст".методы.сорт
% => ["%", "*", "+", "<", ...]

Или посчитаем:

% irb(main):002:0> 14 * 5
% => 70

Для выхода с полигона — набрать выйти или exit.


Информация

К сожалению, с РубиНом этот номер (копирование-вставка) зачастую не проходит, т.к. кодировки Web-страниц не обязательно Windows-1251, так, к примеру эта страничка автоматом создана в utf-8.


Привет, Мир!

В связи с последним замечанием есть 3 пожелания к авторам русского викиучебника.

1. Для всех страничек сделать возможность выбора кодировки utf-8 или windows-1251

2. Добавить поддержку РубиНа

программа

.

3. Пожелание непосредственно к автору учебника по Ruby (которому при его написании явно не хватало возможности работы с кириллицей) - пожалуйста, доработайте этот раздел, чтобы он стал полноценным первым учебником по РубиНу...  :-)