Python. IT-курсы разрекламировали его как один из самых легких языков для входа в разработку, любители ИИ создают на нем свои первые нейросети, а некоторые сеньоры Java и C++ по-прежнему смотрят на него свысока, считая недостаточно строгим и производительным для «серьезной» разработки. В любом случае сегодня о Python знают все.

Поскольку заметный рост его популярности пришелся на 2010-е годы, многие считают, что язык появился сравнительно недавно. Но это неверно: Python старше большинства современных веб- и ML-фреймворков, массовой мобильной разработки и нынешнего AI-бума.

Как язык с репутацией медленного стал основным инструментом data science и машинного обучения, почему он поднялся на вершину рейтингов популярности и какую роль в этом сыграли его архитектура и экосистема — разберем в этой статье.

История Python: язык из 1989 года, который дождался своего времени

Поскольку Python стал хайповым относительно недавно, можно было бы предположить, что он был изобретен где-то в 2000-х. Но это далеко не так.

Python появился в конце 1980-х в Нидерландах. Его создатель — Гвидо ван Россум, программист из Центра математики и информатики (CWI) в Амстердаме. Он начал проектировать Python в декабре 1989 года. Первый рабочий вариант появился в 1990-м, а версия 0.9.0 была публично выпущена 20 февраля 1991 года. Название язык получил не в честь змеи, а в честь любимого британского комедийного шоу Гвидо Monty Python’s Flying Circus («Летающий цирк Монти Пайтона»).

С 2005 по 2012 гг Гвидо ван Россум работал в Google, далее в Dropbox (2013–2019). В 2019 году он ненадолго вышел на пенсию, но в 2020-м присоединился к Microsoft как Distinguished Engineer.
С 2005 по 2012 гг Гвидо ван Россум работал в Google, далее в Dropbox (2013–2019). В 2019 году он ненадолго вышел на пенсию, но в 2020-м присоединился к Microsoft как Distinguished Engineer.

Непосредственной причиной появления языка был проект Amoeba. Это экспериментальная микроядерная распределенная операционная система, разрабатывавшаяся CWI и Vrije Universiteit Amsterdam: она должна была представить сеть рабочих станций, файловых серверов и пула процессоров как единую вычислительную систему с прозрачным размещением программ и данных.

Для Amoeba требовались системные административные утилиты. Писать их на C было слишком трудоемко, а Bourne shell оказался недостаточно удобен для работы с механизмами новой распределенной операционной системы. По словам самого ван Россума, потребовался язык, который мог бы «закрыть разрыв между C и shell». На дизайн Python также существенно повлиял язык ABC, над которым ван Россум ранее работал в CWI.

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

Когда Python начал расти

У Python не было одного переломного года. Он постепенно распространялся в автоматизации, веб-разработке, образовании и научных вычислениях, после чего в 2010-х его рост заметно ускорили data science и machine learning.

Анализ Stack Overflow за 2017 год показывал, что в странах с высоким уровнем дохода рост посещаемости тега Python ускорялся начиная с 2013 года. В июне 2017-го Python впервые стал там самым посещаемым тегом среди языков, а его посещаемость с 2012 года увеличилась примерно в 2,5 раза. За пределами этой группы стран выраженный рост, по данным той же работы, начался примерно в 2014 году. Но нужно учитывать, что это статистика просмотров Stack Overflow, а не прямое измерение объема промышленного кода.

В опросе Stack Overflow 2019 года Python обошел Java по доле респондентов, использовавших язык, и был снова назван самым быстрорастущим крупным языком. По состоянию на июль 2026 года Python занимает первое место в TIOBE с рейтингом 18,94%, опережая C, C++, Java и C#.

Важно: TIOBE измеряет популярность по поисковым и образовательным сигналам, а не «качество языка» или количество строк кода в мире.
Важно: TIOBE измеряет популярность по поисковым и образовательным сигналам, а не «качество языка» или количество строк кода в мире.

Таким образом, машинное обучение стало одним из основных драйверов роста Python, но не единственным. Существенную роль также сыграли автоматизация, образование, веб-разработка, научные вычисления и общее расширение open source-экосистемы.

Почему развитие нейросетей вывело Python в лидеры

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

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

Эту роль взял на себя Python. Его часто называют glue language — языком-клеем, который связывает библиотеки и компоненты, реализованные на разных языках. При этом Python не анализирует сложность операции и не решает, нужно ли передавать ее в C++: этот переход заранее заложен в реализации соответствующей библиотечной функции.

На практике схема выглядит так:

  1. CPython выполняет пользовательский код и доходит, например, до вызова torch.matmul() или слоя nn.Linear.

  2. Python-интерфейс передает вызов внутренней реализации библиотеки.

  3. Библиотека выбирает подходящий вариант операции для CPU или GPU.

  4. Вычисления выполняет скомпилированный код: C, C++, Fortran, CUDA либо специализированная математическая библиотека.

  5. Python получает объект с результатом и продолжает выполнение программы.

В документации PyTorch прямо указано, что Python-интерфейс передает в C++ практически все вычислительно тяжелые операции, особенно численные. Поэтому основную часть времени программа может проводить не внутри интерпретатора Python, а в оптимизированных CPU- или GPU-ядрах.

Почему тогда не выполнять всю работу на самом Python? Проблема проявляется прежде всего в коде, который последовательно обрабатывает отдельные Python-объекты. CPython выполняет байткод, определяет типы во время работы программы и несет дополнительные расходы при каждой операции. Поэтому цикл на чистом Python обычно значительно медленнее аналогичного цикла, скомпилированного из C++.

В исследовании USENIX ATC 2022 на наборе тестов LangBench приложения под CPython выполнялись в среднем в 29,5 раза медленнее соответствующих C++-реализаций. Это не универсальный коэффициент для любого кода и не сравнение скорости обучения нейросетей: результат относится к конкретному набору из двенадцати тестов. Он показывает, насколько заметными могут быть накладные расходы CPython, когда основная работа действительно выполняется интерпретатором.

В ML-нагрузках ситуация часто иная. Один вызов Python может запускать перемножение матриц, состоящих из миллионов элементов. Накладные расходы возникают при вызове операции, а вся тяжелая математика выполняется внутри нативного ядра. В результате Python позволяет быстро описывать и проверять гипотезы, одновременно передавая вычислительно сложные задачи C++, CUDA и специализированным библиотекам. Именно сочетание высокой скорости разработки на Python с возможностью передавать ресурсоемкие операции оптимизированным библиотекам и GPU сделало его особенно удобным инструментом для нейросетей и помогло занять лидирующее положение в ML-экосистеме.

Экосистема и сетевой эффект

Когда есть удобный язык, под него пишут библиотеки. А когда библиотек много, его используют еще больше.

К середине 2010-х вокруг Python сформировалась полноценная среда для научных вычислений и анализа данных. NumPy отвечал за работу с многомерными массивами, SciPy — за численные методы, pandas — за табличные данные, scikit-learn — за классические алгоритмы машинного обучения, а Matplotlib — за визуализацию. Связка IPython и Jupyter позволяла запускать код по частям, добавлять формулы, графики и пояснения в одном документе. При этом Jupyter — не Python-библиотека, а платформа, поддерживающая разные языки, хотя именно Python стал одним из ее основных сценариев использования.

Поэтому, когда Google открыл исходный код TensorFlow в ноябре 2015 года, а Facebook AI Research представила PyTorch в январе 2017-го, новые фреймворки пришли уже в зрелую экосистему. Их пользователи могли работать с привычными инструментами подготовки данных, визуализации и анализа, а вычислительно сложные операции выполнялись внутри фреймворков с помощью C++, CUDA и специализированных библиотек.

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

Почему Python оказался удобным интерфейсом для ML

Машинное обучение находится на пересечении программирования, математики, статистики и конкретной предметной области. Многие дата-сайентисты и ML-исследователи приходят из физики, биологии, экономики или прикладной математики. Их основная задача — сформулировать гипотезу, подготовить данные, изменить архитектуру модели и оценить результат, а не вручную управлять памятью или реализовывать матричные операции.

Python позволяет работать ближе к уровню математической модели. Операции над массивами и тензорами записываются компактно, а код обычно отражает последовательность вычислений: загрузить данные, выполнить преобразование, получить предсказание, рассчитать ошибку и запустить обратное распространение градиента. В типовых ML-задачах специалисту не приходится самостоятельно реализовывать перемножение матриц, многопоточность или низкоуровневую работу с GPU.

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

Гибкость Python и eager-режим PyTorch дают исследователю больше свободы: можно быстро менять структуру модели, использовать обычные условия и циклы, выводить формы тензоров и проверять отдельные части вычислений. Отдельно работает autograd: во время прямого прохода он формирует граф вычислений для поддерживаемых операций, а вызов backward() автоматически рассчитывает градиенты, поэтому производные для каждого слоя обычно не приходится реализовывать вручную.

В итоге, к моменту распространения deep learning вокруг Python уже существовала развитая среда для работы с массивами, научными алгоритмами, табличными данными, визуализацией и интерактивными ноутбуками. Новым ML-фреймворкам не требовалось создавать весь инструментарий с нуля: они могли встроиться в уже привычный для исследователей рабочий процесс.

Это не означает, что C++ не используется дата-сайентистами и ML-инженерами. На нем пишут внутренние компоненты фреймворков, собственные операторы, высокопроизводительные пайплайны и системы с жесткими требованиями к задержкам. У PyTorch существует полноценный C++-интерфейс для обучения и запуска моделей без Python. Однако сами разработчики PyTorch рассматривают его как дополнение к Python-интерфейсу для случаев, когда этого требуют производительность, многопоточность или условия развертывания.

Python стал стандартным интерфейсом для ML не потому, что лучше C++ выполняет математические операции. Его преимущество заключается в другом: исследователь может описывать вычисления на высоком уровне, быстро менять эксперимент и пользоваться общей экосистемой, а реализацию тяжелых операций оставлять более производительным языкам и специализированному оборудованию.

Как это работает в коде

Код ниже показывает, как Python запускает обучение нейросети, а тяжелые вычисления передает внутренним компонентам PyTorch, написанным на C++ и CUDA. Профилировщик помогает увидеть, какие операции выполняются за обычными вызовами Python.

import torch
import torch.nn.functional as F
from torch import nn
from torch.profiler import ProfilerActivity, profile, record_function


torch.manual_seed(42)

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

batch_size = 512
input_dim = 1024
hidden_dim = 2048
num_classes = 100

# Синтетический batch: его размера достаточно,
# чтобы матричные операции были заметны в профиле.
features = torch.randn(batch_size, input_dim, device=device)
labels = torch.randint(
    low=0,
    high=num_classes,
    size=(batch_size,),
    device=device,
)

classifier = nn.Sequential(
    nn.Linear(input_dim, hidden_dim),
    nn.GELU(),
    nn.Linear(hidden_dim, num_classes),
).to(device)

classifier.train()

optimizer = torch.optim.SGD(
    classifier.parameters(),
    lr=1e-2,
)


def train_step() -> torch.Tensor:
    """Один шаг обучения: forward, backward и обновление весов."""
    optimizer.zero_grad(set_to_none=True)

    # Python вызывает слои модели, а операции над тензорами
    # передаются внутренним операторам PyTorch.
    logits = classifier(features)
    loss = F.cross_entropy(logits, labels)

    # Autograd запускает обратный проход и рассчитывает градиенты.
    loss.backward()
    optimizer.step()

    return loss.detach()


# Прогрев исключает часть разовых расходов
# на первоначальную инициализацию.
for _ in range(3):
    train_step()

if device.type == "cuda":
    torch.cuda.synchronize()


activities = [ProfilerActivity.CPU]

if device.type == "cuda":
    activities.append(ProfilerActivity.CUDA)


with profile(activities=activities) as profiler:
    with record_function("training_step"):
        loss = train_step()

    # CUDA-операции выполняются асинхронно.
    # Перед формированием таблицы дожидаемся их завершения.
    if device.type == "cuda":
        torch.cuda.synchronize()


sort_key = (
    "device_time_total"
    if device.type == "cuda"
    else "cpu_time_total"
)

print(f"device={device}, loss={loss.item():.4f}")

print(
    profiler.key_averages().table(
        sort_by=sort_key,
        row_limit=15,
    )
)

В конце программа выводит таблицу профилировщика. В ней обычно видны операции aten::linear, aten::addmm и aten::mm, которые отвечают за работу слоев и матричные вычисления. Python задает порядок действий, а сами расчеты выполняются оптимизированным кодом на процессоре или видеокарте.

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

Заключение

Python может уступать компилируемым языкам в скорости выполнения чистого CPU-кода, но для нейросетей это оказалось не главным. Он позволяет быстро описывать модели и проверять гипотезы, а ресурсоемкие операции передает оптимизированным библиотекам и GPU-ядрам. В сочетании с развитой научной экосистемой именно это сделало Python основным интерфейсом современной ML-разработки.

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


  1. mixsture
    22.07.2026 19:09

    думаю, python зашел в ML даже не из-за особенностей языка, а из-за python jupiter notebook:

    Как особого режима работы с документом, который объединяет блоки объяснений, визуализаций и кода в одном полотне и позволяет также блочно это менять/тестить. Это очень удобная абстракция для исследовательской работы.


  1. maxscitech
    22.07.2026 19:09

    Почему он взлетел - Совершенствовалось железо и стало наплевать на скорость и прожорливость, соответственно из-за простоты освоения, развития интернета (где можно получить документацию на модули) и "всего готового" в языке + быстрая "разработка" для "заработка" появилась куча скрипт-киддисов (которые ныне называют себя "программистами") и пошло поехало.


  1. ITstaks
    22.07.2026 19:09

    Медленный для чего именно? Опять это абстрактное «Python медленный». В большинстве реальных задач всё упирается в архитектуру, алгоритмы и внешние сервисы, а не в сам язык. А там, где действительно нужна скорость, тяжёлые части спокойно ускоряются или выносятся в C, C++ или Rust.


    1. wataru
      22.07.2026 19:09

      Ну вот он медленный там, где есть "тяжeлые части" (например циклы, for). Да, плохой архитектурой и алгоритмами вы замедлите работу в сотни раз, а не в 30, как при использовании питона вместо C++. Но 30 питоновских раз никуда не пропадают даже при выборе правильной архитектуры.

      Вынос частей в С++ - это костыль, как раз вызванный абстрактным "Питон медленный". Если бы он не был абстрактно медленным, не нужно было бы ничего никуда выносить.


      1. ITstaks
        22.07.2026 19:09

        Вы правы только для одинакового вычислительного кода, например цикла на Python и C++. Но программа целиком не становится автоматически в 30 раз медленнее: часто основное время уходит на сеть, диск, базу или библиотеки, которые сами написаны на C/C++.

        Поэтому вынос тяжёлых участков в нативный код, не костыль, а нормальное разделение задач. Точнее говорить: медленны циклы в CPython, а не Python-приложения вообще.


        1. wataru
          22.07.2026 19:09

          Но программа целиком не становится автоматически в 30 раз медленнее: часто основное время уходит на сеть, диск, базу или библиотеки, которые сами написаны на C/C++.

          Да, спят все языки одинаково быстро. Но если у вас программа сама что-то делает, то она медленнее, если собственно это действие и не вывести в нативный код.

          Да, программу бывает можно писать и на питоне, но как уже писали выше - это лишь обвязка и склейка кусков, написанных на более быстрых языках.


          1. DaneSoul
            22.07.2026 19:09

            Да, программу бывает можно писать и на питоне, но как уже писали выше - это лишь обвязка и склейка кусков, написанных на более быстрых языках.

            Так а в чем проблема если такая обвязка крайне необходима?
            Есть небольшое количество суровых computer science профи, которые пишут библиотеки с высокоэффективными алгоритмами на сложных быстрых языках.
            А есть большое количество исследователей, например биологов, которые не осилят C++ и алгоритмы на таком уровне, но которым нужно писать простой понятный код для анализа своих задач - и вот именно эту нишу Python и закрывает.


            1. wataru
              22.07.2026 19:09

              Разумеется. Мне кажется хорошая аналгия тут - авто. Есть феррари и есть приус. Очевидно же, что феррари быстрее? Да, если вам надо только ездить по пробкам, то приус будет двигаться с той же скоростью, примерно с тем же комфортом, но будет гораздо дешевле.

              Но это не отменяет того, что приус - медленный. В любой аналогичной ситуации он будет медленее. Иногда эта медленность не имеет значения, ибо без разницы, там 10мс или 1мс тратится на склейку библиотек. Я и не отрицал вообще право питона на существование, я лишь утверждал, что он медленнее.


              1. DaneSoul
                22.07.2026 19:09

                Да, но аналогия не совсем точная, потому что водитель приуса может сесть на феррари и поехать, без длительного переобучения. Тут тогда сравнивать надо не с феррари, а с болидом формулы один, управлять которым могут небольшое количество профессионалов.
                При этом для многих реальных задач мы условно ставим в приус детали от болида (библиотеки) и хоть и немного теряем в скорости, но не так критично, чтобы ради этого обучаться на пилота.


      1. AIStorm
        22.07.2026 19:09

        В смысле вынос c++ это костыль? Python исходно проектировался как обертка по верх C. Если текущии разрабы Python не владеют c++ это их личные проблемы, а не проблемы языка. Не говоря уже о том что во времена ИИ заявлять о не знании какого либо языка, по крайне мере странно?


        1. wataru
          22.07.2026 19:09

          В смысле вынос c++ это костыль?

          Если питон такой быстрый, то зачем вообще что-то выносить в нативный код?


          1. AHL
            22.07.2026 19:09

            Затем что питон медленный


          1. brownfox
            22.07.2026 19:09

            Питон предлагает более удобную во многих случаях абстракцию, чем C++


  1. jarkevithwlad
    22.07.2026 19:09

    для себя делал тесты скоростей (если кому интересно)

    РЕЗУЛЬТАТЫ БЕНЧМАРКОВ

    1. Сравнение языков: расчёт числа π по формуле Лейбница, 10 000 000 итераций

    C++ (g++) — 161.422 мс Julia (AOT compiled) — 161.677 мс Fortran 90 (gfortran) — 161.762 мс Nim — 161.810 мс C (gcc) — 161.810 мс Go — 162.448 мс Rust — 163.962 мс Java — 212.181 мс JavaScript (Node.js) — 424.986 мс Julia — 427.489 мс Python (PyPy) — 964.484 мс Crystal — 1426.190 мс Elixir — 2650.710 мс PHP — 2730.660 мс Clojure — 2826.070 мс Lua — 5101.520 мс Swift — 5246.140 мс R — 6404.800 мс Clojure (Babashka) — 10272.500 мс Ruby — 12194.300 мс Python (CPython) — 28513.900 мс

    Самый быстрый: C++ — 161.422 мс. Python CPython: 28513.900 мс, примерно в 177 раз медленнее C++.

    1. Расчёт π методом Лейбница, 100 000 знаков

    Go — 7.665 с Rust — 7.706 с C (GMP) — 10.737 с JavaScript / HTML — 15.993 с C# — 16.100 с C++ — 21.195 с C (pure) — 21.388 с Python — 25.629 с

    Самый быстрый: Go — 7.665 с. Python: 25.629 с, примерно в 3.34 раза медленнее Go.

    1. Общее время бенчмарка, 100 000 элементов

    C — 21.6 с Rust — 22.5 с Go — 23.8 с C# — 25.1 с Python — 816.2 с

    Самый быстрый: C — 21.6 с. Python: 816.2 с, примерно в 38 раз медленнее C.

    1. Пузырьковая сортировка float, 100 000 элементов

    C — 12.67 с Rust — 14.73 с Go — 15.21 с C# — 15.88 с Python — 437.48 с

    Самый быстрый: C — 12.67 с. Python: 437.48 с, примерно в 34.5 раза медленнее C.

    1. Пузырьковая сортировка int, 100 000 элементов

    Rust — 7.77 с Go — 8.56 с C — 8.95 с C# — 9.23 с Python — 378.72 с

    Самый быстрый: Rust — 7.77 с. Python: 378.72 с, примерно в 48.7 раза медленнее Rust.

    Примечание: результаты зависят от конкретного кода, версии компилятора/интерпретатора, библиотек, железа и условий запуска. Пузырьковая сортировка имеет сложность O(n²), поэтому не является хорошим показателем скорости реальной сортировки.

    p.s. скриншоты не грузятся текст из них через нейронку достал


    1. mixsture
      22.07.2026 19:09

      только это все характерно для cpu-based задач. А в огромном числе кейсов упирается все в СУБД, т.е. скорее io-based


      1. maxscitech
        22.07.2026 19:09

        Да и тут у Си преимущество тоже, потому что он работать с io может на самом низком уровне.


    1. RulenBagdasis
      22.07.2026 19:09

      Скриншоты грузятся через https://hsto.org/


      1. jarkevithwlad
        22.07.2026 19:09

        возможно но я просто через control + v вставлял и была ошибка загрузки


    1. jarkevithwlad
      22.07.2026 19:09

      сегодня загрузились без проблем p.s. изображения делались нейронкой по результатам
      js/html это реально был запуск расчётов в браузере на странице
      js/html это реально был запуск расчётов в браузере на странице
      а это уже из сети брал
      а это уже из сети брал

      даже сорсы остались некоторые


    1. wataru
      22.07.2026 19:09

      Как-то странно. При расчете по формуле в 10М операций C++ в 177 раз быстрее CPython. А при подсчете до заданной точности - сравним. В чем дело? Ведь подсчет до заданной точности - это сколько-то заранее фиксированных итераций (хоть число и не записанных явно). Ведь формула одна и та же. Питон в обоих тестах работает примерно одинаковое время, а C++ в 170 раз медленнее. Почему?

      Что там такое во втором тесте, чего нет в первом? Криво написанная длинная арифметика без стандартных оптимизаций, которые реализованы в движке длинной арифметики в питоне? Тогда сравнение некорректное. Надо в С++ использовать тоже стандартную вылизанную длинную арифметику вроде libgmp.


      1. jarkevithwlad
        22.07.2026 19:09

        уже не помню как и что считал, всё было написано с помощью нейронки, вот и могут быть косяки, сорсы в соседнем сообщении в комментах, можете сами посмотреть как и что (там вроде не все сорсы уже не помню какие именно)


        1. wataru
          22.07.2026 19:09

          В тех сорсах только сортировка, числа по ней вопросов не вызывают. Вычисления Пи там нигде нет.


          1. jarkevithwlad
            22.07.2026 19:09

            всё же смог найти и те сорсы


            1. wataru
              22.07.2026 19:09

              Ну да, так и есть. На C++ там тривиальная ручная реализация BigInt без оптимизаций, которая очевидно уступает вылизанной реализации длинной арифметики в питоне (которая, кстати, написана на С). Так что там не сравнение питона с С++, а сравнение Сишной реализации длинной арифметики в библиотеке питона с кустарной ручной реализацией (ну с примесью самого языка для обвязки, но вообще непонятно, какая там пропорция).

              Короче, бенчмарк очень спорный, и никаких выводов по нему делать нельзя.


  1. Zekori
    22.07.2026 19:09

    Не только в ml применяю такой подход, зачастую core логику выношу в с++ (в том числе и честную многопоточку) через pybind11 делаю обвязку , python использую как glue и для control plane (fast api, валидация и прочее)


    1. maxscitech
      22.07.2026 19:09

      Вот это самый оптимальный подход


  1. Jack444
    22.07.2026 19:09

    ML это лишь вершина айсберга, 50 строк кода на keras полноценную модель выдают.
    Куда чаще кажется его используют в микросервисах.
    Микросервисная архитектура из-за однопоточной природы python/nodejs подобных языков была придумана.


  1. arsengush
    22.07.2026 19:09

    Забавно, что язык, который многие считали несерьёзным из-за скорости, стал одним из главных инструментов в ИИ и машинном обучении. Видимо, в современных задачах важна не только производительность самого языка, а то, насколько быстро можно создавать и проверять идеи. А с огромной экосистемой библиотек Python просто оказался в нужное время в нужном месте.


    1. Kano
      22.07.2026 19:09

      Как запускатель сторонних програмных модулей идеален


  1. Sega100500
    22.07.2026 19:09

    очень красиво графики рисуете! ;-) выглядит так, как-будто "график постоянно идёт вправо и вверх" (это из юмора про внедрение ИИ)... а реалии таковы, что Python уже 3 месяца как очень стремительно теряет свои позиции в рейтингах популярности языков программирования - люди то "наелись" уже этих сказочек про "чудо-язык"
    Python только лишь потому популярен, что те же математики, разрабатывающие ML-модели не хотят заморачиваться с изучением программирования... ну как бы клей он и есть клей - клеем и останется


    1. economist75
      22.07.2026 19:09

      3 мес спада доли на фоне 3 лет топ-позиции - это изменение структуры. Конечно питон перегрет, пусть остынет. Но учить его настолько легко, а скорое первое применение приходит так естественно, что обязательность изучения медленного языка воспринимается как мягкая странность, не более. И ведь учат его часто сами, потому что “легко”.

      Преподы вузов в один голос отмечают высокую доходчивость примеров сложных концепций (ООП итп) на питоне, вероятно из-за случайного, но удачно придуманного краткого синтаксиса языка с отступами, без 80% знаков пунктуации из пугающих C++, JS итд.


      1. Sega100500
        22.07.2026 19:09

        да-да-да, а потом рождаются эти дебильные лозунги "Программирование - это просто!"...
        Интересно, о каких же "сложных концепциях (ООП итп)" идёт речь? Видимо, те преподы и сами не особо в курсе, что даже дизайн самого Python вообще как бэ не ООП, если что вдруг... ООП там очень так "притянут за уши", а про этот анахронизм "краткого синтаксиса языка с отступами" я лучше вообще промолчу (по сути это как нумерация строк в Бейсике когда-то)


        1. economist75
          22.07.2026 19:09

          Питон мультипарадигменный, и покрывает, пожалуй, все парадигмы. Всё в нем есть объект с первого дня, и новичок путь до собственных UDF проходит за 2 мес., а до собственных декораторов и классов, нагородив ворох UDF - за полгода. Видел эти вехи на десятках людей.

          Даже ФП тут начинается быстро, скажем, за год (с микроконтроллерами еще быстрее). Про уши ООП и уподобить структурность нумерации строк - это вы знатнонабросили.

          На мой взгляд, применять “всё программирование” просто негде и не в чем. А вот быстро изучить парадигмы, кайфануть от списковых включений, генераторов, декоратов, классов и работы модулей (и оттого что уже написано людьми в 0.9M свободных либ), и всё это на коротких и ясных примерах на питон - самое то.

          Пнуть спящую змею всегда можно за медлительность, это честно и бесспорно. Во всем остальном выходит уже не так убедительно. Все-таки массовость и рейтинги - для масс показательнее любых наших мнений и опыта. У питонистов совершенно не подгорает от новостей про Julia, Nim, Mojo итп, а также от того что питон через раз дергает либы на C/etc, а половина web-либ дергает JS. Вот прмя вообще, полнейшее спокойствие. Переучиваться не так сложно, если первый раз училось легко.


  1. LorHobbit
    22.07.2026 19:09

    > Непосредственной причиной появления языка был проект Amoeba.

    Можно упомянуть, что проект вёлся под руководством самого Танненбаума.

    > У Python не было одного переломного года.

    Ну, переход на Python 3 это тот ещё переломчик был.


  1. mitr4
    22.07.2026 19:09

    Поскольку заметный рост его популярности пришелся на 2010-е годы, многие считают, что язык появился сравнительно недавно. Но это неверно: Python старше большинства современных веб- и ML-фреймворков, массовой мобильной разработки и нынешнего AI-бума.

    Что за странная мысль? Легко быть старше современных фреймворков потому что современный = недавний; ML, как следует из самой статьи, появился как раз с подачи Python;
    Быть старше AI бума очень легко - практически все и всё старше чем этот самый бум.


  1. Maydyk
    22.07.2026 19:09

    Python это удачный бесплатный гибрид бейсика с матлабом.


  1. ProfDonda
    22.07.2026 19:09

    Как по мне, то "классический C" легче для первоначального изучения, чем Python с его методами, декораторами и пр. Вспомните "Blue C" - тоненькая книжечка по нынешним меркам.


  1. Gov_Sob
    22.07.2026 19:09

    Если бы у Mojo / Rust / Julia была бы настолько развитая экосистема как у Петухона сейчас - про него бы давно все забыли, и в школах вернулись бы на PascalABC к слову


    1. economist75
      22.07.2026 19:09

      Эту мантру слышно лет 15 уже, особенно с Julia. Спасибо мантре - разрабы питона наконец-то стали ускорять его, и молодцы что делают это о-очень медленно, по длительному плану, не особо ломая легаси.

      Школьники и студенты не выбирают Паскаль потому что рейтинг для них теперь всё, а опыт нас, старых дядек, довольно отрицателен.