Inhaltsverzeechnes[Verstoppen][Show]
Hutt Dir jeemools gewënscht méi séier a méi effizient Apps ze konstruéieren, awer entdeckt datt Standardprogramméierungssproochen net fäeg sinn Är Ufuerderungen ze treffen?
Dëst ass wann Mojo Sprooch an d'Spill kënnt.
Mojo ass eng nei Programméierungssprooch entwéckelt vum Modular, eng Firma déi op AI Infrastruktur spezialiséiert ass.
Et ass besonnesch entwéckelt fir Entwéckler z'erméiglechen méi séier a méi robust Apps fir verschidde Benotzungsfäll ze konstruéieren, dorënner AI Entwécklung. An dësem Post wäerte mir kucken wat Mojo ass, wéi et Wierker, a firwat Dir et op Är nächst Projet benotzen soll.
D'Origine vum Mojo
D'Creatoren vu Mojo hunn e Besoin fir eng Programméierungssprooch unerkannt, déi d'Benotzerfrëndlechkeet vum Python kombinéiert mat der Geschwindegkeet an der Effizienz vum C.
An, si hunn eng Sprooch gegrënnt, déi d'Entwéckler erlaabt High-Performance Apps ze bauen ouni Standard Hardware Beschreiwungssproochen ze léieren.
Als Resultat hunn se Mojo erstallt, wat geduecht ass fir voll kompatibel mam Python-Ökosystem ze sinn, wärend C-Niveau Geschwindegkeet ubitt.
Modular: D'Organisatioun hannert Mojo Sprooch
Also, wien sinn d'Creatoren vun dëser futuristescher Sprooch?
Modular ass e weltleitend AI Infrastruktur Startup erstallt vum Chris Lattner an Tim Davis, déi sech bei Google kennegeléiert hunn a gemierkt hunn datt ze komplizéiert a fragmentéiert Infrastruktur den AI säi globalen Afloss limitéiert.
D'Zil an d'Zil vu Modular sinn d'AI Infrastruktur nei ze iwwerdenken fir d'Mënschheet ze verbesseren. Hir Kultur a Prinzipien setzen eng Prime op Clienten, héichqualitativ Produktiounssoftware a liwweren sënnvoll Resultater
D'Ziler vum Mojo
Mojo gouf entwéckelt fir en eenzegaartege Programméierungsmodell fir Maschinnléierbeschleuniger ze bidden.
Modular huet festgestallt datt Mojo allgemeng Zweckprogramméiere sollt erlaben, well haut CPUs Tensoren an aner AI Beschleuniger hunn. Ausserdeem, well Python extensiv a Maschinnléieren an aner Felder benotzt gëtt, huet Modular gewielt fir de Python-Ökosystem matzeschaffen.
D'Benotzung vu Python huet den Design vun der Sprooch weider erliichtert. Well d'Majoritéit vun der Syntax scho festgeluecht gouf, konnt d'Corporation sech amplaz op de Bau vum Kompiléierungsmechanismus konzentréieren a spezialiséiert Programméierungsfäegkeeten ubidden.
Wichteg Features fir ze berücksichtegen
Programméierbarkeet
Progressiv Typen
Déi progressiv Typen Feature vu Mojo Language erméiglecht d'Entwéckler Typ Annotatiounen ze benotzen verbesseren Effizienz a Feeler Kontrollen.
D'Entwéckler kënne méi effektiv Code designen, dee Feeler bei der Zesummesetzung erkennt, Bugs eliminéieren an d'Effizienz verbesseren, andeems se méi grëndlech Typinformatioun liwweren.
Null Käschten Abstraktiounen
D'Entwéckler kënnen d'Kontroll iwwer d'Späichere iwwerhuelen andeems d'Inline-Allokatioun vun Daten a Strukturen duerch d'Nullkäschteabstraktioune vun der Mojo Language geliwwert gëtt.
Andeems Dir d'Noutwendegkeete fir extra Erënnerungsallokatioune mécht, verbessert dës Fonktioun d'Codeeffizienz a senkt d'Quantitéit vum Kesselcode.
Integréiert Sprooch Auto-Tuning
D'Sprooch-integréiert Auto-Tuning Funktionalitéit an der Mojo Language erméiglecht d'Entwéckler automatesch d'ideal Wäerter vun den Parameteren ze bestëmmen fir vun der Zil-Hardware ze profitéieren.
Mat dëser Funktionalitéit ass et méi einfach de Code ze optimiséieren ouni et manuell fir all Hardwarekombinatioun unzepassen.
Mojo Sprooch ass e flexibelen an effektiven Tool fir AI Entwécklung well et och déi ganz Kraaft vu MLIR (Multi-Level Intermediate Representation), eng parallel heterogen Runtime a séier Bauzäiten ubitt.
Paralleliséierung
Mojo benotzt MLIR, wat Programméierer erlaabt Vektoren, Threads an Hardware Eenheeten fir AI fir Paralleliséierung ze benotzen. Mojo ënnerstëtzt parallel Veraarbechtung iwwer verschidde Kären am Géigesaz zu Python's Single-threaded Ausféierung.
Mat engem 35,000x Speedup iwwer Python, Mojo schléit aner Sproochen a punkto Geschwindegkeet.
Interoperabilitéit
Interoperabilitéit mam ganze Python-Ökosystem ass ee vun den eenzegaartege Virdeeler vum Mojo. Dëst implizéiert datt Dir Mojo mat all arbiträre Bibliothéiken kombinéiere kënnt, wéi Numpy a Matplotlib, souwéi Äre personaliséierte Code.
Zum Beispill kënnt Dir Daten an Ärem Mojo Code visualiséieren mat der Python Bibliothéik Matplotlib.
Extensibilitéit
Mojo ass och zimmlech flexibel, wat d'Benotzer erlaabt einfach Pre- a Postveraarbechtungsschrëtt op Modeller ze addéieren oder existent Schrëtt fir nei auszetauschen.
Fir hir Modeller an de Modular Stack ze verbesseren, kënnen d'Entwéckler d'Kernelfusioun, d'Graf-Rewrites, d'Formfunktiounen an aner Techniken benotzen.
Firwat géift Dir et iwwer Python wielen?
Python ass eng populär AI Entwécklungssprooch wéinst senger Flexibilitéit an héich performant kompiléierte Bibliothéiken. Wéi och ëmmer, et ass wesentlech méi lues wéi Sprooche wéi C++.
Dofir léiere Programméierer Python-Wrapper ëm méi séier Sproochen ze benotzen fir Python fir Leeschtungskritesch Beräicher ze vermeiden.
Dëst féiert zum zweesproochege Problem, an deem Modeller vum Python an eng méi séier Implementatioun transforméiert musse ginn, sou wéi ONNX oder Fackelskript, wat net all Python Fäegkeeten ënnerstëtzt. Python huet och Leeschtungsprobleemer an e Mangel u gudder parallele Veraarbechtung.
Och erfuerene Programméierer fannen et schwéier ze studéieren, debuggen an d'Leeschtungsprobleemer ze adresséieren wéinst dem zweesproochegen Dilemma.
Et ginn och Basisbeschränkungen fir wat Python maache kann wéinst der Aart a Weis wéi d'Sprooch strukturéiert ass. Iwwerdeems d'real-Welt Ëmsetzung vun Algorithmen mat Basiskomponenten einfach ka schéngen, ass et wesentlech méi schwéier an erfuerdert d'Benotzung vun enger méi séierer Sprooch.
Wéi Fir Ugefaangen?
Dir kënnt ufänken Mojo Sprooch elo an hirer Spillplaz ze benotzen fir unzefänken. De JupyterHub-baséiert Spillplaz gëtt Lektioune an d'Méiglechkeet Ären eegene Mojo Code ze kreéieren, och wann Mojo nach ëmmer eng Aarbecht ass.
Dir kënnt Iech op hirer Websäit aschreiwen fir Zougang zum Spillplaz ze kréien.
Fir seng Leeschtungsziler z'erreechen, benotzt Mojo nächst Generatioun Compiler Technologien mat integréierte Caching, Multithreading a Cloud Verdeelungstechnologien.
Et füügt zousätzlech Primitiv un d'Systemprogramméiere bäi a strieft e Python Superset mat der Zäit ze ginn. Fir mat Mojo Kodéierung unzefänken, benotzt de Mojo Compiler fir e Mojo Programm vum Terminal ze lafen op déiselwecht Manéier wéi Python.
D'Sprooch ass am Moment ënner Entwécklung a riicht sech un Entwéckler mat Erfahrung am Systemprogramméiere.
Apaken
Mojo gëtt als Python Superset ugesinn. An et huet d'Potenzial fir d'Programméierung ze revolutionéieren andeems se d'Einfachheet vum Python kombinéiert mat der Leeschtung vu C ++ a Rust.
Et kann Virdeel vun der voller Python Bibliothéik Ökosystem, wat d'Entwéckler erlaabt High-Performance-Bibliothéiken ze kreéieren ouni de Besoin fir C, C++, Rust oder CUDA.
Et erméiglecht d'Produktioun vu portable Code dank senger Autotuning a Compile-Time Meta-Programméierungsfeatures.
Och wann et nach ëmmer eng Aarbecht amgaang ass, huet et d'Potenzial fir e formidabelt Programméierungsinstrument ze ginn an d'Programméierungsindustrie ze transforméieren. Also, mir sollten op zukünfteg Entwécklunge vu Modular bleiwen!
Chris Santos
Denkt Dir, datt eng Persoun mat Basis- bis Mëttelwëssen hire Studium an dëser neier Sprooch kéint ufänken? Oder roden Dir Iech fir d'éischt eng méi Basis Sprooch ze studéieren, wéi Javascript oder Python?
İlke Candan Bengi
Moien Chris, sorry fir déi spéit Äntwert! Ech gleewen datt e Basisverständnis / Erfarung vu Python virdru hëllefräich ka sinn ier Dir mam Mojo ufänkt.