AI

Почему AI — это Python, а не Go (и не Rust, и не что-то ещё)

В мире backend-разработки давно назрела усталая дискуссия: «Почему весь искусственный интеллект крутится на Python, если Go (или Rust, или Julia) — объективно быстрее, строже и современнее?» Вопрос резонный. Ответ тоже есть. И он не столько про синтаксис, сколько про историю, экосистему и реалии современных вычислений.

Денис Ясюченя
5 августа 2025 г.
6 минут
15 просмотров
AIPythonRustGoPyTorchjuliaCUDAJAXNumPySciPyTensorFlow
Почему AI — это Python, а не Go (и не Rust, и не что-то ещё)

Go — быстрый, компактный, строгий. Но не для AI

Go — это отличный язык. Мы его любим.
Он предсказуем, минималистичен, компилируется в один бинарник, работает стабильно.
На нём пишут высоконагруженные API, CI/CD-сервисы, мониторинг, бэкенды, мультипоточные парсеры — и это прекрасно.

Но как только заходит речь об обучении моделей, нейросетях, оптимизации графов, авторазложении матриц — Go отходит в сторону.


Потому что Python — это не язык. Это протокол доступа к C++

Python — это не «интерпретируемый медленный скриптовый язык»,
а удобная оболочка вокруг высокопроизводительного кода, написанного на C/C++/CUDA.

Когда вы вызываете методы из PyTorch или TensorFlow —
вы на самом деле запускаете низкоуровневые вычисления в CUDA-ядрах, C++-библиотеках или через граф-оптимизаторы от NVIDIA и Google.

Python в этой схеме — не процессор.
Он — диспетчер команд. DSL для ML-инженера. Интерфейс взаимодействия с оптимизированной начинкой.


Почему не Go

1. Слишком низкоуровнево

Go требует явного управления потоками, синхронизацией, аллокацией.
AI-инженеру неинтересно это контролировать вручную. Он хочет написать .fit() — и получить модель.

2. Слишком строго

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

3. Нет вычислительного ядра

У Python есть:

  • NumPy (написан на C и Fortran)
  • SciPy
  • PyTorch и TensorFlow (C++ / CUDA)
  • JAX (XLA от Google)

У Go пока нет эквивалентов ни по ширине, ни по глубине.
Даже интересные проекты вроде Gorgonia — это лишь локальные инициативы.


Да, Python медленный — но он ничего не считает

Это ключевой парадокс:
весь тензорный и числовой код в AI не исполняется в интерпретаторе Python.

Он лишь инициирует команды на C- и CUDA-уровне.
Все матрицы, батчи, слои и операции — уже давно вычисляются вне Python.

Он остаётся просто удобной точкой входа, языком схем и инструкций.


Почему это надолго

AI — это не только модель. Это ещё:

  • data pipeline (pandas, Dask)
  • визуализация (matplotlib, seaborn)
  • ноутбуки и прототипирование (Jupyter)
  • инференс и деплой (FastAPI, ONNX, TorchServe)
  • эксперименты (MLflow, Optuna)

Всё это работает на Python.
Экосистема вокруг него настолько развита, что менять её на что-то «строже» просто невыгодно.
Он стал индустриальным стандартом по факту.


Вывод

Go — великолепен. Но не для искусственного интеллекта.

Python победил не скоростью, а тем, что:

  • быстро оборачивается вокруг C/CUDA,
  • поддерживает динамическое описание графов и данных,
  • имеет сотни миллионов строк battle-tested кода,
  • позволяет запускать модели с одной строчки.

Он не самый современный, не самый элегантный —
но в AI он работает. А этого достаточно.


Пока не появится аналог PyTorch на Go, с поддержкой GPU, автоградов и модели деплоя —
Python останется языком AI-индустрии по умолчанию.