Mojo 1.0

Язык Mojo довольно интересен. Цель языка - взять простоту Python, добавить строгую типизацию и производить высокоскоростные вычисления для ИИ.

Некоторые даже шутят, что сделали Rust на Python, т.к. язык имеет систему владения без сборщика мусора. Язык является строго типизированным.

Одна из фишек - возможность подключать Python и C код к Mojo. Тут интероп накладывает накладные расходы на мост, но все равно предоставляет удобство инегрирования в существующую среду. Никто не хочет переписывать свою инфраструктуру с нуля, но готовы ее улучшать. Поэтому интероп является логичным, чтобы начали пользоваться языком и внедрять его для получения производительности там, где критически важна скорость.

В Swift интероп с C практически не несет накладных расходов, т.к. оперирует теми же самими командами в LLVM. С Mojo ситуация сложнее и интероп происходит через ffi.

Основу языка заложил один и тот же человек, что и в Swift - Крис Латтнер. Это внушает доверие, но не более.

Ранее в сообществе была критика производительности Mojo 0.7, что словари отрабатывают даже медленнее чем в Python. Это подрывало саму суть языка - сделать более производительный Python для сложных вычислений. Но в версии 1.0 словари переработали на Swiss Table с SIMD-групповым зондированием для быстрого поиска. Это современный и очень производительный подход к организации хеш-таблиц. А также стали возвращать значение по ссылке, а не по значению (как раньше).

Пока у меня просто любопытство к языку, т.к. Swift, Rust, C++ предоставляют все необходимое уже сейчас, являются зрелыми и понятен вектор развития.

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