С этим языком я мимолетно сталкивался и раньше — например, Puppet и его модули были написаны на Ruby; язык шаблонов Liquid, который используется в Jekyll, имеет схожий с ним синтакс; недавно локально запускал Discourse, который на рельсах написан.

У меня было о нем впечатление, что это просто такой “японский питон”, который выстрелил после Ruby On Rails, а сейчас уже движется тупо по инерции, ведь для чего-то нового рельсы вряд ли будет наверху списка.

Но вот для сайтика захотел написать проверку, что правильно id телеграммовских сообщений проставил для комментов, и решил, что раз есть готовое окружение под Jekyll с Ruby, то можно и этот скрипт на Ruby написать.

ChatGPT выдал какую-то полную дичь с кучей бойлерплейта. Потаскал оттуда полезные вызовы, но в целом написал сам.

Язык… своеобразный. Самые отталкивающие моменты:

  1. необходимость закрывающих end (да и в целом лишние церемонии);
  2. очень непонятные ошибки (уровня “ты где-то end забыл” на последней строке, с нулем гипотез где);
  3. много лишнего/вещей о которых надо помнить: unless, когда есть if и not, странности синтаксиса (вроде того, что в хэш-таблицах по умолчанию будут символы, а не строки; странные правила для return или разрешение вещей типа sum sum(3, 4), 5). Добило меня, что если написать переменную с заглавной буквы, то это будет константа с глобальной видимостью (а по умолчанию в контексте функции ничего извне не видно).

Есть и хорошие идеи (например, ? на конце у методов, возвращающих bool и ! у методов, меняющих содержимое коллекции на месте), но в целом я не ощутил, что у языка есть какие-то киллер-фичи.