Mojo — спеціалізована мова програмування, створена компанією , орієнтована на розробку у галузі машинного навчання та випущена у травні 2023 року. Mojo позиціонується як просунутіша альтернатива Python, майже повністю сумісна з ним та його бібліотеками, але при цьому показує кращу продуктивність, аналогічну таким мовам програмування як C та C++.

Ключові пріоритети мови: розробка в галузі штучного інтелекту та системне програмування. Мова вміє взаємодіяти з командами SIMD, що дозволяє виконувати кілька операцій алгебри за раз, що позитивно позначається на продуктивності.

Mojo не має збирача сміття, натомість вона використовує семантику переміщення сильно схожу на таку в Rust. Цей підхід дозволяє мові безпечно та швидко видаляти ресурси, що не використовуються, і відмовитися від використання .

Дизайн та розробка

Вперше Mojo була анонсована у вересні 2022 року. Тоді ж було заявлено про її розширені можливості компіляції на основі компіляційного фреймворку Багаторівневого Проміжного Подання ().

Mojo має гібридну систему типів, що є чимось середнім між статичною та динамічною типізаціями. Завдяки цьому розробник при написанні програми може вибирати між продуктивнішою статичною або гнучкішою динамічною системою типів.

Також Mojo усталено використовує технологію модульного інтерфейсу виведення (), що дозволяє спростити процес розробки та масштабування систем штучного інтелекту.

Сумісність із Python

Mojo націлена на повну сумісність із екосистемою Project Jupyter. Мова програмування Mojo є новою і, фактично, вона знаходиться все ще в розробці. Наприкінці 2023 року вийшла остання версія — версія 0.6.0. Вона ще не має повної сумісності з кодом Python, а володіє лише певною здатністю обробляти певну частину його синтаксису. Наприклад, у Mojo поки що відсутні іменовані аргументи функцій, ключове слово «global», а також спеціальні вирази для компактного створення списків і словників.

У свою чергу, Mojo має і деякі унікальні синтаксичні засоби, наприклад, низькорівневі функції та структури (), оптимізованіші з погляду споживання пам'яті альтернативою класам Python.

Mojo може виконувати наявний Python 3.x, повторно використовуючи середовище виконання CPython. Також у Modular планують додати прозору інтеграцію модулів Clang C/C++ та прозору генерацію інтерфейсу зовнішніх функцій між C/C++ та Mojo.

Особливості програмування У Mojo функції можна оголошувати як за допомогою fn (для продуктивних функцій), так і за допомогою def (для сумісності з Python).

Основні арифметичні операції в Mojo

Спосіб, у який Mojo використовує і для оголошення змінних і незмінних величин відповідно, відображає синтаксис, що в певній мірі відповідає Swift. У Swift використовується для змінних, тоді як призначено для констант або незмінних величин.

Оголошення змінної величини та використання її в Mojo:

Розвиток Mojo SDK дозволяє програмістам Mojo компілювати та виконувати вихідні файли Mojo локально з командного рядка та наразі підтримує Ubuntu і macOS. Також існує розширенням Mojo для Visual Studio Code, яке забезпечує виконання програмного коду та містить підказки.

Примітки