Язык программирования Ruby появился от безысходности выбора подходящего языка. Его автору существующий Perl явно приглянулся с точки зрения названия (искаженное «жемчужина»), поэтому язык скромно стал называться «рубин». Автор, японец Мацумото, перебрал несколько языков для использования в качестве «истинно» объектно-ориентированных, но эстетство не позволило выделить никакой из них: Perl был объявлен игрушечным языком, Python – недостаточно реализующим идеи ООП. Так что автору пришлось брать в руки клавиатуру и создавать свой рубин самому, что и было закончено в 1995 году. С тех пор язык также активно развивается, имеет армию поклонников.

С момента рождения язык привлек внимание многих программистов, поклоняющихся учениям ООП, но японская документация отложила подробное знакомство еще на пару лет – японцы всегда славились такими фокусами. Зато потом развитие языка было не остановить: до сих пор выходят его модификации. Главное, как уже упоминалось, в Ruby стало полное соответствие ООП: все в нем является объектами, восходящими к изначальному классу Object, и даже переменные. Традиционных программистов это может напугать в первый раз, но затем такой подход неизменно оказывается очень перспективным в задачах администрирования и той же обработки текста. В целом, язык конкурирует на этом поприще с Perl, но изучать его будет проще, на первый взгляд. Несмотря на объекты повсюду, в языке можно реализовывать модули, использовать функции и, вообще, самые разные парадигмы программирования, включая метапрограммирование. В интерпретаторе реализован сборщик мусора, возможность загрузки расширений языка. Сам язык ориентировался на Linux, но теперь работает под всеми операционными системами. В отличие от C++, как и многие другие интерпретаторы, не поддерживает множественное наследование, зато использует «примеси» – механизм передачи данных посредством модулей. Есть в языке шаблоны программирования, контейнеры, невытесняющая многопоточность и независимость от платформы, понятный и удобный интерфейс API для вызова функций-методов. Блоки кода можно заключать в конструкции а-ля PL/M (do … end), а можно и в стиле Java. Вообще, создавать языки «с нуля» было труднее всего, а разработчикам позднее досталась более простая задача – выбирать самые лучшие «кусочки», чтобы создавать что-то новое. Главное при этом – не создать перекоса, сохранить лаконичность и простоту языка, исключить дублирующие возможности. В отношении Ruby автору это удалось в полной мере, учитывая популярность языка.

captcha