Kas olete kunagi soovinud luua kiiremaid ja tõhusamaid rakendusi, kuid avastanud, et standardsed programmeerimiskeeled ei suuda teie nõudeid täita?
See on siis, kui Mojo keel tuleb mängu.
Mojo on uus programmeerimiskeel, mille on välja töötanud Moodulkiivrid, AI infrastruktuurile spetsialiseerunud ettevõte.
See on spetsiaalselt loodud selleks, et võimaldada arendajatel luua kiiremaid ja tugevamaid rakendusi mitmeks kasutusjuhtumiks, sealhulgas tehisintellekti arendamiseks. Selles postituses vaatame, mida Mojo on, kuidas see töötab ja miks peaksite seda oma järgmises projektis kasutama.
Mojo päritolu
Mojo loojad mõistsid vajadust programmeerimiskeele järele, mis ühendaks Pythoni kasutatavuse C kiiruse ja tõhususega.
Ja nad lõid keele, mis võimaldaks arendajatel luua suure jõudlusega rakendusi, ilma et nad peaksid õppima standardseid riistvara kirjelduskeeli.
Selle tulemusena lõid nad Mojo, mis on mõeldud Pythoni ökosüsteemiga täielikult ühilduvaks, pakkudes samal ajal C-taseme kiirust.
Modulaarne: Mojo keele taga asuv organisatsioon
Niisiis, kes on selle futuristliku keele loojad?
Modular on maailma juhtiv AI infrastruktuuri idufirma, mille lõid Chris Lattner ja Tim Davis, kes kohtusid Google'is ja mõistsid, et liiga keeruline ja killustatud infrastruktuur piirab tehisintellekti globaalset mõju.
Modulari eesmärk ja eesmärk on AI infrastruktuur ümber mõelda, et inimkonda parandada. Nende kultuur ja põhimõtted seavad esmatähtsaks klientidele, kvaliteetsele tootmistarkvarale ja sisukate tulemuste saavutamisele
Mojo eesmärgid
Mojo loodi selleks, et pakkuda masinõppe kiirendite jaoks ainulaadset programmeerimismudelit.
Modular otsustas, et Mojo peaks võimaldama üldotstarbelist programmeerimist, kuna tänapäeva protsessoritel on tensorid ja muud AI kiirendid. Lisaks, kuna Pythonit kasutatakse laialdaselt masinõppes ja muudes valdkondades, otsustas Modular liituda Pythoni ökosüsteemiga.
Pythoni kasutamine hõlbustas veelgi keele kujundust. Kuna suurem osa süntaksist oli juba kindlaks määratud, sai ettevõte selle asemel keskenduda kompileerimismehhanismi loomisele ja spetsiaalsete programmeerimisvõimaluste pakkumisele.
Olulised funktsioonid, mida tuleks arvestada
ohjelmoitavuuteen
Progressiivsed tüübid
Mojo keele progressiivsete tüüpide funktsioon võimaldab arendajatel kasutada tüübimärkusi suurendada tõhusust ja veakontrollid.
Arendajad võivad koostada tõhusama koodi, mis tuvastab vead kompileerimise ajal, kõrvaldades vead ja suurendades tõhusust, pakkudes põhjalikumat tüübiteavet.
Nullkulu abstraktsioonid
Arendajad saavad salvestusruumi kontrolli alla võtta, jaotades andmed struktuuridesse tänu Mojo keele pakutavatele nullkuluga abstraktsioonidele.
Kaotades lisamälu eraldamise nõude, parandab see funktsioon koodi tõhusust ja vähendab standardkoodi hulka.
Integreeritud keele automaathäälestus
Mojo keele keelega integreeritud automaatse häälestamise funktsioon võimaldab arendajatel automaatselt määrata parameetrite ideaalsed väärtused, et sihtriistvarast kasu saada.
Selle funktsiooni abil on koodi optimeerimine lihtsam, ilma et peaksite seda iga riistvarakombinatsiooni jaoks käsitsi kohandama.
Mojo Language on paindlik ja tõhus tööriist AI arendamiseks, kuna see pakub ka kogu MLIR-i (Multi-Level Intermediate Representation) võimsust, paralleelset heterogeenset käitusaega ja kiireid koostamisaegu.
Paralleelsus
Mojo kasutab MLIR-i, mis võimaldab programmeerijatel kasutada AI jaoks paralleelseerimiseks vektoreid, lõime ja riistvaraüksusi. Mojo toetab paralleelset töötlemist mitmes tuumas, erinevalt Pythoni ühelõimega täitmisest.
Pythoniga võrreldes 35,000 XNUMX-kordse kiirusega Mojo edestab kiiruse poolest teisi keeli.
Koostalitlusvõime
Koostalitlusvõime kogu Pythoni ökosüsteemiga on üks Mojo ainulaadseid eeliseid. See tähendab, et võite kombineerida Mojo mis tahes suvaliste teekidega, nagu Numpy ja Matplotlib, samuti oma kohandatud koodiga.
Näiteks saate oma Mojo koodis olevaid andmeid Pythoni teegi Matplotlib abil visualiseerida.
Laiendatavus
Mojo on ka üsna paindlik, võimaldades kasutajatel lihtsalt mudelitele eel- ja järeltöötlusetappe lisada või olemasolevaid samme uute vastu vahetada.
Oma mudelite ja mooduli virna täiustamiseks saavad arendajad kasutada kerneli liitmist, graafikute ümberkirjutamist, kujufunktsioone ja muid tehnikaid.
Miks valiksite selle Pythoni asemel?
Python on oma paindlikkuse ja suure jõudlusega kompileeritud teekide tõttu populaarne AI arenduskeel. Kuid see on oluliselt aeglasem kui sellised keeled nagu C++.
Seetõttu õpivad programmeerijad kasutama Pythoni ümbriseid kiiremate keelte ümber, et vältida Pythoni kasutamist jõudluskriitilistes valdkondades.
See toob kaasa kahe keele probleemi, mille puhul tuleb Pythonist mudelid muuta kiiremaks teostuseks, nagu ONNX või tõrviku skript, mis ei toeta kõiki Pythoni võimalusi. Pythonil on ka jõudlusprobleemid ja hea paralleeltöötluse puudumine.
Isegi kogenud programmeerijatel on kahe keele dilemma tõttu raske uurida, siluda ja jõudlusprobleeme lahendada.
Keele ülesehituse tõttu on Pythonile ka põhipiirangud. Kuigi põhikomponente kasutavate algoritmide reaalne rakendamine võib tunduda lihtne, on see oluliselt keerulisem ja nõuab kiirema keele kasutamist.
Kuidas alustada?
Alustamiseks võite hakata Mojo keelt kasutama kohe nende mänguväljakul. JupyterHubil põhinev mänguväljak annab õppetunde ja võimaluse luua oma Mojo kood, kuigi Mojo on veel pooleli.
Mänguväljakule pääsemiseks võite registreeruda nende veebisaidil.
Oma jõudluseesmärkide saavutamiseks kasutab Mojo järgmise põlvkonna kompilaatoritehnoloogiaid koos integreeritud vahemällu, mitme lõimega ja pilve levitamise tehnoloogiatega.
See lisab süsteemide programmeerimisele täiendavaid primitiive ja soovib saada aja jooksul Pythoni superkomplektiks. Mojoga kodeerimise alustamiseks kasutage Mojo kompilaatorit, et käivitada terminalist Mojo programm samamoodi nagu Python.
Keel on praegu väljatöötamisel ja on suunatud süsteemide programmeerimise kogemusega arendajatele.
Pakkima
Mojo peetakse Pythoni superkomplektiks. Ja sellel on potentsiaal muuta programmeerimine revolutsiooniliseks, ühendades Pythoni lihtsuse C++ ja Rusti jõudlusega.
See võib täielikult ära kasutada Pythoni raamatukogu ökosüsteem, mis võimaldab arendajatel luua suure jõudlusega teeke ilma C, C++, Rust või CUDA kasutamata.
See võimaldab toota kaasaskantavat koodi tänu automaatsele häälestamisele ja kompileerimisaja metaprogrammeerimise funktsioonidele.
Kuigi see on veel pooleli, võib sellest saada suurepärane programmeerimistööriist ja muuta programmeerimistööstust. Seega peaksime Modulari tulevaste arengutega kursis olema!
Chris Santos
Kas arvate, et põhi- ja keskteadmistega inimene suudaks selles uues keeles õpinguid alustada? Või soovitate kõigepealt õppida mõnda elementaarsemat keelt, nagu Javascript või Python?
İlke Candan Bengi
Tere Chris, vabandust hilinenud vastuse pärast! Usun, et Pythoni põhiteadmiste/kogemuste omamine võib olla kasulik enne Mojoga alustamist.