4.5. Ruby

Ruby — интерпретируемый язык высокого уровня для быстрого и удобного объектно-ориентированного программирования. Ruby обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, " сборщиком мусора " и многими другими возможностями. Многие особенности синтаксиса и семантики языка Perl заимствованы в Ruby.

Первая общедоступная версия Ruby появилась в 1995 г.

Ruby - полностью объектно-ориентированный язык:

  1. Все данные являются объектами, в отличие от многих других языков, где существуют примитивные типы.

  2. Каждая функция является методом.

  3. Переменные Ruby содержат не сами объекты, а ссылки на них.

  4. Присваивание - это не передача значения, а копирование ссылки на объект.

  5. В Ruby можно добавлять методы не только в любые классы, но и в любые объекты. Например, можно добавить к некоторой строке произвольный метод.

Массивы в Ruby могут автоматически изменять размер, могут содержать любые элементы и язык предоставляет мощные средства для их обработки.

Ruby поставляется с большой стандартной библиотекой. Это, прежде всего, библиотеки для работы с различными сетевыми протоколами на стороне сервера и клиента, средства для работы с различными форматами представления данных (XML, XSLT, YAML, PDF, RSS, CSV, WSDL). Также есть библиотеки для работы с архивами, датами, кодировками, матрицами, средства для системного администрирования, распределенных вычислений, поддержки многопоточности и т. д.

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

К недостаткам интерпретатора Ruby можно отнести следующие:

  1. Невысокая скорость работы.

  2. Отсутствие поддержки потоков операционной системы (для Unix-подобных операционных систем есть поддержка процессов ОС), есть в экспериментальной версии 1.9.

  3. Отсутствие встроенной поддержки юникода (возможна работа с использованием дополнительных библиотек, есть в экспериментальной версии 1.9).

  4. Отсутствие компиляции в байткод. (При этом есть возможность компилировать Ruby в Java и .NET байткод, используя компилятор JRuby и Ruby.NET). В экспериментальную версию 2.0 входит виртуальная машина YARV, компилирующая Ruby в байткод и существенно ускоряющая исполнение.