
Mojo é uma linguagem de programação PROMETIDA SER projetada especificamente para aplicações de Inteligência Artificial (IA). Ela é uma inovação recente, mas não se preocupe, você não precisa começar do zero! Mojo é, de certa forma, um subconjunto do Python, aproveitando-se da facilidade de uso desta linguagem. Portanto, para aqueles familiarizados com Python, a transição para Mojo é bastante simples. Além disso, Mojo possui desempenho comparável ao do C.
Isso significa que Mojo diz combinar o melhor de dois mundos: a simplicidade do Python com a rapidez do C. Então, Python tornou-se obsoleto para Data Science e IA? Não exatamente. Embora Python possua um vasto arsenal de pacotes para lidar com dados, ele recorre a rotinas de baixo nível escritas em C, C++ ou outras linguagens de alta performance quando a demanda por desempenho é alta. É assim que bibliotecas como TensorFlow e numpy operam em Python.
A linguagem Mojo foi desenvolvida pela empresa Modular, sendo Chris Lattner, co-fundador da empresa e criador do Swift e da infraestrutura de compilação LLVM escrita em C++, um dos responsáveis pela sua criação.
Aqui estão algumas características distintivas do Mojo:
- Mojo é uma subset de Python, com o objetivo de ser totalmente compatível com esta linguagem.
- Ele apresenta uma forte verificação de tipos para melhorar o desempenho e a detecção de erros.
- Inclui um verificador de propriedade e empréstimo de memória, por meio de uma convenção de argumento de propriedade (“owner”), utilizada por funções que buscam adquirir propriedade exclusiva sobre um valor, aumentando a segurança da memória.
- Possui ajuste automático integrado, que auxilia na determinação dos melhores valores para os parâmetros de acordo com o hardware utilizado.
- Utiliza todo o potencial da MLIR (“Multi-Level Intermediate Representation”), facilitando o uso de vetores, threads e unidades de hardware específicas para IA.
- Suporta paralelismo, otimizando o uso de hardware avançado, como as modernas GPUs.
Para ilustrar o desempenho de Mojo comparado ao Python, observe a tabela abaixo (não consegui determinar qual aplicação gerou estes dados):

Para concluir, o Mojo foi concebido com o objetivo de prover um modelo de programação distinto para aceleradores de aprendizado de máquina.
A Modular decidiu que o Mojo deveria suportar programação de uso geral, visto que as CPUs atuais possuem tensores e outros aceleradores de IA incorporados. Além disso, devido à ampla utilização do Python em aprendizado de máquina e em diversas outras áreas, a Modular decidiu integrar-se ao ecossistema Python.
A escolha do Python simplificou ainda mais o processo de design da linguagem. Com grande parte da sintaxe já estabelecida, a empresa pôde focar na construção do compilador e na implementação de capacidades de programação especializadas.
Como iniciar?
Você pode dar os primeiros passos AQUI com a linguagem Mojo agora mesmo, utilizando o Playground disponibilizado. Este ambiente, baseado no JupyterHub, oferece tutoriais e a chance de elaborar seu próprio código Mojo, mesmo que a linguagem ainda esteja em desenvolvimento. Para acessar o Playground, basta se cadastrar no site da plataforma.
Referencias:
[1] The PyCoach, Mojo: The Programming Language for AI That Is Up To 35000x Faster Than Python. Disponível em: https://artificialcorner.com/mojo-the-programming-language-for-ai-that-is-up-to-35000x-faster-than-python-e68d1fba37db.
[2] Modular, Modular: Mojo. Disponível em: https://docs.modular.com/mojo/.