Команда Python for Devs подготовила перевод статьи о скрытых издержках использования старых версий Python. TL;DR: 83% разработчиков застряли на Python 3.10–3.11, и это обходится компаниям в миллионы долларов ежегодно из-за лишних "облачных" затрат. А ведь казалось бы, обновиться — проще простого.


Согласно отчету JetBrains State of Python 2025, ошеломляющие 83% Python разработчиков используют версии годовалой давности или старше, при этом почти половина (48%) до сих пор работает на Python 3.11, а 27% — на Python 3.10 или более ранних версиях.

Но это не просто проблема технического долга. Это финансовое кровотечение, опустошающее счета организаций за облачные услуги.

Скрытая стоимость «достаточно хорошего»

Главные причины, по которым респонденты не используют новейшую версию, включают: «Используемая мной версия полностью удовлетворяет моим потребностям» (53%) и «У меня не было времени обновиться» (25%).

Это старая стратегия «работает — не трогай», но эти разработчики не осознают, что их «достаточно хорошие» версии Python обходятся их организациям в огромные суммы из-за ненужных расходов на облачные вычисления.

Разрыв в производительности и финансовые последствия

Последние версии Python не только добавили новые возможности — они принесли существенные улучшения производительности, которые напрямую ведут к экономии средств. Python с версии 3.11 по 3.13 обеспечивает примерно на 11% более быстрое выполнение с использованием на 10-15% меньше памяти. Переход с Python 3.10 на 3.13 означает колоссальное увеличение скорости на 42% с использованием на 20-30% меньше памяти. Эти улучшения представляют собой фундаментальный прирост эффективности.

Согласно отчету, для компаний среднего размера со средней годовой оплатой AWS около 2,3 миллиона долларов, где EC2-вычисления составляют 50-70% затрат (1,15-1,6 миллиона долларов), обновление с Python 3.10 до 3.13 может принести потенциальную экономию в 420 000 долларов ежегодно.

Для крупных предприятий с ежегодными расходами на AWS в 24-36 миллионов долларов и затратами на EC2-вычисления в 12-25 миллионов долларов, потенциальная экономия от того же обновления достигает 5,6 миллиона долларов ежегодно. Эти расчеты предполагают консервативный 30%-ный прирост эффективности для ресурсоемких рабочих нагрузок на основе задокументированных улучшений производительности, показал отчет.

Парадокс контейнеризации

«Опрос также показывает, что многие из нас используют Docker и контейнеры для выполнения кода, что делает цифру в 83% или даже выше ещё более удивительной, — написал Майкл Кеннеди, основатель Talk Python и член Python Software Foundation, в своём блоге об отчёте. «С контейнерами вы просто выбираете последнюю версию Python в контейнере. Поскольку всё изолировано, вам не нужно беспокоиться о его взаимодействии с остальной частью системы».

Тем не менее, тот факт, что контейнеризация не ускорила обновление Python, указывает на то, что многие команды разработчиков не осознают финансовых последствий.

Помимо прямых затрат на вычисления

Финансовое влияние выходит за рамки просто эффективности вычислений. Время, которое команды тратят на обход ограничений производительности вместо создания функций, представляет собой упущенные возможности, которые не отражаются напрямую в счетах за облачные услуги.

«83% разработчиков, работающих на старых версиях Python, возможно, упускают гораздо больше, чем осознают, — написал Кеннеди. — Дело не только в том, что им не хватает некоторых языковых функций. Python 3.11, 3.12 и 3.13 включают значительные улучшения производительности, а грядущий 3.14 будет включать ещё больше».

Экономика обновлений

Обновления версий Python предлагают одно из самых высоких преимуществ с точки зрения окупаемости инвестиций (ROI), доступных в разработке программного обеспечения, сказал Кеннеди.

«Что удивительно, вы получаете эти преимущества, не меняя свой код, — написал он. — Вы просто выбираете более новую среду выполнения, и ваш код работает быстрее. CPython очень хорошо справляется с обратной совместимостью. Редко требуются значительные усилия для обновления».

В отличие от архитектурных изменений или крупных проектов рефакторинга, большинство приложений не требуют изменений в коде, имеют минимальный риск миграции, обеспечивают немедленные преимущества в производительности после развёртывания и приносят совокупную экономию, которая растёт с масштабом, отметил Кеннеди.

Фактор Data Science

Опрос показывает, что Data Science теперь составляет 51% всего использования Python, при этом pandas и NumPy являются наиболее распространёнными инструментами.

Кеннеди подчёркивает значимость этого сдвига: «Многие из нас в экспертной среде Python говорили о том, что Python делится на три части: одна треть — веб-разработка, одна треть — Data Science и чистая наука, и одна треть — как универсальная корзина, — написал он. — Нам нужно пересмотреть эту позицию теперь, когда одна из этих третей является подавляюще наиболее значимой частью Python».

Этот сдвиг в сторону ресурсоёмких рабочих нагрузок делает улучшения производительности ещё более значимыми с финансовой точки зрения. Рабочие процессы Data Science, включающие обработку больших наборов данных, обучение и вывод моделей, сложные статистические вычисления и продолжительные пакетные задания, выигрывают от недавних улучшений производительности Python, указал Кеннеди.

Русскоязычное сообщество про Python

Друзья! Эту статью подготовила команда Python for Devs — канала, где каждый день выходят самые свежие и полезные материалы о Python и его экосистеме. Подписывайтесь, чтобы ничего не пропустить!

Итог

В эпоху, когда организации стремятся оптимизировать затраты и повысить эффективность, обновление версий Python представляет собой легкодоступное решение.

Комментарии (9)


  1. sergeyns
    01.10.2025 08:37

    Почему не используют новейшую версию... перешел на 3.13, отвалился flask... я думаю у каждого таких историй припасено...

    Лучше бы посчитали сколько для таких компаний

    Для крупных предприятий с ежегодными расходами на AWS в 24-36 миллионов долларов и затратами на EC2-вычисления в 12-25 миллионов долларов, потенциальная экономия от того же обновления достигает 5,6 миллиона долларов ежегодно.

    стоило бы держать собственную инфраструктуру... так, для сравнения..


  1. nadge
    01.10.2025 08:37

    Получается, они платят еще большие деньги чтобы из упертости не перейти на C++/Rust/Go?


    1. MountainGoat
      01.10.2025 08:37

      Так это вечная тема. Ежедневные расходы на поддержание легаси часто в итоге превосходят ту немыслимую сумму, которая потребовалась бы, чтобы переписать всё с нуля вовремя.


  1. ShashkovS
    01.10.2025 08:37

    А-ха-ха-ха. Они что, думают, что компании гоняют в контейнерах print('Hello, world!')?

    Примерно любой мало-мальский бекенд — от десятка до нескольких десятков библиотек. У каждой зашиты ограничения на версии, и иногда это python<=3.10.
    И вот ты уже не можешь просто перещёлкнуть версии, тебе нужно бампить версии библиотек. А там начинаются потери обратной совмести. Обновил условный bcrypt, и вот твой бекенд падает, когда пользователь вводит длинный пароль. Потому, что в старой версии просто брались первые 72 символа пароля, а в новой он кидает тебе exception, который ты не ждал.

    И это если вообще получилось разрешить зависимости, и код запустился.

    Или был у меня бекенд на Sanic ещё на Python 3.9. Памяти жрёт мало, работает быстро.
    Обновляю на Python 3.12, нужно обновить Sanic. Обновил Sanic, тесты проходят. Пускаем в прод.
    Смотрю графички: а он жрёт в два раза больше оперативки, причём по ней очень скачет, и в два раза больше нагрузка на CPU. То есть все тесты прошли, но по факту стало гораздо хуже.

    Без правда хорошего набора тестов и ручного контроля после обновления — вообще никах.
    То есть затраты времени и риски совершенно неиллюзорные — и уже прямо сейчас, до какого-либо профита. А выигрыш — может быть когда-нибудь потом, если повезёт, и если дев.опсы смогут "поджать" контейнеры.


  1. AKudinov
    01.10.2025 08:37

    Прекрасно помню свой шок, когда обнаружил, что код, написанный для Python 2.x , не выполняется в Python 3.x Просто потому, что в более новой версии по-другому примерно всё.

    Вот и ответ на вопрос, почему люди не хотят обновлять.