Mojo (programovací jazyk)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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. +more 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. +more 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. +more11 * 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. +more 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 Mandelbrotovi 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. +more 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ářů.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top