Qatt xtaqt li tibni apps aktar mgħaġġla u aktar effiċjenti għad skoprejt li l-lingwi standard tal-ipprogrammar mhumiex kapaċi jissodisfaw ir-rekwiżiti tiegħek?
Dan huwa meta jidħol fis-seħħ Mojo Language.
Mojo hija lingwa ta' programmar ġdida żviluppata minn Modulari, kumpanija li tispeċjalizza fl-infrastruttura AI.
Hija mfassla b'mod partikolari biex tippermetti lill-iżviluppaturi jibnu apps aktar mgħaġġla u aktar robusti għal diversi każijiet ta' użu, inkluż l-iżvilupp tal-AI. F'din il-kariga, aħna ser inħarsu lejn xiex Mojo huwa, kif taħdem, u għaliex għandek tużah fil-proġett li jmiss tiegħek.
L-Oriġini ta' Mojo
Il-ħallieqa ta 'Mojo għarfu l-ħtieġa għal lingwa ta' programmar li għaqqad l-użabilità ta 'Python mal-veloċità u l-effiċjenza ta' C.
U, stabbilixxew lingwa li tippermetti lill-iżviluppaturi jibnu apps ta 'prestazzjoni għolja mingħajr ma jkollhom għalfejn jitgħallmu lingwi standard ta' deskrizzjoni tal-ħardwer.
Bħala riżultat, huma ħolqu Mojo, li huwa maħsub li jkun kompletament kompatibbli mal-ekosistema Python filwaqt li jipprovdi veloċità fil-livell C.
Modulari: L-Organizzazzjoni Wara Mojo Language
Allura, min huma l-ħallieqa ta’ din il-lingwa futuristika?
Modular hija startup ta’ infrastruttura AI ewlenija fid-dinja maħluqa minn Chris Lattner u Tim Davis, li ltaqgħu ma’ Google u rrealizzaw li infrastruttura wisq ikkumplikata u frammentata kienet qed tillimita l-influwenza globali tal-AI.
L-għan u l-għan ta 'Modular huma li terġa' taħseb l-infrastruttura tal-AI biex ittejjeb l-umanità. Il-kultura u l-prinċipji tagħhom jagħtu primjum lill-klijenti, softwer ta’ produzzjoni ta’ kwalità għolja, u li jagħtu riżultati sinifikanti
L-Għanijiet ta' Mojo
Mojo kien iddisinjat biex jipprovdi mudell ta 'programmazzjoni uniku għall-aċċeleraturi tat-tagħlim tal-magni.
Modular iddetermina li Mojo għandu jippermetti programmar għal skopijiet ġenerali minħabba li s-CPUs tal-lum għandhom tensors u aċċeleraturi AI oħra. Barra minn hekk, minħabba li Python jintuża b'mod estensiv fit-tagħlim tal-magni u oqsma oħra, Modular għażel li jingħaqad mal-ekosistema Python.
L-użu ta 'Python kompla jħaffef id-disinn tal-lingwa. Minħabba li l-maġġoranza tas-sintassi kienet diġà ġiet determinata, il-korporazzjoni setgħet minflok tikkonċentra fuq il-bini tal-mekkaniżmu ta 'kumpilazzjoni u tipprovdi kapaċitajiet ta' programmazzjoni speċjalizzati.
Karatteristiċi importanti li għandek tikkonsidra
Programmabilità
Tipi Progressivi
Il-karatteristika tat-tipi progressivi ta 'Mojo Language tippermetti lill-iżviluppaturi jużaw annotazzjonijiet tat-tip biex ittejjeb l-effiċjenza u kontrolli ta' żbalji.
L-iżviluppaturi jistgħu jiddisinjaw kodiċi aktar effettiv li jiskopri l-iżbalji fil-ħin tal-kumpilazzjoni, jeliminaw bugs u jtejbu l-effiċjenza, billi jipprovdu informazzjoni tat-tip aktar bir-reqqa.
Astrazzjonijiet ta' Spiża Żero
L-iżviluppaturi jistgħu jieħdu l-kontroll tal-ħażna billi jallokaw id-dejta inline fi strutturi grazzi għall-astrazzjonijiet ta 'spiża żero pprovduti mill-Lingwa Mojo.
Billi tneħħi r-rekwiżit għal allokazzjonijiet ta 'memorja żejda, din il-karatteristika ttejjeb l-effiċjenza tal-kodiċi u tnaqqas l-ammont ta' kodiċi boilerplate.
Awto-Tuning Integrat tal-Lingwa
Il-funzjonalità tal-irfinar awtomatiku integrata fil-lingwa f'Mojo Language tippermetti lill-iżviluppaturi jiddeterminaw awtomatikament il-valuri ideali tal-parametri biex jibbenefikaw mill-ħardwer fil-mira.
B'din il-funzjonalità, huwa aktar sempliċi li tottimizza l-kodiċi mingħajr ma jkollok bżonn taġġustah manwalment għal kull kombinazzjoni ta 'hardware.
Mojo Language hija għodda flessibbli u effettiva għall-iżvilupp tal-AI peress li tipprovdi wkoll is-setgħa kollha tal-MLIR (Rappreżentanza Intermedja f'diversi livelli), runtime eteroġenja parallela, u ħinijiet ta' bini ta' malajr.
Parallelizzazzjoni
Mojo jagħmel użu minn MLIR, li jippermetti lill-programmaturi li jutilizzaw vettori, ħjut u unitajiet ta 'hardware għall-AI għall-parallelizzazzjoni. Mojo jappoġġja l-ipproċessar parallel fuq diversi qlub għall-kuntrarju tal-eżekuzzjoni b'ħajt wieħed ta 'Python.
B'veloċità ta '35,000x fuq Python, Mojo jegħleb lingwi oħra f'termini ta' veloċità.
Interoperabbiltà
L-interoperabbiltà mal-ekosistema Python kollha hija waħda mill-vantaġġi uniċi ta 'Mojo. Dan jimplika li tista' tgħaqqad Mojo ma' kwalunkwe librerija arbitrarja, bħal Numpy u Matplotlib, kif ukoll il-kodiċi apposta tiegħek.
Pereżempju, tista' tara d-dejta fil-kodiċi Mojo tiegħek billi tuża l-librerija Python Matplotlib.
Estensibilità
Mojo huwa wkoll pjuttost flessibbli, li jippermetti lill-utenti sempliċement iżidu passi ta 'qabel u wara l-ipproċessar mal-mudelli jew jibdlu l-passi eżistenti għal oħrajn ġodda.
Biex itejbu l-mudelli tagħhom u l-munzell Modulari, l-iżviluppaturi jistgħu jużaw fużjoni tal-qalba, kitba mill-ġdid tal-grafiċi, funzjonijiet tal-forma, u tekniki oħra.
Għaliex Tagħżel Hija Fuq Python?
Python huwa lingwaġġ popolari għall-iżvilupp tal-AI minħabba l-flessibilità u l-libreriji kkumpilati ta 'prestazzjoni għolja tiegħu. Madankollu, huwa ferm aktar bil-mod minn lingwi bħal C++.
Għalhekk, il-programmaturi jitgħallmu jużaw Python wrappers madwar lingwi aktar mgħaġġla biex jevitaw li jużaw Python għal oqsma kritiċi għall-prestazzjoni.
Dan iwassal għall-kwistjoni b'żewġ lingwi, li fiha l-mudelli għandhom jiġu ttrasformati minn Python f'implimentazzjoni aktar mgħaġġla, bħal ONNX jew skript tat-torċa, li ma jappoġġjax il-kapaċitajiet kollha ta 'Python. Python għandu wkoll kwistjonijiet ta 'prestazzjoni u nuqqas ta' pproċessar parallel tajjeb.
Anke programmaturi b'esperjenza jsibuha diffiċli biex jistudjaw, jiddebuggjaw, u jindirizzaw kwistjonijiet ta 'prestazzjoni minħabba d-dilemma ta' żewġ lingwi.
Hemm ukoll restrizzjonijiet bażiċi għal dak li Python jista 'jagħmel minħabba l-mod kif il-lingwa hija strutturata. Filwaqt li l-implimentazzjoni fid-dinja reali ta 'algoritmi li jużaw komponenti bażiċi tista' tidher faċli, hija ferm aktar diffiċli u teħtieġ l-użu ta 'lingwa aktar malajr.
Kif Tibda?
Tista' tibda tuża Mojo Language issa fil-Playground tagħhom biex tibda. Il-Playground ibbażat fuq JupyterHub jagħti lezzjonijiet u l-opportunità li toħloq il-kodiċi Mojo tiegħek stess, minkejja li Mojo għadu xogħol li għadu għaddej.
Tista' tirreġistra għall-aċċess fuq il-websajt tagħhom biex taċċessa l-Playground.
Biex tilħaq l-għanijiet ta' prestazzjoni tagħha, Mojo juża teknoloġiji ta' kompilaturi tal-ġenerazzjoni li jmiss b'teknoloġiji integrati ta' caching, multithreading u distribuzzjoni ta' cloud.
Iżid primittivi addizzjonali għall-ipprogrammar tas-sistemi u jaspira li jsir superset Python maż-żmien. Biex tibda tikkodifika ma 'Mojo, uża l-kompilatur Mojo biex tmexxi programm Mojo mit-terminal bl-istess mod li jagħmel Python.
Il-lingwa bħalissa qed tiġi żviluppata u hija mmirata għal żviluppaturi b'esperjenza fl-ipprogrammar tas-sistemi.
Nagħlaq
Mojo huwa meqjus bħala superset Python. U, għandha l-potenzjal li tirrivoluzzjona l-ipprogrammar billi tgħaqqad is-sempliċità ta 'Python mal-prestazzjoni ta' C++ u Rust.
Hija tista 'tieħu vantaġġ mill-sħiħ Librerija Python ekosistema, li tippermetti lill-iżviluppaturi joħolqu libreriji ta' prestazzjoni għolja mingħajr il-ħtieġa għal C, C++, Rust, jew CUDA.
Jippermetti l-produzzjoni ta 'kodiċi portabbli grazzi għall-karatteristiċi tiegħu ta' meta-programmazzjoni awtotuning u compile-time.
Għalkemm għadu xogħol li qed isir, għandu l-potenzjal li jsir għodda ta 'programmazzjoni formidabbli u jittrasforma l-industrija tal-ipprogrammar. Għalhekk, għandna nibqgħu sintonizzati għal żviluppi futuri minn Modular!
Chris Santos
Taħseb li persuna b'għarfien bażiku għal intermedju tkun tista' tibda l-istudji tagħha f'din il-lingwa ġdida? Jew tagħti parir li tistudja l-ewwel lingwa aktar bażika, bħal Javascript jew Python?
İlke Candan Bengi
Hello Chris, skużani għar-rispons tard! Nemmen li jkollok fehim/esperjenza bażika ta 'Python minn qabel tista' tkun ta 'għajnuna qabel tibda ma' Mojo.