Объектная ориентированность Ruby

 

Начнем с того, что Ruby является полностью объектно-ориентированным языком. Каждое значение является объектом, даже простые числовые литералы и значения true, false и ni 1 (ni 1 — это специальное значение, свидетельствующее собственно об отсутствии какого-либо значения; это Ruby-версия null). Давайте применим к этим значениям метод под названием class. В Ruby комментарии начинаются с символа #, а стрелки вида => показывают в комментариях значения, возвращенные комментируемым кодом.

 

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

 

Это сделано намеренно, все дело в том, что Ruby очень строг в отношении инкапсуляции своих объектов — доступ к внутреннему состоянию объекта за его пределами отсутствует. Любой подобный доступ должен иметь посредника в виде метода доступа, такого как показанный выше метод cl ass.

 

Юкихиро Мацумото (Yukihiro Matsumoto), известный англоязычному Ruby-сообществу как Мац (Matz), является создателем Ruby и автором справочника по этому языку — «Ruby in a Nutshelb (OReilly) (который с обновлениями и дополнениями и превратился в эту книгу). Он говорит.

 

«До создания Ruby я изучил множество языков, но никогда не испытывал от них полного удовлетворения. Они были уродливее, труднее, сложнее или проще, чем я ожидал. И мне захотелось создать свой собственный язык, который смог бы удовлетворить мои программистские запросы. О целевой аудитории, для которой предназначался язык, я знал вполне достаточно, поскольку сам был ее представителем. К моему удивлению, множество программистов по всему миру испытали чувства, сходные с моими. Открывая для себя Ruby и программируя на нем, они получают удовольствие.

 

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

 

Основная философия, заложенная Мацумото в конструкцию Ruby, сводится к его часто цитируемому высказыванию.

«Ruby предназначен для того, чтобы сделать программистов счастливыми».