Искали ли сте някога да създавате по-бързи и по-ефективни приложения, но откривате, че стандартните езици за програмиране не са в състояние да отговорят на вашите изисквания?
Това е моментът, когато Mojo Language влиза в действие.
Mojo е нов език за програмиране, разработен от Модулна, компания, специализирана в AI инфраструктура.
Той е специално проектиран да позволи на разработчиците да създават по-бързи и по-стабилни приложения за няколко случая на употреба, включително разработка на AI. В тази публикация ще разгледаме какво Mojo е, как работи и защо трябва да го използвате в следващия си проект.
Произходът на Mojo
Създателите на Mojo разпознаха необходимостта от език за програмиране, който комбинира използваемостта на Python със скоростта и ефективността на C.
И те създадоха език, който би позволил на разработчиците да създават високопроизводителни приложения, без да се налага да учат стандартни езици за описание на хардуера.
В резултат на това те създадоха Mojo, което е предназначено да бъде напълно съвместимо с екосистемата на Python, като същевременно осигурява скорост на C-ниво.
Модулно: Организацията зад езика Mojo
И така, кои са създателите на този футуристичен език?
Modular е водеща в света стартираща инфраструктура за ИИ, създадена от Крис Латнер и Тим Дейвис, които се срещнаха в Google и осъзнаха, че твърде сложната и фрагментирана инфраструктура ограничава глобалното влияние на ИИ.
Целта на Modular е да преосмисли AI инфраструктурата, за да подобри човечеството. Тяхната култура и принципи отдават първостепенно значение на клиентите, висококачествения производствен софтуер и предоставянето на значими резултати
Целите на Mojo
Mojo е проектиран да осигури уникален модел на програмиране за ускорители на машинно обучение.
Modular реши, че Mojo трябва да позволява програмиране с общо предназначение, тъй като днешните процесори имат тензори и други AI ускорители. Освен това, тъй като Python се използва широко в машинното обучение и други области, Modular избра да се присъедини към екосистемата на Python.
Използването на Python допълнително улесни дизайна на езика. Тъй като по-голямата част от синтаксиса вече е определена, корпорацията може вместо това да се концентрира върху изграждането на механизма за компилиране и предоставянето на специализирани възможности за програмиране.
Важни функции, които трябва да имате предвид
Програмируемост
Прогресивни типове
Функцията за прогресивни типове на Mojo Language позволява на разработчиците да използват анотации за типове повишаване на ефективността и проверки за грешки.
Разработчиците могат да проектират по-ефективен код, който открива грешки по време на компилиране, елиминира грешки и подобрява ефективността, като предоставя по-подробна информация за типа.
Абстракции с нулеви разходи
Разработчиците могат да поемат контрола върху съхранението чрез вградено разпределяне на данни в структури благодарение на абстракциите с нулеви разходи, предоставени от езика Mojo.
Като премахва изискването за допълнително разпределение на паметта, тази функция подобрява ефективността на кода и намалява количеството шаблонен код.
Интегрирана автоматична настройка на езика
Интегрираната в езика функция за автоматична настройка в Mojo Language позволява на разработчиците автоматично да определят идеалните стойности на параметрите, за да се възползват от целевия хардуер.
С тази функционалност е по-лесно да оптимизирате кода, без да се налага ръчно да го настройвате за всяка хардуерна комбинация.
Mojo Language е гъвкав и ефективен инструмент за разработка на AI, тъй като той също така предоставя цялата мощ на MLIR (Multi-Level Intermediate Representation), паралелно хетерогенно време за изпълнение и бързо време за изграждане.
Паралелизация
Mojo използва MLIR, което позволява на програмистите да използват вектори, нишки и хардуерни единици за AI за паралелизиране. Mojo поддържа паралелна обработка на няколко ядра, за разлика от еднопоточното изпълнение на Python.
С 35,000 XNUMX пъти ускорение спрямо Python, Mojo изпреварва други езици по отношение на скоростта.
Оперативна съвместимост
Оперативната съвместимост с цялата екосистема на Python е едно от уникалните предимства на Mojo. Това означава, че можете да комбинирате Mojo с всякакви произволни библиотеки, като Numpy и Matplotlib, както и с вашия персонализиран код.
Например, можете да визуализирате данни във вашия Mojo код, като използвате библиотеката на Python Matplotlib.
разтегаемост
Mojo също е доста гъвкав, позволявайки на потребителите просто да добавят стъпки за предварителна и последваща обработка към модели или да заменят съществуващи стъпки с нови.
За да подобрят своите модели и модулния стек, разработчиците могат да използват сливане на ядрото, пренаписване на графики, функции за оформяне и други техники.
Защо бихте го избрали пред Python?
Python е популярен език за разработка на AI поради своята гъвкавост и високопроизводителни компилирани библиотеки. Той обаче е значително по-бавен от езици като C++.
Следователно програмистите се научават да използват обвивки на Python около по-бързи езици, за да избегнат използването на Python за критични за производителността области.
Това води до проблема с двата езика, при който моделите трябва да бъдат трансформирани от Python в по-бързо изпълнение, като ONNX или torch скрипт, който не поддържа всички възможности на Python. Python също има проблеми с производителността и липса на добра паралелна обработка.
Дори опитни програмисти смятат, че е трудно да изучават, отстраняват грешки и да решават проблеми с производителността поради двуезичната дилема.
Има и основни ограничения за това, което Python може да прави поради начина, по който езикът е структуриран. Въпреки че реалното внедряване на алгоритми, използващи основни компоненти, може да изглежда лесно, то е значително по-трудно и налага използването на по-бърз език.
Как да започнете?
Можете да започнете да използвате Mojo Language точно сега в тяхната Playground, за да започнете. Базираната на JupyterHub Playground дава уроци и възможност да създадете свой собствен Mojo код, въпреки че Mojo все още е в процес на работа.
Можете да се регистрирате за достъп на техния уебсайт, за да получите достъп до Playground.
За да постигне своите цели за производителност, Mojo използва технологии за компилиране от следващо поколение с интегрирано кеширане, многопоточност и технологии за разпространение в облак.
Той добавя допълнителни примитиви към системното програмиране и се стреми да се превърне в надмножество на Python с течение на времето. За да започнете да кодирате с Mojo, използвайте компилатора Mojo, за да стартирате програма Mojo от терминала по същия начин, както прави Python.
Езикът в момента е в процес на разработка и е насочен към разработчици с опит в системното програмиране.
Облечи
Mojo се счита за надмножество на Python. И има потенциала да революционизира програмирането, като комбинира простотата на Python с производителността на C++ и Rust.
Може да се възползва от пълното Библиотека на Python екосистема, позволяваща на разработчиците да създават библиотеки с висока производителност без необходимост от C, C++, Rust или CUDA.
Той позволява производството на преносим код благодарение на функциите си за автонастройка и мета-програмиране по време на компилация.
Въпреки че все още е в процес на работа, той има потенциала да се превърне в страхотен инструмент за програмиране и да трансформира индустрията за програмиране. Така че трябва да следим за бъдещи разработки от Modular!
Крис Сантос
Смятате ли, че човек с основни до средни познания би могъл да започне обучението си на този нов език? Или съветвате първо да изучавате по-основен език, като Javascript или Python?
Илке Кандан Бенги
Здравей Крис, съжалявам за късния отговор! Вярвам, че предварителното основно разбиране/опит с Python може да бъде полезно, преди да започнете с Mojo.