Ruby в качестве языка программирования существует довольно давно. Впервые работа над редакцией этого известного на сегодня языка началась в 1993 году. Первая первая официальная версия вышла в 1995 году. Создателем языка является Юкихиро Мацумото.
Ruby - это богатый, бесплатно распространяемый, простой, гибкий, компактный и объектно-ориентированный язык написания сценариев. В последнее время пользуется огромной популярностью в сети. Этой популярностью он отчасти обязан очень мощной платформе для разработок Web-приложений, Rails, написанной на Ruby. Rails, или Ruby on Rails (ROR), как его называют, обеспечивает очень мощную платформу для быстрой и эффективной разработки Web-приложений. Он хорошо масштабируем, и многие существующие Web-сайты созданы с использованием Ruby on Rails.
Помимо использования Ruby on Rails как платформы разработок для Web-приложений, существует другая, менее известная сторона Ruby. Ruby - это мощный язык для написания скриптов, стоящий наравне с Python и Perl. У него колоссальные возможности, обеспечиваемые встроенными и внешними библиотеками, мощность которых может быть использована для решения проблем написания сценариев, - такие проблемы могут неожиданно возникнуть в любом рабочем окружении.
Основные характеристики Ruby следующие [1]:
- простой синтаксис, частично заимствованный из таких языков, как Ada и Eiffel;
- поддержка исключений;
- переопределение операторов;
- чистый, полностью объектно-ориентированный язык. Все данные являются объектами, без исключений;
- возможность добавлять методы к объекту или к классу во время выполнения так, что при необходимости, два экземпляра одного класса могут отличаться друг от друга;
- поддерживается только единственное наследование. Но существует понятие модуля, как коллекции методов, которые можно импортировать в класс. Существует мнение, что такой способ — более красивый, чем множественное наследование, которое сложнее и реже используется;
- анонимные функции и замыкания (closures);
- возможно структурировать код в блоки { ... } или do ... end, которые можно передавать методам в качестве аргумента;
- сборщик мусора;
- возможность написания расширений на C, с использованием специального API, в котором поддерживается сборка мусора. Есть поддержка генератора C-расширений для скриптовых языков SWIG;
- поддерживается два типа целых чисел: малые Fixnum и большие Bignum. При этом программисту не нужно беспокоиться о том, какой тип использовать, преобразование происходит автоматически;
- не требуется объявление переменных. Область видимости переменной описывается в ее имени с помощью следующего соглашения: var — локальная переменная, @var — переменная экземпляра класса, $var — глобальная переменная;
- независимая от платформы поддержка многопоточности;
- язык портирован на все используемые в настоящее время платформы: Linux и другие разновидности UNIX, DOS, все версии MS Windows, MacOS, BeOS, OS/2 и т.д.
Данный язык дает возможность применить любую из парадигм программирования с одинаковым успехом. Из них стоит выделить следующее: процедурный стиль программирования; объектно-ориентированный подход; функциональный подход.
Разработчику дозволено выбрать ту парадигму, которая ему более близка. При этом следует учитывать, что его набор инструментов от этого будет становиться ограниченнее или слабее. Язык программирования Руби придерживается только такого выбора.
В большинстве случаев данный язык получил известность за счет простоты разработки всевозможных дополнений к нему. Число фреймворков и библиотек неизменно возрастает, а задачи, решаемые ними самостоятельно, дают возможность разработчикам в самые короткие сроки довести продукт до готового состояния. Зачастую программирование Руби ассоциируется с созданием веб-приложений, а также поддержкой функционирования всевозможных сайтов и интернет-платформ. Данную нишу язык смог занять за счет собственной простоты и скорости разработки. Стоит отметить, что альтернативные платформы (к примеру, Java), нуждаются в значительно большем багаже знаний и опыте, предназначенных для решения аналогичных задач [2].
Еще одна немаловажная составляющая экосистемы языка Ruby, а также его веб-ориентированной части, состоит в фреймоврках и библиотеках, предназначенных для написания тестов. RubyOnRails использует философию BDD (behavior-driven development). Это значит, что сначала программист разрабатывает последовательность тестов, которые описывают ожидаемое поведение программы. Затем он создает код, необходимый для успешного прохождения этих тестов. Негласным стандартом в данной области считается RSpec. Он представляет собой фреймворк, который дает возможность писать тест-кейсы на языке, понятном даже неопытным пользователям [4].
Язык Ruby позволяет использовать кодировку UNICODE, поэтому программа может быть написана даже на русском языке, включая названия классов, методов, переменных. Основные принципы Ruby – минимальное количество кода при максимальной его выразительности, а код программы должен восприниматься как код на естественном языке. Кажущаяся избыточность способов реализации одной и той же программы (за что Ruby критикуют те, кто его не использует) обусловлена предоставлением программисту возможности выбрать те имена методов, которые являются наиболее выразительными в данном конкретном случае [3].
Таким образом, язык программирования Ruby – достаточно интерпретируемый язык высокого уровня, имеющий динамическую типизациею и независимую от исполняющей среды реализацию многопоточности.
Список использованных источников
Ruby и Web-приложения [Электронный ресурс] Режим доступа: http://www.razlib.ru/kompyutery_i_internet/programmirovanie_na_jazyke_ruby/p23.php Дата обращения: 24.12.2017
Крыжановский, Е. Что такое «Руби» (Ruby)? Язык программирования «Руби» [Электронный ресурс] Режим доступа: http://bezwindowsa.ru/programmy/chto-takoe-rubi-ruby-yazyik-programmirovaniya-rubi.html Дата обращения: 24.12.2017
Самарев, Р.С. Основы языка программирования Ruby [Текст]: учебное пособие / Р. С. Самарев. — М. : Издательство МГТУ им. Н.Э. Баумана, 2015. – с. 98.
Язык Ruby [Электронный ресурс] Режим доступа: http://kolia.pp.ru/programming/060521_morev_rails/#ruby-lang Дата обращения: 24.12.2017