Дали некогаш сте посакале да конструирате побрзи и поефикасни апликации, а сепак откривте дека стандардните програмски јазици не се способни да ги задоволат вашите барања?
Ова е моментот кога јазикот Моџо влегува во игра.
Mojo е нов програмски јазик развиен од Модуларен, компанија која е специјализирана за инфраструктура за вештачка интелигенција.
Тој е особено дизајниран да им овозможи на програмерите да конструираат побрзи и поцврсти апликации за неколку случаи на употреба, вклучително и развој на вештачка интелигенција. Во овој пост, ќе погледнеме што Mojo е, како функционира и зошто треба да го користите на вашиот следен проект.
Потеклото на Моџо
Креаторите на Mojo ја препознаа потребата за програмски јазик кој ја комбинира употребливоста на Python со брзината и ефикасноста на C.
И, тие воспоставија јазик што ќе им овозможи на програмерите да конструираат апликации со високи перформанси без да мора да учат стандардни јазици за опис на хардверот.
Како резултат на тоа, тие го создадоа Mojo, кој треба да биде целосно компатибилен со екосистемот на Python додека обезбедува брзина на C-ниво.
Модуларен: Организацијата зад јазикот Моџо
Значи, кои се креаторите на овој футуристички јазик?
Modular е светски водечки стартап за инфраструктура за вештачка интелигенција создадена од Крис Латнер и Тим Дејвис, кои се сретнаа во Google и сфатија дека премногу комплицираната и фрагментирана инфраструктура го ограничува глобалното влијание на ВИ.
Целта и целта на Modular се да ја преиспита инфраструктурата за вештачка интелигенција за да го подобри човештвото. Нивната култура и принципи им даваат предност на клиентите, висококвалитетниот производствен софтвер и давањето значајни резултати
Целите на Моџо
Mojo беше дизајниран да обезбеди уникатен модел за програмирање за акцелератори за машинско учење.
Modular утврди дека Mojo треба да дозволи програмирање за општа намена бидејќи денешните процесори имаат тензори и други акцелератори на вештачка интелигенција. Понатаму, бидејќи Python интензивно се користи во машинското учење и други полиња, Modular избра да се приклучи на екосистемот Python.
Употребата на Python дополнително го олесни дизајнот на јазикот. Бидејќи поголемиот дел од синтаксата веќе беше одредена, корпорацијата наместо тоа можеше да се концентрира на градење на механизмот за компилација и обезбедување специјализирани програмски способности.
Важни карактеристики што треба да се земат предвид
Програмабилност
Прогресивни типови
Функцијата за прогресивни типови на Mojo Language им овозможува на програмерите да користат прибелешки за типови подобрување на ефикасноста и проверки на грешки.
Програмерите може да дизајнираат поефективен код кој открива грешки во времето на компајлирање, елиминирајќи ги грешките и зголемувајќи ја ефикасноста, обезбедувајќи потемелни информации за типот.
Апстракции со нула трошоци
Програмерите можат да ја преземат контролата врз складирањето преку распределување на податоци во структури благодарение на апстракциите со нула трошоци обезбедени од јазикот Mojo.
Отстранувајќи го барањето за дополнителна распределба на меморијата, оваа функција ја подобрува ефикасноста на кодот и го намалува количеството на кодот на котелот.
Интегрирано автоматско подесување на јазикот
Функционалноста за автоматско подесување на јазикот во Mojo Language им овозможува на програмерите автоматски да ги одредуваат идеалните вредности на параметрите за да имаат корист од целниот хардвер.
Со оваа функционалност, поедноставно е да се оптимизира кодот без да мора рачно да се прилагодува за секоја хардверска комбинација.
Јазикот Mojo е флексибилна и ефикасна алатка за развој на вештачка интелигенција бидејќи ја обезбедува и целата моќ на MLIR (средно претставување на повеќе нивоа), паралелно хетерогено време на работа и брзо време на градење.
Паралелизација
Mojo користи MLIR, кој им овозможува на програмерите да користат вектори, нишки и хардверски единици за вештачка интелигенција за паралелизација. Mojo поддржува паралелна обработка преку неколку јадра за разлика од извршувањето со една нишка на Python.
Со 35,000x забрзување над Python, Mojo ги победува другите јазици во однос на брзината.
Интероперабилност
Интероперабилноста со целиот екосистем на Python е една од уникатните предности на Mojo. Ова значи дека можете да го комбинирате Mojo со какви било произволни библиотеки, како што се Numpy и Matplotlib, како и вашиот нарачан код.
На пример, можете да ги визуелизирате податоците во вашиот код на Mojo користејќи ја библиотеката Python Matplotlib.
Проширување
Mojo е исто така доста флексибилен, дозволувајќи им на корисниците едноставно да додаваат чекори пред и пост-обработка на моделите или да ги заменат постоечките чекори за нови.
За да ги подобрат своите модели и модуларниот стек, програмерите можат да користат фузија на јадрото, препишување графикони, функции за обликување и други техники.
Зошто би го избрале наместо Пајтон?
Python е популарен јазик за развој на вештачка интелигенција поради неговата флексибилност и компајлирани библиотеки со високи перформанси. Сепак, тој е значително побавен од јазиците како што е C++.
Затоа, програмерите учат да користат Python обвивки околу побрзи јазици за да избегнат користење на Python за критични области за перформанси.
Ова води до двојазично прашање, во кое моделите мора да се трансформираат од Python во побрза имплементација, како што е ONNX или скрипта за факел, која не ги поддржува сите можности на Python. Пајтон, исто така, има проблеми со перформансите и недостаток на добра паралелна обработка.
Дури и на искусните програмери им е тешко да учат, дебагираат и решаваат проблеми со перформансите поради дилемата со два јазици.
Исто така, постојат основни ограничувања за тоа што може да направи Python поради начинот на кој јазикот е структуриран. Иако реалниот свет имплементацијата на алгоритми кои користат основни компоненти може да изгледа лесно, тоа е значително потешко и бара употреба на побрз јазик.
Како да започнете?
Може да започнете да го користите јазикот Моџо токму сега на нивното игралиште за да започнете. Игралиштето базирано на JupyterHub дава лекции и можност да креирате сопствен код за Mojo, иако Mojo сè уште е работа во тек.
Може да се регистрирате за пристап на нивната веб-страница за да пристапите до Игралиштето.
За да ги постигне своите цели за изведба, Mojo користи технологии за компајлери од следната генерација со интегрирано кеширање, повеќенишки и технологии за дистрибуција на облак.
Додава дополнителни примитиви на системското програмирање и се стреми да стане суперсет на Python со текот на времето. За да започнете со кодирање со Mojo, користете го компајлерот Mojo за да извршите програма Mojo од терминалот на ист начин како што тоа го прави Python.
Јазикот моментално е во развој и е наменет за програмери со искуство во системско програмирање.
Заврши
Моџо се смета за суперсет на Пајтон. И, има потенцијал да направи револуција во програмирањето со комбинирање на едноставноста на Python со перформансите на C++ и Rust.
Може да ги искористи целосно Пајтон библиотека екосистем, дозволувајќи им на програмерите да создаваат библиотеки со високи перформанси без потреба од C, C++, Rust или CUDA.
Овозможува производство на пренослив код благодарение на неговите функции за автоматско подесување и мета-програмирање во време на компајлирање.
Иако сè уште е работа во тек, тој има потенцијал да стане огромна алатка за програмирање и да ја трансформира програмската индустрија. Значи, треба да останеме прилагодени за идните случувања од Modular!
Крис Сантос
Дали мислите дека лице со основно до средно знаење би можело да ги започне своите студии на овој нов јазик? Или советувате прво да проучувате поосновен јазик, како што се Javascript или Python?
İlke Candan Bengi
Здраво Крис, извинете за доцниот одговор! Верувам дека претходното основно разбирање/искуство за Python може да биде корисно пред да започнете со Mojo.