ГлавнаяБлогПишите скрипты на Ruby: экономия токенов и читаемость кода
Алгоритмы

Пишите скрипты на Ruby: экономия токенов и читаемость кода

Почему скрипты на Ruby экономят токены и упрощают код-ревью. Сравнение с Python и bash. Практические советы для настройки агента.

Al
Редакция Algolitalgolit.ru
7 мин чтения6 августа 2026 г.

Почему скрипты на Ruby экономят токены и упрощают код-ревью

Вы когда-нибудь задумывались, почему ваш coding agent пишет громоздкие скрипты на Python, когда можно сделать то же самое на Ruby в два раза короче? В этой статье я разберу эксперимент, который показывает реальную экономию токенов и влияние на читаемость кода. Вы узнаете, как простая инструкция в конфиге агента может сократить объём кода на 120% и сэкономить ваше время на ревью.

Идея пришла от Люсьена Гинды: он предложил вставлять в инструкции агента правило писать одноразовые скрипты на Ruby. Его аргумент — простота ревью, ведь он ежедневно читает Ruby. Но я решил проверить, сколько токенов это реально экономит.

Настройка эксперимента: как я измерял экономию

Я взял четыре типовые задачи: обработка логов, переименование ключей в конфигах, перенумерация скриншотов и преобразование CSV. Каждую задачу агент решал на Ruby, Python, bash и JavaScript. Все реализации проверялись на идентичность результата — байт в байт.

Эксперимент проводился в двух средах: чистой (без конфигов) и с моим реальным окружением. Важно: агент не получал само правило, только название языка и ограничение стандартной библиотекой.

Базовый результат: Python побеждает по умолчанию

Без указания языка агент всегда выбирал Python. Причина — стандартная библиотека, предустановленная везде. Но это не значит, что Python оптимален. Сравните размеры кода для нейтрального запроса:

Язык      Байт    Относительно Ruby
Ruby      1660    0%
Python    3644    +120%
bash      2333    +41%
JS        3231    +95%

Ruby оказался самым коротким, а Python — в два раза больше. Но в моём реальном окружении разрыв сокращался до 18% из-за других настроек.

Пример: миграция конфигов на Ruby

Вот как выглядит решение задачи на Ruby без лишних обёрток:

root = ARGV[0]
Dir.glob(File.join(root, "conf", "*.env")).sort.each do |path|
  content = File.read(path)
  renamed = 0
  rewritten = content.lines.map do |line|
    if line.start_with?("CACHE_TTL=")
      renamed += 1
      "TTL_SECONDS=" + line[("CACHE_TTL=".length)..]
    else
      line
    end
  end.join
  File.write(path, rewritten) if renamed > 0
  puts [File.basename(path), renamed].join("\t")
end

Это вся программа. Читается легко, логика прозрачна. А вот Python-версия той же задачи занимает 38 строк, из-за ручного управления переводами строк и защитой if __name__.

Почему Python раздувается

Основные причины — докстринги, main(), импорты и обработка окончаний строк. В моём замере докстринги составляют 8% объёма. Уберите их — и разрыв сократится до 101%.

Влияние коротких инструкций на размер кода

Я проверил, как разные формулировки влияют на размер. Вот лестница инструкций:

  • Без инструкции: 10868 байт суммарно
  • "Будь кратким.": 6358 байт (-41%)
  • "Гольфуй.": 3880 байт (-64%)
  • "Кратчайший код.": 4057 байт (-63%)
  • "Напиши кратчайший код на X.": 3720 байт (-66%)
  • Полное правило: 3323 байт (-69%)

Два слова "Гольфуй." дают почти максимум экономии. При этом "Будь кратким" менее эффективно, потому что "гольф" — это термин, подразумевающий агрессивное сжатие.

Цена краткости: читаемость страдает

Вот тот же скрипт на Ruby после инструкции "Гольфуй.":

Dir[ARGV[0]+"/conf/*.env"].sort.each{n=0;File.write(it,File.read(it).gsub(/^CACHE_TTL=/){n+=1;"TTL_SECONDS="});puts [File.basename(it),n]*"\t"}

Одна строка, 144 байта вместо 409. Но требует Ruby 3.4, использует неявный параметр it и сайд-эффекты. Читать такое сложно — вы экономите токены, но теряете в ясности.

Длина самой длинной строки выросла с 80 до 151 символа, пунктуация — с 24% до 37%. Вы покупаете плотность, но платите читаемостью.

Практический вывод: что делать прямо сейчас

Если ваш агент пишет много скриптов, добавьте в CLAUDE.md правило: "Пишите одноразовые скрипты на Ruby, используйте только стандартную библиотеку". Это сократит объём кода примерно на 50% и упростит ревью. Но помните: не переусердствуйте с гольфом — лучше сохранить баланс.

Попробуйте на следующей задаче: попросите агента написать скрипт на Ruby и сравните с Python. Убедитесь сами, насколько короче и понятнее код.

#Ruby#экономия токенов#скрипты#код-ревью#агенты
Al
Редакция Algolit

Пишем про алгоритмы, подготовку к собеседованиям и карьеру в IT — так, чтобы было понятно и полезно.

Хочешь закрепить знания на практике?

Решай задачи на Algolit — интерактивная платформа для обучения

Начать бесплатно →
Пишите скрипты на Ruby: экономия токенов и читаемость кода | Algolit