programmatūra · 5 min · 14.08.2026

Mojo sasniedz 1.0 un iesaldē saskarni, kompilators joprojām ir slēgts

Modular 11. augustā izlaida Mojo 1.0. Valodai, kas 2023. gadā sākās kā eksperiments, tagad ir saderības solījums: 1.x laidieni galvenokārt pievienos jaunu un atstās esošo kodu strādājam.

Kompilators pie tam paliek slēgts. Standarta bibliotēkai ir Apache 2.0 licence kopš 2024. gada, bet pašu kompilatoru ar rīkkopu Modular sola atvērt līdz šī gada beigām. Vai tas notiks 18. augusta ModCon konferencē, uzņēmums nav pateicis.

kāpēc valoda vispār radās

Mojo 2023. gadā sāka LLVM un Swift autors Kriss Latners kopā ar Timu Deivisu. Ideja bija noņemt AI izstrādātājiem divu valodu slogu. Modeļa loģiku raksta Python valodā, bet ātro daļu kāds cits jau ir uzrakstījis C++ vai CUDA valodā. Ar to pēc tam strādā šaurs speciālistu loks.

Mojo ņem Python sintaksi, pievieno statiskus tipus, Rust stila īpašumtiesības uz atmiņu un kompilēšanu caur MLIR ietvaru. Viens un tas pats kods no turienes aiziet uz CPU, GPU vai citu paātrinātāju. Tieši šī daļa uzņēmumam pārdod MAX izpildlaiku, kur Mojo kodoli aizvieto piegādātāja bibliotēkas.

ko sedz stabilitātes solījums

Saderību Modular garantē tikai tām saskarnēm, kas ir īpaši atzīmētas. Binārā saderība paliek nestabila, tāpēc ar vienu kompilatora versiju būvētas bibliotēkas ar citu versiju kopā nesalikt. Standarta bibliotēka ir fiksēta pa daļām: iezīme Copyable ir stabila pilnībā, savukārt kolekcijas, tostarp List, tikai daļēji.

Izmaiņas, kas lauž kodu, joprojām ir iespējamas, taču tās tiks pārvaldītas uzmanīgi, sekojot standartiem, kā laika gaitā attīstās nobriedušas valodas, piemēram, C++.

Tā laidiena paziņojumā raksta pati Modular komanda. Tas nozīmē, ka 1.0 ir solījums par izmaiņu tempu, nevis absolūta garantija.

kas mainās valodā

26.5 laidiens pievieno Python stila lambda sintaksi anonīmām funkcijām. Mainīgo deklarēšana ir savilkta zem viena atslēgvārda var. Vairāki rādītāju tipi ir saplūdināti vienā Pointer tipā. Slēgumu apstrāde ir apvienota.

Atmiņas drošībā parādās diagnostika, kas pamana atsauču invalidāciju. Tipisks gadījums: kods paņem atsauci uz saraksta elementu, pēc tam izsauc List.append, kas datus atmiņā pārvieto. Vecā atsauce tad rāda uz vietu, kuras vairs nav. Tagad kompilators par šo brīdina jau būvēšanas laikā.

Pievienotas arī konsekventākas where klauzulas standarta bibliotēkā ar skaidrākiem paziņojumiem, kad tipa nosacījums neizpildās. Šīs ir tās sīkās lietas, kuras iesaldētā valodā vēlāk mainīt vairs nevar, tāpēc tās sakārtoja pirms 1.0 zīmoga.

Python sadarbībā atkārtoti aritmētikas un salīdzināšanas izsaukumi pāri robežai starp Mojo un Python iet aptuveni 12 reizes ātrāk. Paātrinājums attiecas tikai uz robežas šķērsošanu, nevis uz valodu kopumā.

kas kodu raksta un kam tas pieder

Standarta bibliotēkā ir apvienoti vairāk nekā 1100 izmaiņu pieprasījumi no gandrīz 200 līdzautoriem, skarot vairāk nekā 200 000 koda rindu. Vēl ap 1000 izstrādātāju ir pieteikuši kļūdas.

Modular īpašnieks kopš 29. jūlija ir Qualcomm. Uzņēmums pēc darījuma apgalvo, ka Mojo, MAX un Modular Cloud paliks atvērtā ekosistēmā. XenoSpectrum norāda, ka apgalvojumu par neitralitāti pārbaudīt nevar, kamēr kompilatora kods un licence nav publiski. Jautājums nav akadēmisks. Qualcomm pati ražo mikroshēmas, bet Mojo galvenais pārdošanas arguments ir neatkarība no viena piegādātāja rīkiem, proti, no CUDA un ROCm. Pircējs, kurš izvēlas valodu uz desmit gadiem, grib redzēt licenci, nevis paziņojumu presei.

kā trūkst

Modular ceļakartē pirmais posms, augstas veiktspējas skaitļošanas kodoli, ir pabeigts. Otrais posms, sistēmu lietojumprogrammas, ir sākts. Nav sākts darbs pie async/await, paraugu atbilstības, piekļuves kontroles, sadalītas apstrādes un profilētāja. LSP serveris ar VS Code paplašinājumu vēl top.

Tas nosaka arī reālo pielietojumu. Mojo šobrīd der paātrinātāju kodoliem un Python paplašinājumiem. Vietā, kur šodien strādā C++ ar CUDA vai Rust ar veselu bibliotēku ekosistēmu, tā vēl nestājas. Otrais posms tieši par to arī ir: lai Mojo valodā varētu rakstīt serverus un rīkus, nevis tikai skaitļošanas kodolus, valodai vajag asinhrono izpildi ar profilētāju.

kā palaist

Kompilatoru uzstāda ar uv pip install --upgrade mojo. Izpildlaiku MAX 26.5 tagad var likt pa daļām: max["serve"] serverim, max["benchmark"] mērījumiem vai max["all"] visam. Atsevišķa SDK instalatora nav, jo kompilators tagad nāk kā parasta Python pakotne. MAX pusē pievienoti GLM-5.2 un Nemotron-H modeļi, kas ir Mamba-2 hibrīdi, kā arī Kimi 2.5 caur Module V3. Šī ir tā uzņēmuma daļa, kas pelna naudu. Versijas numurs 1.0 to padara vieglāk pārdodamu korporatīvajiem klientiem.

Techzine atgādina, ka valodas turpmākais liktenis būs atkarīgs no bibliotēkām un no citu mikroshēmu ražotāju uzticēšanās. Līdz gada beigām, kad kompilatora kodam jākļūst publiskam, palikušas gandrīz 20 nedēļas.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie