Ruby — это язык программирования, который был изобретен Юкихиро «Мац» Мацумото в 1993 году с целью создать язык, который ему самому нравилось использовать. Мацумото был вдохновлен несколькими другими языками, такими как Perl, Lisp, Smalltalk и Eiffel, но он также ввел некоторые отличительные особенности, такие как блоки, миксины, символы и метапрограммирование. Ruby часто называют языком элегантности и производительности, поскольку он позволяет разработчикам писать выразительный, краткий и читаемый код, который может решать различные проблемы и задачи.

Ruby завоевал популярность и признание с годами, особенно после выпуска веб-фреймворка Ruby on Rails в 2005 году, который ускорил и упростил веб-разработку с помощью Ruby. Ruby on Rails следует принципам соглашения по конфигурации и не повторяется, что уменьшает объем кода и конфигурации, необходимых для создания веб-приложений. Ruby on Rails также поддерживает такие функции, как создание шаблонов, миграцию, проверки, ассоциации и тестирование, которые упрощают общие задачи веб-разработки. Ruby on Rails использовался для создания множества успешных веб-сайтов и приложений, таких как Twitter, GitHub, Shopify, Airbnb и Basecamp.

На протяжении многих лет Ruby развивался через несколько версий и обновлений, добавляя новые функции и возможности, сохраняя при этом совместимость с предыдущими версиями. Последняя версия Ruby — 3.1.0, выпущенная в декабре 2021 года. Ruby 3.1.0 содержит несколько улучшений и дополнений к языку и стандартной библиотеке, например:

  • RBS: эта функция позволяет писать сигнатуры типов для кода Ruby, используя отдельный файл с расширением .rbs. RBS можно использовать для документирования типов переменных, параметров, возвращаемых значений и констант в коде Ruby, а также для выполнения статической проверки типов с помощью таких инструментов, как Steep или Sorbet. Например, мы можем написать:
class Person attr_reader name: String attr_reader age: Integer def initialize(name: String, age: Integer) @name = name @age = age end end

в файле person.rbs для определения сигнатур типов для класса Person.

  • YJIT: эта функция представляет собой новый JIT-компилятор для Ruby, целью которого является повышение производительности выполнения кода Ruby. YJIT основан на новой конструкции, в которой используются базовые блоки…