Algunha vez quixeches construír aplicacións máis rápidas e eficientes pero descubriches que as linguaxes de programación estándar son incapaces de satisfacer as túas necesidades?
Aquí é cando entra en xogo Mojo Language.
Mojo é unha nova linguaxe de programación desenvolvida por modular, unha empresa especializada en infraestruturas de IA.
Está especialmente deseñado para permitir aos desenvolvedores construír aplicacións máis rápidas e robustas para varios casos de uso, incluído o desenvolvemento de IA. Neste post, veremos que Mojo é, como funciona e por que deberías usalo no teu próximo proxecto.
As orixes de Mojo
Os creadores de Mojo recoñeceron a necesidade dunha linguaxe de programación que combinase a usabilidade de Python coa velocidade e eficiencia de C.
E estableceron unha linguaxe que permitiría aos desenvolvedores construír aplicacións de alto rendemento sen ter que aprender linguaxes de descrición de hardware estándar.
Como resultado, crearon Mojo, que está destinado a ser totalmente compatible co ecosistema Python ao tempo que proporciona velocidade de nivel C.
Modular: A organización detrás do Mojo Language
Entón, quen son os creadores desta linguaxe futurista?
Modular é unha startup de infraestruturas de IA líder a nivel mundial creada por Chris Lattner e Tim Davis, que se coñeceron en Google e decatáronse de que unha infraestrutura demasiado complicada e fragmentada limitaba a influencia global da IA.
O obxectivo e obxectivo de Modular é repensar a infraestrutura de IA para mellorar a humanidade. A súa cultura e principios valoran os clientes, o software de produción de alta calidade e a entrega de resultados significativos
Os Goles de Mojo
Mojo foi deseñado para proporcionar un modelo de programación único para aceleradores de aprendizaxe automática.
Modular determinou que Mojo debería permitir a programación de propósito xeral porque as CPU actuais teñen tensores e outros aceleradores de IA. Ademais, debido a que Python úsase amplamente na aprendizaxe automática e noutros campos, Modular optou por unirse ao ecosistema de Python.
O uso de Python facilitou aínda máis o deseño da linguaxe. Como a maioría da sintaxe xa estaba determinada, a corporación podería concentrarse en construír o mecanismo de compilación e proporcionar capacidades de programación especializadas.
Características importantes a considerar
Programmability
Tipos progresivos
A función de tipos progresivos de Mojo Language permite aos desenvolvedores usar anotacións de tipos para mellorar a eficiencia e comprobacións de erros.
Os desenvolvedores poden deseñar un código máis eficaz que detecte erros no momento da compilación, eliminando erros e mellorando a eficiencia, proporcionando información de tipo máis completa.
Abstraccións de custo cero
Os desenvolvedores poden asumir o control do almacenamento asignando datos en liña en estruturas grazas ás abstraccións de custo cero proporcionadas polo Mojo Language.
Ao eliminar o requisito de asignacións de memoria adicionais, esta función mellora a eficiencia do código e reduce a cantidade de código estándar.
Axuste automático de idiomas integrado
A funcionalidade de axuste automático integrada na linguaxe en Mojo Language permite aos desenvolvedores determinar automaticamente os valores ideais dos parámetros para beneficiarse do hardware de destino.
Con esta funcionalidade, é máis sinxelo optimizar o código sen ter que axustalo manualmente para cada combinación de hardware.
Mojo Language é unha ferramenta flexible e eficaz para o desenvolvemento da IA, xa que tamén ofrece todo o poder de MLIR (Representación intermedia multinivel), un tempo de execución heteroxéneo paralelo e tempos de construción rápidos.
Paralelización
Mojo fai uso de MLIR, que permite aos programadores utilizar vectores, fíos e unidades de hardware para a IA para a paralelización. Mojo admite o procesamento paralelo en varios núcleos en oposición á execución dun fío único de Python.
Cunha aceleración de 35,000 veces con respecto a Python, Mojo supera a outras linguas en termos de velocidade.
interoperabilidade
A interoperabilidade con todo o ecosistema de Python é unha das vantaxes únicas de Mojo. Isto implica que pode combinar Mojo con calquera biblioteca arbitraria, como Numpy e Matplotlib, así como o seu código personalizado.
Por exemplo, pode visualizar os datos no seu código Mojo usando a biblioteca de Python Matplotlib.
Extensibilidade
Mojo tamén é bastante flexible, o que permite aos usuarios simplemente engadir pasos previos e posteriores ao procesamento aos modelos ou cambiar os pasos existentes por outros novos.
Para mellorar os seus modelos e a pila Modular, os desenvolvedores poden usar a fusión do núcleo, as reescrituras de gráficos, as funcións de forma e outras técnicas.
Por que o elixirías antes que Python?
Python é unha linguaxe de desenvolvemento de IA popular debido á súa flexibilidade e ás súas bibliotecas compiladas de alto rendemento. Non obstante, é significativamente máis lento que linguaxes como C++.
Polo tanto, os programadores aprenden a usar envoltorios de Python en linguaxes máis rápidas para evitar usar Python para áreas críticas para o rendemento.
Isto leva ao problema dos dous idiomas, no que os modelos deben transformarse de Python nunha implementación máis rápida, como ONNX ou script torch, que non admite todas as capacidades de Python. Python tamén ten problemas de rendemento e falta dun bo procesamento paralelo.
Mesmo os programadores experimentados teñen dificultades para estudar, depurar e resolver problemas de rendemento debido ao dilema das dúas linguas.
Tamén hai restricións básicas sobre o que pode facer Python debido á forma en que se estrutura a linguaxe. Aínda que a implementación no mundo real de algoritmos que empregan compoñentes básicos pode parecer sinxela, é significativamente máis difícil e require o uso dunha linguaxe máis rápida.
Como comezar?
Podes comezar a usar Mojo Language agora mesmo no seu Playground para comezar. O Playground baseado en JupyterHub dá clases e a oportunidade de crear o teu propio código Mojo, aínda que Mojo aínda está en proceso.
Podes rexistrarte para acceder no seu sitio web para acceder ao Playground.
Para alcanzar os seus obxectivos de rendemento, Mojo emprega tecnoloxías de compilación de próxima xeración con tecnoloxías integradas de caché, multiproceso e distribución na nube.
Engade primitivos adicionais á programación de sistemas e aspira a converterse nun superconjunto de Python co paso do tempo. Para comezar a codificar con Mojo, use o compilador Mojo para executar un programa Mojo desde o terminal do mesmo xeito que o fai Python.
A linguaxe está actualmente en desenvolvemento e está dirixida a desenvolvedores con experiencia en programación de sistemas.
Envolver
Mojo considérase un superconxunto de Python. Ademais, ten o potencial de revolucionar a programación combinando a sinxeleza de Python co rendemento de C++ e Rust.
Pode aproveitar o pleno Biblioteca Python ecosistema, permitindo aos desenvolvedores crear bibliotecas de alto rendemento sen necesidade de C, C++, Rust ou CUDA.
Permite a produción de código portátil grazas ás súas funcións de metaprogramación en tempo de compilación e de autoajuste.
Aínda que aínda é un traballo en curso, ten o potencial de converterse nunha formidable ferramenta de programación e transformar a industria da programación. Polo tanto, debemos estar atentos aos futuros desenvolvementos de Modular!
Chris Santos
Cres que unha persoa con coñecementos básicos a intermedios podería comezar os seus estudos nesta nova lingua? Ou recomendas estudar primeiro unha linguaxe máis básica, como Javascript ou Python?
İlke Candan Bengi
Ola Chris, desculpa a resposta tardía! Creo que ter unha comprensión/experiencia básica de Python de antemán podería ser útil antes de comezar con Mojo.