Зачем нужен Mojo
This content is not available in your language yet.
Проблема, ради которой всё затевалось
Заголовок раздела «Проблема, ради которой всё затевалось»Питонист, которому нужна скорость, живёт в двух мирах одновременно. Прототип он пишет на Python, а когда упирается в производительность — переписывает горячий кусок на C++ или Rust, оборачивает биндингами и дальше поддерживает две кодовые базы на двух языках с двумя системами сборки. В машинном обучении это давно норма: PyTorch — это Python-обёртка над огромным слоем C++ и CUDA.
Это называют «проблемой двух языков». Mojo создан, чтобы её убрать: взять синтаксис Python, привычный миллионам, и дать ему систему типов, компиляцию в машинный код и прямой доступ к векторным инструкциям процессора и к GPU.
Что Mojo даёт на практике
Заголовок раздела «Что Mojo даёт на практике»Синтаксис, который вы уже знаете. Отступы вместо фигурных скобок,
def, print, циклы for ... in, срезы, декораторы. Питонист читает
код на Mojo без словаря с первой минуты.
Скорость компилируемого языка. Значения размещаются в памяти без накладных расходов интерпретатора, циклы разворачиваются, вычисления векторизуются. Разрыв с Python на численных задачах измеряется не процентами, а порядками.
Безопасность работы с памятью без сборщика мусора. Как в Rust: компилятор отслеживает, кто владеет значением, и вставляет освобождение памяти сам. Никаких пауз на сборку мусора и никаких утечек.
Совместимость с экосистемой Python. Из Mojo можно вызывать любые Python-библиотеки — NumPy, pandas, matplotlib. Не нужно ждать, пока кто-то перепишет весь научный стек.
Один язык от прототипа до GPU. Тот же код, тот же синтаксис, та же система сборки — от скрипта до ядра, исполняющегося на видеокарте.
Чем Mojo отличается от знакомых языков
Заголовок раздела «Чем Mojo отличается от знакомых языков»| Python | Mojo | C++ | Rust | |
|---|---|---|---|---|
| Синтаксис | простой | простой | сложный | средний |
| Скорость | низкая | высокая | высокая | высокая |
| Управление памятью | сборщик мусора | владение | вручную | владение |
| Порог входа | низкий | средний | высокий | высокий |
| Экосистема библиотек | огромная | зарождается | огромная | большая |
| Работа с GPU | через сторонние библиотеки | встроенная | через CUDA | через сторонние библиотеки |
| Возраст | 34 года | 1.0 в 2026 | 40 лет | 15 лет |
Строка «экосистема» — самая честная в этой таблице. Mojo молод, готовых библиотек под него мало, и на многие задачи ответ пока «возьмите Python». Смягчает это только возможность вызывать Python-код напрямую.
Что на Mojo можно писать сегодня
Заголовок раздела «Что на Mojo можно писать сегодня»Реалистично — вот это:
- численные алгоритмы, где Python слишком медленный, а переходить на C++ не хочется;
- ускорение конкретных горячих участков в существующем Python-проекте;
- работу с большими массивами данных и ручную векторизацию через SIMD;
- вычислительные ядра для CPU и GPU;
- утилиты командной строки, которым нужен быстрый старт и один бинарник без зависимостей.
Пока не стоит:
- писать веб-бэкенды — фреймворков и драйверов баз данных, по сути, нет;
- ждать зрелых библиотек под любую задачу, как в Python;
- рассчитывать на большое количество вакансий — язык только вышел в 1.0.
Стоит ли учить именно вам
Заголовок раздела «Стоит ли учить именно вам»Да, если вы пишете на Python и регулярно упираетесь в его скорость; вам интересны системное программирование и вычисления; вы хотите зайти в язык рано, пока сообщество маленькое, а вклад заметен.
Пока нет, если вы только учитесь программировать — начните с Python, и вернитесь сюда, когда почувствуете его ограничения. Владение значениями и метапрограммирование гораздо понятнее, когда есть с чем сравнивать.
Что дальше
Заголовок раздела «Что дальше»Если решили попробовать — устанавливаем. Если хотите сначала посмотреть на код — загляните в главу Первая программа.
Тексты курса — CC BY-NC-SA 4.0, код примеров — Apache 2.0