Die Welt der Technologie ist immer in Bewegung. Das neueste Kind im Block ist die Programmiersprache Mojo. Sie soll die Ausführungsgeschwindigkeit für Python-basierte Projekte verbessern und Entwicklern eine ähnliche Geschwindigkeit wie C ermöglichen.
Python ist eine der führenden Programmiersprachen. Es handelt sich um eine vielseitige, leicht zu erlernende Programmiersprache, die neuen Lernenden einen Einstieg in die Programmierung/Informatik bietet.
Außerdem ist sie eine ausgezeichnete Programmiersprache für kompetente Entwickler, die damit komplexe Anwendungen erstellen können. Einer der größten Nachteile von Python ist jedoch seine Ausführungsgeschwindigkeit. Und genau hier kommt Mojo ins Spiel.
Dieser Artikel befasst sich mit Mojo und wie es sich in das Python-Ökosystem einfügt. Lassen Sie uns beginnen.
Was ist Mojo?
Mojo ist eine moderne Programmiersprache auf hohem Niveau. Sie bietet ein intuitives Design, das Entwicklern hilft, Anwendungen schnell zu erstellen. Außerdem soll sie die Kluft zwischen Produktion und Forschung überbrücken, indem sie es den Benutzern ermöglicht, Metaprogrammierfunktionen und Systemprogrammierung mit der Syntax und dem Ökosystem von Python zu nutzen.
Es lehnt sich stark an Rust an und bietet dem Python-Ökosystem schnelle Ausführungsgeschwindigkeiten. Technisch gesehen ist Mojo eine Obermenge von Python, die Ihnen den Zugang ermöglicht.
Das Team hinter Mojo stammt von Modular, einem KI-Infrastrukturunternehmen. Und das bedeutet auch, dass es eine Programmiersprache für KI-Entwickler ist. Neben der Programmiersprache Mojo wurde auch die Interference Engine vorgestellt, mit der Entwickler ihre Arbeitsabläufe verbessern, KI-Produkte skalieren und die Inferenzlatenz verringern können (mehr dazu später).
Laut dem CEO von Modular, Chris Lattner, ist Mojo 35.000 Mal schneller als Python. Er steht auch hinter der Entwicklung der schnellen Programmiersprache. Der Geschwindigkeitsgewinn wird dadurch erreicht, dass Mojo die LLVM-Compiler-Toolchain und die MILR-Compiler-Infrastruktur (Multi-level Intermediate Representation Overview) verwendet.
Zu den Zielen der Mojo-Programmiersprachen gehören:
- Vollständige Kompatibilität mit dem Python-Ökosystem.
- Entwicklern die Möglichkeit geben, Code-Teilmengen auf Beschleunigern einzusetzen.
- Kontrolle auf niedriger Ebene, um eine vorhersehbare Leistung zu gewährleisten.
- Keine Fragmentierung des Ökosystems.
Um Mojo auszuprobieren, müssen Sie es über die Cloud-basierte, gehostete Umgebung, den Mojo Spielplatz, verwenden. Sie werden aufgefordert, sich anzumelden, und schon können Sie eine Arbeitsumgebung nutzen!

Warum brauchen wir Mojo?
Die Kernidee hinter Mojo ist die Vereinheitlichung der ML/AI-Infrastruktur durch die Bereitstellung einer Programmiersprache, die über den gesamten Stack hinweg funktioniert. Außerdem sorgt es für Benutzerfreundlichkeit, indem es die Notwendigkeit beseitigt, MLIR-Code zu schreiben.
Nach Angaben von Modular wird Mojo ein skalierbares und innovatives Programmiermodell bieten. Auf diese Weise wird es den Anwendern im KI-Bereich leicht fallen, mit Beschleunigern und heterogenen Systemen zu arbeiten.
Technisch gesehen ist Mojo eine Programmiersprache, die Metaprogrammierung zur Kompilierzeit unterstützt. Sie unterstützt auch andere Funktionen, wie z.B. Caching während des Kompilierungsflusses, adaptive Kompilierungstechniken usw. Diese Funktionen sind in anderen Programmiersprachen nicht vorhanden.
Wenn Sie mehr über die Philosophie von Mojo lesen möchten, lesen Sie Modular Docs - Warum Mojo🔥
Funktionen der Mojo Programmiersprache
In diesem Abschnitt werden wir uns die wichtigsten Funktionen der Mojo-Programmiersprache ansehen.
#1. Vollständige Kompatibilität mit Python
Mojo zielt darauf ab, mit dem Ökosystem von Python zu arbeiten und nicht gegen es. Das zeigt sich daran, dass Mojo dieselben Funktionen, Bibliotheken und Merkmale verwendet, die auch Python bietet. Sie können auch jede beliebige Python-Bibliothek in Mojo verwenden.
Um zu importieren, müssen Sie den folgenden Code verwenden:
from PythonInterface import Python
Danach können Sie mit Python.import_module()
jede beliebige Python-Bibliothek importieren.
Um zum Beispiel numpy zu importieren, müssen Sie die folgende Codezeile verwenden.
let np = Python.import_module("numpy")
In Python müssen Sie "import numpy as np" ausführen
Da es nun importiert ist, können Sie es verwenden, um Arrays zu erstellen, Berechnungen durchzuführen, usw.
array = np.array([1, 2, 3])
print(array)
In ähnlicher Weise können Sie matplotlib.pyplot importieren, um ein Diagramm in Mojo zu erstellen.
So sieht es aus, wenn ich den Code in Mojo Playground ausführe.

Wenn Sie den Code ausprobieren möchten, fügen Sie ihn einfach per Copy-Paste ein.
from PythonInterface import Python
let np = Python.import_module("numpy")
array = np.array([1, 2, 3, 4, 5])
print(array)
#2. MILR
MILR steht für Multi-Level Intermediate Representation. Mojo unterstützt MILR. Im Gegenzug können Entwickler eine ganze Reihe neuer, fortschrittlicher Funktionen nutzen. Zu diesen Funktionen gehören KI-Hardwareeinheiten, Threads und Vektoren.
MILR verbessert die Leistung aufgrund der Gleichzeitigkeit und macht Mojo schneller als Python. Außerdem können Entwickler damit die Vorteile mehrerer Kerne nutzen.
#3. Eigentümer- und Entleiherüberprüfung
Die Speicherverwaltung von Python ist sicher. Es verwendet einen Garbage Collector, so dass Programmierer sicherstellen müssen, dass der Code nicht in Race Conditions gerät.
Mojo implementiert, ähnlich wie Rust, ein striktes Modell zur Überprüfung von Eigentümern und Entleihern. Derzeit ist es nur teilweise implementiert. Die Idee hinter der Verwendung dieses Modells ist es, die Gleichzeitigkeit zu verbessern und eine hervorragende Speicherverwaltung zu bieten.
Das Ownership-Modell sorgt außerdem für einen thread-sicheren Ansatz, der ideal ist, um eine hervorragende Unterstützung der Gleichzeitigkeit zu bieten. Auf diese Weise treten bei Programmen keine Race Conditions auf. Außerdem sorgt der Borrowers-Checker dafür, dass die Variablen während der Laufzeit immer überprüft werden.
#4. Null Kosten für Abstraktion
Mojo bietet Abstraktionen zum Nulltarif, die es Entwicklern ermöglichen, die vollständige Kontrolle über die Speicherung zu übernehmen. Hier können Programmierer Inline-Zuordnungswerte zu Strukturen vornehmen.
#5. Auto-Tuning
Mojo bietet auch die Möglichkeit der automatischen Abstimmung. Dadurch wird sichergestellt, dass je nach Zielhardware automatisch die besten Werte für die Parameter zugewiesen werden.
Durch das Auto-Tuning entfällt die Notwendigkeit, Ihren Code entsprechend der Zielhardware manuell zu optimieren.
Geschwindigkeit: Wie schnell ist die Mojo-Sprache?
Python ist eine High-Level-Programmiersprache, die auf Benutzerfreundlichkeit und Wartungsfreundlichkeit ausgerichtet ist. Leider macht sie das im Vergleich zu anderen Lösungen oder Programmiersprachen langsam.
In dem Test von Modular wurde Mojo als 35000x eingestuft. Sie verwendeten den Mandelbrot-Algorithmus und führten ihn auf einer AWS-Instanz aus, die von einem Intel Xeon-Prozessor angetrieben wurde. Sie testeten PYPY, SCALAR C und MOJO zusammen mit Python. Die Ergebnisse waren superschnell, und Sie können die Ergebnisse unten sehen.

Wenn Sie mehr über die Geschwindigkeit von Mojo erfahren möchten, lesen Sie diese Beitrag zur Julialang Community.
Modulare Inferenzmaschine - KI-Modelle kostengünstig ausführen
Modular entwickelt auch eine Modular Interference Engine, mit der Sie KI-Modelle kostengünstig in der Produktion einsetzen können. Mojo unterstützt die Modular Interfence Engine standardmäßig. Sie ermöglicht es Teams, ihre Arbeitsabläufe zu vereinfachen. Außerdem können Entwickler damit die Latenzzeit bei der Inferenz reduzieren, was die Skalierung von KI-Produkten erleichtert.
Außerdem müssen die Entwickler ihr Modell nicht ändern, um die Engine zu nutzen. Sobald die Engine geladen ist, kann sie PyTorch- und TensorFlow-Modelle mit hoher Leistung und breiter Hardwareunterstützung ausstatten.
Wird es Python ersetzen?
Mojo ist neu. Es sieht vielversprechend aus. Es wird auch einige Zeit dauern, bis es seine Zielgruppen, wie Datenwissenschaftler oder Programmiersprachen, erreicht. Und ja, es löst bestimmte Probleme für KI-Enthusiasten und Lernende. Es gibt jedoch viele ähnliche Lösungen, die die Geschwindigkeit der Python-Sprache verbessern. So gibt es zum Beispiel Jax, Codon und Julia - eine Sprache für Datenwissenschaftler.
Es können auch zwei Dinge passieren. Erstens wächst die Anzahl der Funktionen exponentiell und die Community nimmt sie an. Ein anderes Ergebnis ist, dass sie zu einer Ad-hoc-Programmiersprache wird, die Python-Bibliotheken und die Modular Interference Engine nutzt.
Wird Mojo auch Python ersetzen? Das kann nur die Zeit zeigen.
Als Nächstes sehen Sie sich nützliche Python-Einzeiler an, die häufigen Aufgaben zu vereinfachen.