TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Boris Burkov

27 Mar, 13:42

Открыть в Telegram Поделиться Пожаловаться

RUST - НОВЫЙ PYTHON

Про технические вещи обычно пишу на сайте, а не в телеге, но народ пошел живо интересоваться растом, поэтому напишу о нем. Мы стали добавлять много раста в питоновую кодовую базу примерно год и 100+ тысяч строк продакшнового кода назад, и с тех пор изрядная ее часть переехала на этот язык. Поделюсь впечатлениями.

Если у вас есть CPU-bound программа на питоне, то вы скорее всего можете за пару часов ускорить ее в 3-5 раз: просто отпрофилируйте ее cProfile’ом и попросите claude code/codex/cursor/… перенести hot path на PyO3/maturin. Всё. Вот так просто.

Вам этого покажется мало, и вы решите заменить часть питоновских реализаций своих классов на растовые. Если одна растовая обертка разговаривает с другой, вы захотите, чтобы они не таскали данные через питон, заворачивая-разворачивая все в pyobject’ы, а взаимодействовали прямо в растовом мире.

Тут вы столкнетесь с тем, что питоновская модель ООП не вполне ложится на растовскую, PyO3 не умеет создавтаь trait object’ы и т.д. Поэтому совсем без изменений архитектуры вытеснить питон растом местами не выйдет. Но многое похоже. Например, команда asyncio/aiohttp перетекла на Rust в районе 2017, и асинхронка на python/asyncio отлично ложится на rust/tokio; fern - это по духу тот же джанговский логгер и т.д.

На мой взгляд разработчики на Java/Kotlin/C#/Go должны были в 2025 испытать кризис веры, потому что раньше их языки были корпоративной золотой серединой, а теперь стали долиной смерти. Я не вижу аргументов даже в пользу милого Go в сравнении с парой python+rust. Ничто не дает большей скорости разработки, чем питон, и ничто не дает большего быстродействия, чем Rust. С Go Вы проигрываете этому тандему в 2 раза в производительности программиста и в 2-4 - в производительности программы.

Почему Питон был медленнее Явы в ~10 раз, хотя оба - с рантаймом? В Яве основными структурами данных являются типизированные классы и векторы. Они кеш-локальны, поэтому бОльшая часть Вашего кода не выходит из L1-кеша, отрабатывая каждую элементарную операцию за ~3 нс. В Питоне и подобных ему динамических языках ключевой структурой данных является dict, который очень плохо дружит с кешами, и каждая элементарная операция требует похода в лучшем случае в L3-кеш, а чаще - в большую оперативку, и это - от 15 до 30-40 нс. Добавьте к этому наследование, и вот уже неоптимизируемая в Питоне операция zoo.dog.speak() занимает ~120 нс, тогда как Ява справится за ~15, а Раст - за ~4.

Ну и мелочи… BTreeMap в бутылочных горлышках аутперформит классический HashMap до 100-1000 пар ключ/значение (про переписанный с Go на Rust бэкенд Discord’а многие слышали). Real-time? В питоне есть gc.disable(), в Rust’е пулы объектов позволяют избегать аллокаций. Никаких stop-the-world.

Раст не продает себя как FP-язык и не кричит, что он - новый Хаскелль, но по факту… нацистская система типизации, близкая к скаловской, приближает нас к “если компилируется - корректно”. А внятные сообщения об ошибках помогают нейронкам быстро исправлять их без вовлечения человека. Работая с глубоко оптимизированным многопоточным кодом, я не вспоминаю про сегфолты и валгринды. Гонок нет вовсе, последний дедлок случался квартал назад. Мутексов и порождаемых ими context switch’ей минимум. Я не вижу ни малейших причин использовать С++ для новых проектов в 2026 (молчу уж о несопоставимых тулчейнах Cargo vs cmake+gcc/clang+make+ldd+ой все).

Недостатки раста являются продолжениями его достоинств. FP’шный по духу синтаксис, очень похожий на Скалу, с огромным количеством chaining’а методов вызывает вьетнамские флешбеки про jQuery-2008; в глазах рябит от монад, в которые все завернуто, и разношерстных fold’ов и flatMap’ов, которыми все развернуто, map-filter-reduce’ов с рубиевскими замыканиями и котлиноподобных знаков вопросов... всё это снижает читаемость кодовой базы - единственный минус по мне.

Ну и главное, повторюсь: rust+LLM. Если человек говорит вам, что ИИ пока не вносит вклада в реальную экономику, значит он в ней и не участвует. Даже в 2011/12 программирование так не менялось, как его изменили Cursor+Rust+GILэктомия.

1.3k 2 45 34 26
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot