Die stabile Version der Programmiersprache Mojo 1.0 wurde veröffentlicht, die die Stabilisierung der Sprache und die Implementierung aller grundlegenden Funktionen markiert. Die Veröffentlichung wird als einsatzbereit bewertet und ermöglicht es, große Projekte zu entwickeln, ohne sich um Änderungen in der Sprache sorgen zu müssen, die die Kompatibilität beeinträchtigen könnten.
Die Plattform umfasst die notwendigen Komponenten für die Anwendungsentwicklung in der Sprache Mojo, darunter einen Compiler, eine Runtime, eine interaktive REPL-Umgebung zum Erstellen und Ausführen von Programmen, einen Debugger sowie ein Add-on für den Visual Studio Code (VS Code) Editor, das Unterstützung für die Autovervollständigung, Codeformatierung und Syntaxhervorhebung bietet. Darüber hinaus gibt es ein Modul zur Integration mit Jupyter zur Erstellung und Ausführung von Mojo-Notebooks. Der Quellcode der Standardbibliothek von Mojo ist unter der Lizenz Apache 2.0 mit Ausnahmen aus dem LLVM-Projekt veröffentlicht, die eine Vermischung mit Code unter der GPLv2-Lizenz erlauben. Der Quellcode des Compilers soll nach Abschluss der Stabilisierung der internen Architektur veröffentlicht werden.
Die Mojo-Sprache entwickelt sich unter der Leitung von Chris Lattner, dem Gründer und Chefarchitekten des LLVM-Projekts und dem Erfinder der Programmiersprache Swift. Die Syntax von Mojo basiert auf Python, während das Typsystem den Sprachen C/C++ ähnelt. Das Projekt wird als eine universelle Sprache präsentiert, die die Möglichkeiten von Python durch systemnahe Programmierung erweitert. Sie ist für eine Vielzahl von Aufgaben geeignet und vereint die Anwendungsfreundlichkeit für Forschungsentwicklungen und schnelles Prototyping mit der Eignung zur Schaffung hochleistungsfähiger Endprodukte.
Die Einfachheit wird durch die Verwendung der vertrauten Syntax der Programmiersprache Python erreicht. Die Entwicklung von Endprodukten wird durch die Möglichkeit zur Kompilierung in Maschinencode, sichere Speicherverwaltungsmechanismen und die Verwendung von Hardwarebeschleunigung für Berechnungen unterstützt. Um hohe Leistung zu erzielen, wird eine Parallelisierung der Berechnungen unter Einbeziehung aller verfügbaren Hardware-Ressourcen in heterogenen Systemen wie GPUs, spezialisierten Beschleunigern für maschinelles Lernen und vektoriellen Prozessorinstruktionen (SIMD) unterstützt. Bei intensiven Berechnungen ermöglicht die Parallelisierung und Nutzung aller Rechenressourcen eine Leistungsfähigkeit, die über der von C/C++-Anwendungen liegt.
Die Sprache unterstützt statische Typisierung und bietet Möglichkeiten für sichere, low-level Speicherverwaltung, ähnlich wie die Funktionen von Rust, einschließlich Referenzlebensdauer-Tracking und das Überprüfen von Variablenleihgaben (Borrow Checker). Gleichzeitig sind im Sprachumfang auch Optionen für die low-level Arbeit verfügbar, wie der direkte Zugriff auf den Speicher im unsafe Modus über den Typ Pointer, das Ausführen spezifischer SIMD-Instruktionen und der Zugriff auf Hardware-Erweiterungen wie TensorCores und AMX.
Mojo kann sowohl im Interpretationsmodus mit JIT als auch zur Kompilierung in ausführbare Dateien (AOT, ahead-of-time) verwendet werden. Der Compiler ist mit modernen Technologien zur automatischen Optimierung, Caching und verteilten Kompilierung ausgestattet. Der Quellcode in Python wird in niedrigstufigen Zwischencode MLIR (Multi-Level Intermediate Representation) umgewandelt, das im Rahmen des LLVM-Projekts entwickelt wird. Der Compiler ermöglicht die Verwendung verschiedener Backends, die MLIR unterstützen, um Maschinencode zu generieren.
Gleichzeitig wurde die Ausgabe des MAX Framework 26.5 vorgestellt, das eine Plattform für Entwicklungen im Bereich des maschinellen Lernens bietet. Das MAX Framework ergänzt die Werkzeuge von Mojo um Mittel zur Entwicklung und Debugging von Anwendungen, die Modelle des maschinellen Lernens in verschiedenen Formaten (TensorFlow, PyTorch, ONNX usw.) verwenden. In der Version 26.5 wurde die Möglichkeit hinzugefügt, nur die erforderlichen Abhängigkeiten mit der Syntax max[„Name“] zu installieren, und es wurde Unterstützung für zwei neue Modellfamilien von KI-Modellen – GLM-5.2 und Nemotron-H – hinzugefügt.
Quelle: opennet.ru
