Mojo: общая характеристика

Статья рассчитана на читателя, имеющего базовые знания о программировании, в частности о языке Python.

Mojo предназначен для решения множества задач по разработке ИИ, с которыми не может справиться ни один другой язык. Дело в том, что Mojo  —  это первый язык программирования, созданный с нуля с использованием MLIR (multi-level intermediate representation  —  мультиуровневое промежуточное представление)  —  инфраструктуры компилятора, которая идеально подходит для гетерогенного оборудования, от CPU и GPU до различных ASIC’ов на основе ИИ. Mojo разработан как расширенная версия Python, так как его создатели являются приверженцами Python и его сообщества. Но им не удалось улучшить Python настолько, чтобы воплотить все свои идеи.

Поскольку Mojo  —  это продвинутый Python++, знающим Python многое в коде Mojo покажется знакомым. Однако Mojo в первую очередь предназначен для программирования высокопроизводительных систем со множеством особенностей  —  строгой проверкой типов, безопасностью памяти, технологиями компилятора нового поколения и многими другими. Это сближает Mojo с такими языками, как C++ и Rust.

Синтаксис Mojo

Чтобы понять основную логику синтаксиса Mojo, выведем “Hello World!”.

Как уже упоминалось, Mojo является расширенной версией Python, поэтому синтаксис у него почти такой же.

$ mojo
Welcome to Mojo! 🔥
Expressions are delimited by a blank line.
Type `:quit` to exit the REPL and `:mojo help repl` for further assistance.
1> print("Hello, world!")
2.
Hello, world!

Объявление функций в Mojo

Функции в Mojo могут быть объявлены с помощью fn или def.

def greet(name):
return "Hello, " + name + "!"
fn greet2(name: String) -> String:
return "Hello, " + name + "!"

Оба варианта имеют одинаковый вывод.

Для получения более подробной информации о синтаксисе и его обновлениях обратитесь к официальной документации Mojo.

Сравнение производительности Mojo и Python

Разработчики Mojo заявляют о значительном приросте производительности по сравнению с Python в определенных сценариях.

Это подтверждают приведенные ниже данные из официальной документации Mojo.

Другие возможности Mojo

1. Удобство использования и программирования

Mojo позволяет писать все на одном языке.

Пишите на Python или масштабируйте до “голого железа”. Программируйте множество низкоуровневых аппаратных средств ИИ. Не требуется ни C++, ни CUDA.

2. Высокая производительность

Mojo снимает ограничения производительности Python.

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

3. Полная совместимость с Python

Mojo предоставляет доступ ко всей экосистеме Python.

Оцените истинную совместимость с экосистемой Python. Убедитесь в бесшовном взаимодействии произвольно выбранных библиотек, например NumPy или Matplotlib, и вашего пользовательского кода с Mojo.

Вот пример MAKE_PLOT:

def make_plot(m: Matrix):
plt = Python.import_module("matplotlib.pyplot")
fig = plt.figure(1, [10, 10 * yn // xn], 64)
ax = fig.add_axes([0.0, 0.0, 1.0, 1.0], False, 1)
plt.imshow(image)
plt.show()

make_plot(compute_mandelbrot())

Сообщество Mojo

Mojo уже доступен для Linux и Mac OS и, надеемся, в скором времени будет доступен и для пользователей Windows.

Mojo впервые заявил о себе в августе 2023 года. Его предварительная версия была выпущена 28 марта 2024 года, за 13 дней до этой статьи. С момента появления языка растет его сообщество, продолжая расширяться благодаря недавнему релизу Mojo.

Более 300 проектов с открытым исходным кодом создано сообществом Mojo.

Чтобы увидеть другие проекты сообщества, кликните здесь.


Заключение

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

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи M Awais Nazir: Will ‘Mojo’ Programming Language be going to replace ‘Python’

Предыдущая статьяSolibee: совершенно новая коллекция UI-компонентов для SolidJS
Следующая статьяЛучшие библиотеки React 2024 года