Основные особенности Ruby
Ruby — язык программирования (ЯП), обладающий следующими особенностями:
- строгая динамическая типизация;
- поддержка прямых системных вызовов;
- эффективная работа со строками и регулярными выражениями;
- возможность быстро отслеживать изменение поведения создаваемой программы в процессе разработки;
- простой синтаксис.
Ruby относится к категориям высокоуровневых, рефлективных и интерпретируемых языков. В нем реализована концепция объектно-ориентированного программирования (классы с полями и методами, наследование, полиморфизм, инкапсуляция, примеси, методы-одиночки, итераторы, замыкания и т.д.).
К уникальным свойствам языка можно отнести:
- целые числа могут иметь неограниченную длину;
- собственная модель работы с исключениями;
- наличие возвращаемых значений у всех операторов;
- собственная реализация потоков (плюс поддержка потоков UNIX).
В то же время специалисты указывают на следующие недостатки языка:
- невозможность непосредственного управления памятью;
- трудности работы с низкоуровневыми структурами;
- отсутствие механизмов оптимизации программ, а также компиляции.
Следствием перечисленных недостатков является сравнительно низкая скорость запуска и выполнения программ.
В настоящее время Ruby поддерживается во всех популярных операционных системах для персональных компьютеров (Windows, Linux, MacOS). Он применяется не только для веб-разработки, но и в качестве скриптового языка для создания административных утилит и настройки приложений.
В качестве скриптового языка Ruby также задействован в таких продуктах, как
- RPG Maker (RPG Maker XP);
- RGSS (Ruby Game Scripting System);
- Amarok;
- SketchUp;
- KOffice;
- WATIR (англ. Web Application Testing in Ruby);
- Google SketchUp ;
- XChat.
История развития Ruby
Автором Ruby является японский программист Юкихиро Мацумото, начавший работу над этим проектом в 1993 г. В качестве основной цели он выбрал создание языка, с помощью которого можно было бы разрабатывать мощные программы с максимально понятным исходным кодом. Скорость работы программы при этом считалась менее существенным фактором, чем скорость разработки и доступность синтаксиса. В этом смысле Ruby напоминает язык Perl, где акцент также сделан на однозначность трактовки исходного кода.
Рисунок 1. Юкихиро Мацумото. Автор24 — интернет-биржа студенческих работ
Ruby быстро стал популярным языком. Во второй половине 1990-х и начале 2000-х вышло несколько десятков учебников по нему. В Японии он стал более востребованным, чем даже набравший в то же время огромную популярность Python. С середины 2000-х Ruby приобретает множество приверженцев в США и Европе. С появлением фреймворка Ruby-On-Rails (RoR), пригодного для разработки веб-приложений, язык становится одним из лидеров отрасли.
В начале 2010-х гг. количество программистов, пишущих на Ruby, утроилось по сравнению в концом 1990-х. Учебники и руководства по нему в это время были переведены на основные национальные языки, в том числе русский. В это же время в развитии Ruby произошла некоторая заминка: до версии 1.8 Ruby сохранял совместимость с собственным ранее написанном кодом. Затем разработка разделилась на ветвь, поддерживающую прежний стандарт и версию 1.9.*, (предтеча Ruby 2), где было решено отказаться от устаревшего наследия.
В 2013 г. вышла версия Ruby 2.0. В 2018 г. в версии 2.6 была предпринята попытка повысить скорость работы программ за счет внедрения JIT-компиляции.
Ruby используется в правительственных организациях США (NASA, NOAA - наблюдения за океаном и атмосферой), корпорации Motorola, Toronto Rehab, в крупных веб-порталах, таких, как GitHub, SoundCloud, Groupon, Twitch.tv и т.д.
В настоящее время рост популярности Ruby несколько приостановился, но он остается востребованным языком для прототипирования и запуска стартапов.
Рисунок 2. Популярность языков для веб-разработки. Автор24 — интернет-биржа студенческих работ
Примеры программы на Ruby
Ruby — объектно-ориентированный язык. В нём даже примитивы (строки, числа) выражены как объекты. Каждая функция является методом того или иного объекта. Переменные в Ruby представляют собой ссылки на объекты, а присваивание представляет собой копирование ссылок. Особенностью Ruby является то, что методы можно добавлять динамически в любые классы и объекты. Например, типичная программа-приветствие может выглядеть так:
# Комментарии оформляются с помощью знака #
# Знак «=» - оператор присваивания.
# Строки формируются с помощью кавычек.
str = "Привет" # Инициируется переменная str, ее тип String.
# Функция объявляется с помощью ключевого слова def.
def str.bye # Добавляем метод bye к переменной str.
# После имени метода можно в круглых скобках перечислить передаваемые функции параметры.
"Пока!" # Функция возвращает строку "Пока!"
end # Ключевое слово end используется для завершения инструкций Ruby.
# С помощью стандартного метода puts
# вызываем str.bye и выводим возвращаемое значение на консоль.
puts str.bye #=> Пока!
Рисунок 3. Вычисление факториала на Ruby. Автор24 — интернет-биржа студенческих работ