Mojo je proprietární programovací jazyk založený na syntaxi jazyka Python. V roce 2022 ho vytvořili Chris Lattner (původní architekt programovacího jazyka Swift a autor LLVM) a bývalý zaměstnanec společnosti Google Tim Davis, kteří spolu založili společnost Modular Inc. Jazyk je tvořen jako tzv. superset jazyka Python. Mojo se snaží sloučit dvě nesourodé věci:

jednoduchost psaní/čtení zdrojového kódu známou z jazyka Python výkonnost běhu aplikací kompilovaných jazyků typu C++ a Rust

Syntaxe Syntax jazyku Mojo se snaží být velice blízká syntaxi jazyku Python, aby bylo lehčí pro uživatele jazyka Python se ho naučit. Mojo zatím nemá třídy. Je to funkcionální jazyk, na definování funkce můžeme použít buď fn a nebo pro zachování kompatibility s jazykem Python klíčové slovo def. Příklad programu Příklad definice funkce, která akceptuje parametr x a vytvoří si interní proměnnou y typu Integer. def add_one(x): var y: Int = 1 print(x + y)

Dostupnost Mojo SDK je momentálně dostupný pouze pro macOS systémy, které běží na zařízeních s čipy Apple silicon, a pro linuxovou distribuci Ubuntu. Ostatní uživatelé mohou využít webové rozhraní Mojo Playground. Podpora zařízení Windows by měla přijít v budoucích verzích.

Systémové požadavky:

Linux:

Ubuntu 20.04/22.04 LTS x86-64 CPU (SSE4.2 nebo novější) nebo AWS Graviton2/3 CPU Minimálně 8 GB RAM Python 3.8 – 3.11 g++ nebo clang++ C++ kompilátor

Mac

Apple silicon (M1 or M2 procesor) MacOS Monterey (12) nebo novější Python 3.8 – 3.11 Nástroje příkazového řádku pro Xcode nebo Xcode

Kompatibilita Do Moja můžeme importovat již existující moduly z Pythonu a používat je zde. V tomto připadě je Mojo 100% kompatibilní, protože je používán CPython. V případě přenášení jakéhokoli kódu z Pythonu do Moja to zatím neplatí. Mojo totiž podporuje základní funkce jako async/await nebo zacházení s chybami, ovšem nedisponuje mnoho dalšími funkcemi, které v Pythonu najdeme (např. async for, async with, lambda nebo používání tříd).

Rozdíly oproti Pythonu

Výkon Mojo může být oproti pythonu až 68 000krát rychlejší (testováno na výpočtu Mandelbrotovy množiny na zařízení h3-standard-88 Intel Xeon Instance). Rychlost zajišťuje především technologie MLIR (Multi-Level Intermediate Representation), která využívá vícevrstevný kompilátor, který umožňuje optimálně využívat různé výpočetní platformy. Mojo také využívá SIMD funkce, které umožňují centrální procesorové jednotce zpracovávat několik instrukcí najednou, což značně zrychlí provedení kódu.

Knihovny Mojo má vyvíjející se systém knihoven, oproti pythonu, který disponuje více než 137 000 knihovnami, se ale jedná stále jen o zlomek.

Využití Programovací jazyk byl vyvinut především za účelem práce s umělou inteligencí a strojovým učením, díky podobné syntaxi s pythonem jej může využít širší spektrum vývojářů.

Reference

Kategorie:Programovací jazyky Kategorie:Umělá inteligence Kategorie:2022