Nangandoy ka na ba nga makahimo og mas paspas ug mas episyente nga mga app apan nadiskobrehan nga ang mga standard programming language dili makahimo sa pagtagbo sa imong mga kinahanglanon?
Kini mao ang sa diha nga ang Mojo Language moabut sa pagdula.
Ang Mojo usa ka bag-ong programming language nga gimugna ni Modular, usa ka kompanya nga espesyalista sa imprastraktura sa AI.
Partikular nga gidesinyo kini aron makahimo ang mga developer nga makahimo og mas paspas ug mas lig-on nga mga app alang sa daghang mga kaso sa paggamit, lakip ang pagpalambo sa AI. Niini nga post, atong tan-awon kung unsa Mojo mao, giunsa kini pagtrabaho, ug nganong kinahanglan nimo kining gamiton sa imong sunod nga proyekto.
Ang Sinugdanan sa Mojo
Giila sa mga tiglalang sa Mojo ang panginahanglan alang sa usa ka programming language nga naghiusa sa usability sa Python uban ang katulin ug kahusayan sa C.
Ug, nagtukod sila og usa ka lengguwahe nga magtugot sa mga developers sa paghimo og mga high-performance nga mga app nga dili kinahanglan nga magkat-on sa standard nga mga pinulongan sa paghulagway sa hardware.
Ingon usa ka sangputanan, gibuhat nila ang Mojo, nga gituyo nga hingpit nga nahiuyon sa ekosistema sa Python samtang naghatag katulin sa lebel sa C.
Modular: Ang Organisasyon sa Luyo sa Mojo Language
Busa, kinsa ang mga tiglalang niining futuristic nga pinulongan?
Ang Modular usa ka nanguna sa kalibutan nga pagsugod sa imprastraktura sa AI nga gimugna ni Chris Lattner ug Tim Davis, nga nahimamat sa Google ug nakaamgo nga ang labi ka komplikado ug tipik nga imprastraktura naglimite sa global nga impluwensya sa AI.
Ang katuyoan ug katuyoan sa Modular mao ang paghunahuna pag-usab sa imprastraktura sa AI aron mapauswag ang katawhan. Ang ilang kultura ug mga prinsipyo nagbutang sa usa ka premium sa mga kliyente, taas nga kalidad nga software sa produksiyon, ug paghatud sa makahuluganon nga mga sangputanan
Ang mga Tumong sa Mojo
Gidisenyo ang Mojo aron maghatag usa ka talagsaon nga modelo sa pagprograma alang sa mga accelerator sa pagkat-on sa makina.
Gitino sa Modular nga kinahanglan tugutan ni Mojo ang pagprograma sa kinatibuk-ang katuyoan tungod kay ang mga CPU karon adunay mga tensor ug uban pang mga accelerator sa AI. Dugang pa, tungod kay kaylap nga gigamit ang Python sa pagkat-on sa makina ug uban pang natad, gipili sa Modular nga moapil sa ekosistema sa Python.
Ang paggamit sa Python labi nga nagpagaan sa disenyo sa pinulongan. Tungod kay ang kadaghanan sa syntax nahibal-an na, ang korporasyon mahimo nga magkonsentrar sa pagtukod sa mekanismo sa pag-compile ug paghatag og espesyal nga mga kapabilidad sa pagprograma.
Importante nga mga Feature nga Tagdon
Programmability
Progresibo nga mga Uri
Ang mga progresibong tipo nga bahin sa Mojo Language makapahimo sa mga developers sa paggamit sa type annotation sa pagpalambo sa efficiency ug mga pagsusi sa sayup.
Ang mga developers mahimong magdesinyo ug mas epektibong code nga makamatikod sa mga sayop sa panahon sa pag-compile, pagwagtang sa mga bug ug pagpausbaw sa episyente, pinaagi sa paghatag ug mas bug-os nga tipo sa impormasyon.
Mga Abstraction sa Zero nga Gasto
Mahimong kontrolahon sa mga developer ang pagtipig pinaagi sa inline-allocating data sa mga istruktura salamat sa zero-cost abstraction nga gihatag sa Mojo Language.
Pinaagi sa pagwagtang sa kinahanglanon alang sa dugang nga mga alokasyon sa memorya, kini nga bahin nagpauswag sa pagkaayo sa code ug nagpaubos sa gidaghanon sa boilerplate code.
Nahiusa nga Pinulongan Auto-Tuning
Ang nahiusa sa lengguwahe nga auto-tuning nga pagpaandar sa Mojo Language makapahimo sa mga developer nga awtomatiko nga mahibal-an ang mga sulundon nga kantidad sa mga parameter aron makabenepisyo gikan sa target nga hardware.
Uban niini nga pag-andar, mas simple ang pag-optimize sa code nga dili kinahanglan nga mano-mano nga i-adjust kini alang sa matag kombinasyon sa hardware.
Ang Mojo Language usa ka flexible ug epektibo nga himan alang sa pagpalambo sa AI tungod kay naghatag usab kini sa tibuuk nga gahum sa MLIR (Multi-Level Intermediate Representation), usa ka managsama nga heterogenous nga runtime, ug dali nga mga oras sa pagtukod.
Pagkaparehas
Gigamit ni Mojo ang MLIR, nga nagtugot sa mga programmer sa paggamit sa mga vector, mga hilo, ug mga yunit sa hardware alang sa AI alang sa parallelization. Gisuportahan sa Mojo ang parehas nga pagproseso sa daghang mga cores sukwahi sa single-threaded nga pagpatay sa Python.
Uban sa 35,000x nga katulin sa Python, gipildi ni Mojo ang ubang mga pinulongan sa termino sa katulin.
Pag-opera
Ang interoperability sa tibuok Python ecosystem maoy usa sa talagsaong mga bentaha ni Mojo. Nagpasabot kini nga mahimo nimong ikombinar ang Mojo sa bisan unsang arbitraryong mga librarya, sama sa Numpy ug Matplotlib, ingon man sa imong pinasahi nga code.
Pananglitan, mahimo nimong mahanduraw ang datos sa imong Mojo code gamit ang Python library Matplotlib.
Extensibility
Ang Mojo medyo flexible, nga nagtugot sa mga tiggamit sa pagdugang sa mga lakang sa wala pa ug pagkahuman sa pagproseso sa mga modelo o ibaylo ang mga naa na nga mga lakang alang sa mga bag-o.
Aron mapausbaw ang ilang mga modelo ug ang Modular stack, ang mga developers makagamit sa kernel fusion, graph rewrites, shape functions, ug uban pang mga teknik.
Ngano nga Imong Pilion Kini Kay sa Python?
Ang Python kay sikat nga AI development language tungod sa pagka-flexible niini ug high-performance compiled nga mga library. Bisan pa, kini labi ka hinay kaysa mga pinulongan sama sa C++.
Busa, ang mga programmer nakakat-on sa paggamit sa Python wrapper sa palibot sa mas paspas nga mga pinulongan aron malikayan ang paggamit sa Python alang sa performance-critical nga mga dapit.
Kini mitultol ngadto sa duha ka pinulongan nga isyu, diin ang mga modelo kinahanglang usbon gikan sa Python ngadto sa mas paspas nga pagpatuman, sama sa ONNX o torch script, nga dili mosuporta sa tanang kapabilidad sa Python. Ang Python usab adunay mga isyu sa pasundayag ug kakulang sa maayo nga parallel nga pagproseso.
Bisan ang mga eksperyensiyadong programmer nalisdan sa pagtuon, pag-debug, ug pagsulbad sa mga isyu sa pasundayag tungod sa duha ka pinulongan nga dilemma.
Adunay usab mga sukaranan nga mga pagdili kung unsa ang mahimo sa Python tungod sa paagi sa pagkahan-ay sa pinulongan. Samtang ang pag-implementar sa tinuod nga kalibutan sa mga algorithm nga naggamit sa mga batakang sangkap mahimo’g makita nga dali, labi ka labi ka lisud ug kinahanglan ang paggamit sa usa ka dali nga sinultian.
Unsaon Pagsugod?
Mahimo nimong sugdan ang paggamit sa Mojo Language karon sa ilang Playground aron makasugod. Ang Playground nga nakabase sa JupyterHub naghatag mga leksyon ug higayon sa paghimo sa imong kaugalingon nga Mojo code, bisan kung ang Mojo usa pa ka trabaho nga nagpadayon.
Mahimo kang magparehistro alang sa pag-access sa ilang website aron maka-access sa Playground.
Aron makab-ot ang mga tumong sa performance niini, gigamit ni Mojo ang sunod nga henerasyon nga mga teknolohiya sa compiler nga adunay integrated caching, multithreading, ug cloud distribution nga mga teknolohiya.
Nagdugang kini og dugang nga mga primitibo sa mga sistema sa programming ug nagtinguha nga mahimong usa ka Python superset sa paglabay sa panahon. Sa pagsugod sa coding uban sa Mojo, gamita ang Mojo compiler sa pagpadagan sa usa ka Mojo nga programa gikan sa terminal sa samang paagi sa Python.
Ang lengguwahe sa pagkakaron gipauswag ug gitumong sa mga nag-develop nga adunay kasinatian sa programming sa mga sistema.
wrap Up
Ang Mojo gikonsiderar nga Python superset. Ug, kini adunay potensyal nga bag-ohon ang programming pinaagi sa paghiusa sa kayano sa Python sa paghimo sa C++ ug Rust.
Makapahimulos kini sa hingpit librarya sa Python ecosystem, nga nagtugot sa mga developers sa paghimo og high-performance nga mga librarya nga wala magkinahanglan og C, C++, Rust, o CUDA.
Gitugotan niini ang paghimo sa madaladala nga code salamat sa pag-autotuning ug pag-compile-time nga mga bahin sa meta-programming.
Bisan kung kini usa pa ka trabaho nga nagpadayon, kini adunay potensyal nga mahimong usa ka makalilisang nga himan sa pagprograma ug pagbag-o sa industriya sa programming. Busa, kita kinahanglan nga magpabilin nga tuned alang sa umaabot nga mga kalamboan gikan sa Modular!
Chris Santos
Sa imong hunahuna ang usa ka tawo nga adunay sukaranan hangtod sa tungatunga nga kahibalo makasugod sa ilang pagtuon sa bag-ong pinulongan? O gitambagan ba nimo nga magtuon una sa usa ka mas batakang pinulongan, sama sa Javascript o Python?
İlke Candan Bengi
Hello Chris, sorry sa late response! Nagtuo ko nga ang pagbaton ug sukaranan nga pagsabot/kasinatian sa Python kaniadto makatabang sa dili pa magsugod sa Mojo.