Придет ли язык программирования Mojo на смену Python?



Книга Придет ли язык программирования Mojo на смену Python?

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 находится в стадии разработки, эта статья поможет вам принять взвешенное решение о том, какой инструмент наиболее подходит для ваших нужд.



31   0  

Comments

    Ничего не найдено.