Ĉu vi iam deziris konstrui pli rapidajn kaj pli efikajn programojn, tamen malkovris, ke normaj programlingvoj ne kapablas plenumi viajn postulojn?
Jen kiam Mojo Lingvo eniras en ludon.
Mojo estas nova programlingvo evoluigita de Modula, firmao kiu specialiĝas pri AI-infrastrukturo.
Ĝi estas precipe desegnita por ebligi programistojn konstrui pli rapidajn kaj pli fortikajn programojn por pluraj uzkazoj, inkluzive de AI-disvolviĝo. En ĉi tiu afiŝo, ni rigardos kio Mojo estas, kiel ĝi funkcias, kaj kial vi devus uzi ĝin en via venonta projekto.
La Originoj de Mojo
La kreintoj de Mojo rekonis bezonon de programlingvo kiu kombinis la uzeblecon de Python kun la rapideco kaj efikeco de C.
Kaj ili establis lingvon, kiu permesus al programistoj konstrui alt-efikecajn programojn sen devi lerni normajn aparatajn priskribajn lingvojn.
Kiel rezulto, ili kreis Mojo, kiu estas intencita esti plene kongrua kun la Python-ekosistemo provizante C-nivelan rapidecon.
Modula: La Organizo Malantaŭ Mojo Lingvo
Do, kiuj estas la kreintoj de ĉi tiu futurisma lingvo?
Modular estas mond-gvida AI-infrastruktura noventrepreno kreita de Chris Lattner kaj Tim Davis, kiuj renkontis ĉe Google kaj rimarkis, ke tro komplika kaj fragmenta infrastrukturo limigas la tutmondan influon de AI.
La celo kaj celo de Modular estas repripensi AI-infrastrukturon por plibonigi la homaron. Ilia kulturo kaj principoj altigas klientojn, altkvalitan produktadprogramaron kaj liveras signifajn rezultojn
La Celoj de Mojo
Mojo estis dizajnita por disponigi unikan programan modelon por maŝinlernantaj akceliloj.
Modular determinis ke Mojo devus permesi ĝeneraluzeblan programadon ĉar la hodiaŭaj CPUoj havas tensorojn kaj aliajn AI-akceliloj. Krome, ĉar Python estas vaste uzata en maŝinlernado kaj aliaj kampoj, Modular elektis aliĝi al la Python-ekosistemo.
La uzo de Python plue moderigis la dezajnon de la lingvo. Ĉar la plimulto de la sintakso jam estis determinita, la entrepreno povis anstataŭe koncentriĝi pri konstruado de la kompilmekanismo kaj disponigado de specialecaj programaj kapabloj.
Gravaj Trajtoj Konsiderindaj
Programebleco
Progresemaj Tipoj
La progresiva tipoj trajto de Mojo Lingvo ebligas programistojn uzi tipkotadojn al plibonigi efikecon kaj erarkontroloj.
Programistoj povas desegni pli efikan kodon, kiu detektas erarojn je kompilo, forigante cimojn kaj plibonigante efikecon, provizante pli ĝisfundajn tipinformojn.
Nulo Kostaj Abstraktaĵoj
Programistoj povas preni kontrolon de stokado per enlinia asignado de datumoj en strukturojn danke al la nul-kostaj abstraktaĵoj provizitaj de la Mojo Lingvo.
Forigante la postulon por ekstra memoro-asignoj, ĉi tiu funkcio plibonigas kodan efikecon kaj malaltigas la kvanton de kodo de kodo.
Integrita Lingvo Aŭtomata Agordo
La lingvo-integra aŭtomata agorda funkcio en Mojo Language ebligas al programistoj aŭtomate determini la idealajn valorojn de la parametroj por profiti el la cela aparataro.
Kun ĉi tiu funkcio, estas pli simple optimumigi kodon sen devi mane alĝustigi ĝin por ĉiu aparatara kombinaĵo.
Mojo Lingvo estas fleksebla kaj efika ilo por AI-evoluo ĉar ĝi ankaŭ provizas la tutan potencon de MLIR (Multnivela Meza Reprezento), paralelan heterogenan rultempon kaj rapidajn konstrutempojn.
Paraleligo
Mojo uzas MLIR, kiu permesas al programistoj utiligi vektorojn, fadenojn kaj hardvarunuojn por AI por paraleligo. Mojo subtenas paralelan prilaboradon super pluraj kernoj kontraste al la unu-fadena ekzekuto de Python.
Kun 35,000x plirapidigo super Python, Mojo batas aliajn lingvojn laŭ rapideco.
interoperabilidad
Kunfunkciebleco kun la tuta Python-ekosistemo estas unu el la unikaj avantaĝoj de Mojo. Ĉi tio implicas, ke vi povas kombini Mojo kun ajnaj arbitraj bibliotekoj, kiel Numpy kaj Matplotlib, kaj ankaŭ vian laŭmendan kodon.
Ekzemple, vi povas bildigi datumojn en via Mojo-kodo uzante la Python-bibliotekon Matplotlib.
Extensibilidad
Mojo ankaŭ estas sufiĉe fleksebla, permesante al uzantoj simple aldoni antaŭ- kaj post-pretigajn paŝojn al modeloj aŭ interŝanĝi ekzistantajn paŝojn por novaj.
Por plibonigi siajn modelojn kaj la Modulan stakon, programistoj povas uzi kernan fuzion, grafeajn reverkojn, formajn funkciojn kaj aliajn teknikojn.
Kial Vi Elektus Ĝin Super Python?
Python estas populara AI-disvolva lingvo pro sia fleksebleco kaj alt-efikecaj kompilitaj bibliotekoj. Tamen, ĝi estas signife pli malrapida ol lingvoj kiel ekzemple C++.
Tial, programistoj lernas uzi Python-envolvaĵojn ĉirkaŭ pli rapidaj lingvoj por eviti uzi Python por agado-kritikaj areoj.
Ĉi tio kondukas al la dulingva problemo, en kiu modeloj devas esti transformitaj de Python en pli rapidan efektivigon, kiel ONNX aŭ torĉa skripto, kiu ne subtenas ĉiujn kapablojn de Python. Python ankaŭ havas rendimentajn problemojn kaj mankon de bona paralela prilaborado.
Eĉ spertaj programistoj malfacilas studi, sencimigi kaj trakti rendimentajn problemojn pro la dulingva dilemo.
Estas ankaŭ bazaj limigoj al tio, kion Python povas fari pro la maniero kiel la lingvo estas strukturita. Dum la real-monda efektivigo de algoritmoj utiligantaj bazajn komponentojn povas ŝajni facila, ĝi estas signife pli malfacila kaj necesigas la uzon de pli rapida lingvo.
Kiel Komenci?
Vi povas komenci uzi Mojo Language ĝuste nun en ilia Ludejo por komenci. La Ludejo bazita en JupyterHub donas lecionojn kaj la ŝancon krei vian propran Mojo-kodon, kvankam Mojo ankoraŭ estas laboro en progreso.
Vi povas registriĝi por aliro en ilia retejo por aliri la Ludejon.
Por atingi ĝiajn rendimentajn celojn, Mojo uzas venontgeneraciajn kompililteknologiojn kun integraj kaŝmemoroj, multifadenaj kaj nubaj distribuaj teknologioj.
Ĝi aldonas pliajn primitivulojn al sistemaj programado kaj aspiras iĝi Python-superaro laŭlonge de la tempo. Por komenci kodigon per Mojo, uzu la Mojo-kompililon por ruli Mojo-programon de la terminalo same kiel Python faras.
La lingvo estas nuntempe evoluanta kaj celas programistojn kun sperto pri sistemaj programado.
Enŝipiĝi
Mojo estas konsiderita Python-superaro. Kaj ĝi havas la eblecon revolucii programadon kombinante la simplecon de Python kun la agado de C++ kaj Rust.
Ĝi povas utiligi la plenan Biblioteko Python ekosistemo, permesante al programistoj krei alt-efikecajn bibliotekojn sen la bezono de C, C++, Rust aŭ CUDA.
Ĝi ebligas la produktadon de portebla kodo danke al siaj aŭtomataj agordaj kaj kompiltempaj metaprogramaj funkcioj.
Kvankam ĝi ankoraŭ estas laboro en progreso, ĝi havas la eblecon iĝi enorma programa ilo kaj transformi la programan industrion. Do, ni devus resti agordita por estontaj evoluoj de Modular!
Chris Santos
Ĉu vi pensas, ke homo kun bazaj ĝis mezaj konoj povus komenci siajn studojn en ĉi tiu nova lingvo? Aŭ ĉu vi konsilas studi pli bazan lingvon unue, kiel Javascript aŭ Python?
İlke Candan Bengi
Saluton Chris, pardonu la malfruan respondon! Mi kredas, ke havi bazan komprenon/sperton pri Python antaŭe povus esti helpema antaŭ ol komenci kun Mojo.