Har du någonsin önskat att konstruera snabbare och effektivare appar men upptäckt att standardprogrammeringsspråk inte kan uppfylla dina krav?
Det är då Mojo Language kommer in i bilden.
Mojo är ett nytt programmeringsspråk utvecklat av Modular, ett företag som är specialiserat på AI-infrastruktur.
Den är särskilt utformad för att göra det möjligt för utvecklare att konstruera snabbare och mer robusta appar för flera användningsfall, inklusive AI-utveckling. I det här inlägget ska vi titta på vad Mojo är, hur det fungerar och varför du ska använda det i ditt nästa projekt.
Ursprunget till Mojo
Skaparna av Mojo insåg ett behov av ett programmeringsspråk som kombinerade användbarheten av Python med hastigheten och effektiviteten hos C.
Och de etablerade ett språk som skulle göra det möjligt för utvecklare att konstruera högpresterande appar utan att behöva lära sig standardspråk för beskrivning av hårdvara.
Som ett resultat skapade de Mojo, som är tänkt att vara helt kompatibel med Python-ekosystemet samtidigt som den ger hastighet på C-nivå.
Modulär: Organisationen bakom Mojo Language
Så, vilka är skaparna av detta futuristiska språk?
Modular är en världsledande startup för AI-infrastruktur skapad av Chris Lattner och Tim Davis, som träffades på Google och insåg att alltför komplicerad och fragmenterad infrastruktur begränsade AI:s globala inflytande.
Syftet och målet med Modular är att ompröva AI-infrastruktur för att förbättra mänskligheten. Deras kultur och principer sätter en premie på kunder, högkvalitativ produktionsmjukvara och att leverera meningsfulla resultat
Mojos mål
Mojo designades för att tillhandahålla en unik programmeringsmodell för acceleratorer för maskininlärning.
Modular bestämde att Mojo skulle tillåta allmän programmering eftersom dagens processorer har tensorer och andra AI-acceleratorer. Dessutom, eftersom Python används flitigt inom maskininlärning och andra områden, valde Modular att gå med i Python-ekosystemet.
Användningen av Python underlättade ytterligare designen av språket. Eftersom majoriteten av syntaxen redan hade bestämts kunde företaget istället koncentrera sig på att bygga kompileringsmekanismen och tillhandahålla specialiserade programmeringsmöjligheter.
Viktiga funktioner att tänka på
programmerbarhet
Progressiva typer
Funktionen för progressiva typer av Mojo Language gör det möjligt för utvecklare att använda typkommentarer till öka effektiviteten och felkontroller.
Utvecklare kan designa mer effektiv kod som upptäcker misstag vid kompilering, eliminerar buggar och förbättrar effektiviteten genom att tillhandahålla mer grundlig typinformation.
Nollkostnadsabstraktioner
Utvecklare kan ta kontroll över lagringen genom att inline-allokera data till strukturer tack vare nollkostnadsabstraktionerna som tillhandahålls av Mojo Language.
Genom att avskaffa kravet på extra minnestilldelning, förbättrar den här funktionen kodeffektiviteten och sänker mängden boilerplate-kod.
Integrerad språkinställning
Den språkintegrerade autojusteringsfunktionen i Mojo Language gör det möjligt för utvecklare att automatiskt bestämma parametrarnas idealvärden för att dra nytta av målhårdvaran.
Med denna funktionalitet är det enklare att optimera koden utan att behöva justera den manuellt för varje hårdvarukombination.
Mojo Language är ett flexibelt och effektivt verktyg för AI-utveckling eftersom det också ger hela kraften hos MLIR (Multi-Level Intermediate Representation), en parallell heterogen körtid och snabba byggtider.
Parallellisering
Mojo använder sig av MLIR, som tillåter programmerare att använda vektorer, trådar och hårdvaruenheter för AI för parallellisering. Mojo stöder parallell bearbetning över flera kärnor i motsats till Pythons entrådiga exekvering.
Med en 35,000 XNUMX gånger snabbare över Python slår Mojo andra språk när det gäller hastighet.
Interoperabilitet
Interoperabilitet med hela Python-ekosystemet är en av Mojos unika fördelar. Detta innebär att du kan kombinera Mojo med alla godtyckliga bibliotek, som Numpy och Matplotlib, såväl som din skräddarsydda kod.
Till exempel kan du visualisera data i din Mojo-kod med Python-biblioteket Matplotlib.
Sträckbarhet
Mojo är också ganska flexibelt, vilket gör att användare helt enkelt kan lägga till för- och efterbearbetningssteg till modeller eller byta ut befintliga steg mot nya.
För att förbättra sina modeller och Modular-stacken kan utvecklare använda kärnfusion, grafomskrivningar, formfunktioner och andra tekniker.
Varför skulle du välja det framför Python?
Python är ett populärt AI-utvecklingsspråk på grund av dess flexibilitet och högpresterande kompilerade bibliotek. Det är dock betydligt långsammare än språk som C++.
Därför lär sig programmerare att använda Python-omslag runt snabbare språk för att undvika att använda Python för prestandakritiska områden.
Detta leder till problemet med två språk, där modeller måste omvandlas från Python till en snabbare implementering, såsom ONNX eller torch script, som inte stöder alla Pythons möjligheter. Python har också prestandaproblem och brist på bra parallell bearbetning.
Även erfarna programmerare har svårt att studera, felsöka och ta itu med prestandaproblem på grund av tvåspråkiga dilemmat.
Det finns också grundläggande begränsningar för vad Python kan göra på grund av hur språket är uppbyggt. Även om den verkliga implementeringen av algoritmer som använder grundläggande komponenter kan verka lätt, är det betydligt svårare och kräver användning av ett snabbare språk.
Hur man kommer igång?
Du kan börja använda Mojo Language just nu på deras lekplats för att komma igång. Den JupyterHub-baserade lekplatsen ger lektioner och möjlighet att skapa din egen Mojo-kod, även om Mojo fortfarande är ett pågående arbete.
Du kan registrera dig för åtkomst på deras webbplats för att komma åt lekplatsen.
För att nå sina prestationsmål använder Mojo nästa generations kompilatorteknik med integrerad cachning, multithreading och molndistributionsteknik.
Den lägger till ytterligare primitiver till systemprogrammering och strävar efter att bli en Python-superuppsättning med tiden. För att börja koda med Mojo, använd Mojo-kompilatorn för att köra ett Mojo-program från terminalen på samma sätt som Python gör.
Språket är för närvarande under utveckling och riktar sig till utvecklare med erfarenhet av systemprogrammering.
Sammanfatta
Mojo anses vara en Python-superuppsättning. Och den har potential att revolutionera programmering genom att kombinera enkelheten hos Python med prestanda hos C++ och Rust.
Det kan dra nytta av det fulla Python bibliotek ekosystem, vilket gör att utvecklare kan skapa högpresterande bibliotek utan behov av C, C++, Rust eller CUDA.
Den möjliggör produktion av bärbar kod tack vare dess autotuning och metaprogrammeringsfunktioner vid kompilering.
Även om det fortfarande är ett pågående arbete, har det potential att bli ett formidabelt programmeringsverktyg och förändra programmeringsindustrin. Så vi bör hålla ögonen öppna för framtida utvecklingar från Modular!
Chris Santos
Tror du att en person med grundläggande till medelstora kunskaper skulle kunna börja sina studier på detta nya språk? Eller rekommenderar du att du studerar ett mer grundläggande språk först, som Javascript eller Python?
İlke Candan Bengi
Hej Chris, förlåt för sent svar! Jag tror att det kan vara till hjälp att ha en grundläggande förståelse/erfarenhet av Python i förväg innan du börjar med Mojo.