Pular para o conteúdo principal

Mojo: a nova linguagem de programação para IA

Um panorama de uma nova linguagem de programação tão simples quanto Python e tão rápida quanto Rust.
Atualizado 17 de set. de 2026  · 9 min lido

Explorar com IA

ChatGPTClaudePerplexity

Mojo é uma linguagem de programação que combina a facilidade de uso e a flexibilidade de linguagens dinâmicas, como Python, com a performance e o controle de linguagens de sistemas, como C++ e Rust.

Ela atinge alta performance por meio de inovações no compilador, como cache integrado, multithreading e distribuição em nuvem, enquanto autotuning e metaprogramação permitem otimizar o código para diversos hardwares.

Os principais recursos do Mojo incluem:

  • Sintaxe semelhante à do Python e tipagem dinâmica tornam o Mojo fácil de aprender para desenvolvedores Python, já que Python é a principal linguagem por trás dos avanços modernos em IA/ML.
  • Com Mojo, você pode importar e usar qualquer biblioteca Python, garantindo interoperabilidade total com Python.
  • Suporta compilação just-in-time (JIT) e ahead-of-time (AOT). O compilador Mojo aplica otimizações avançadas e até geração de código para GPU/TPU.
  • Mojo dá controle total sobre layout de memória, concorrência e outros detalhes de baixo nível.
  • Ao combinar capacidades de linguagens dinâmicas e de sistemas, Mojo segue um modelo unificado de programação que é amigável para iniciantes e escalável para vários casos de uso com aceleradores.

Mojo ainda é uma linguagem incompleta e não está disponível publicamente. A documentação é voltada a desenvolvedores com experiência em programação de sistemas.

No entanto, à medida que a linguagem evoluir, a intenção é torná-la mais amigável e acessível para iniciantes.

como começar com Mojo

Mojo não está disponível publicamente, mas você pode acessar o Mojo Playground ao se inscrever nos produtos Modular. Ao se cadastrar, certifique-se de selecionar Mojo em "Modular Product Interest".

Imagem da Modular: comece hoje mesmo

Imagem da Modular: comece hoje mesmo

Depois da inscrição, você receberá um e-mail liberando o acesso ao Mojo Playground em até uma hora. O Mojo Playground é um ambiente JupyterHub em que os usuários acessam a mesma biblioteca padrão do Mojo. Porém, cada um tem um volume privado para escrever e salvar seus programas em Mojo.

Imagem do Mojo Playground

Imagem do Mojo Playground

Quando o Mojo se tornar open source e estiver disponível publicamente, você poderá executar um programa Mojo pelo terminal. Ele funciona tanto como linguagem interpretada quanto compilada.

Você pode salvar o arquivo como test.mojo ou test.🔥.

Sim, dá para salvar o arquivo com o emoji de fogo. Como você vê, criamos um arquivo simples do Mojo, test.🔥, e o executamos no terminal.

def main():
    print("Hello Mojo!")
$ mojo test.🔥
Hello Mojo!

Mojo e Python

Mojo é um superconjunto de Python e tem uma sintaxe quase idêntica à de Python. Ele também traz novos recursos, como let, var, struct e fn, para definir variáveis, estruturas e funções e, assim, ganhar desempenho.

declarações let e var

Ao escrever código em Mojo, você pode declarar variáveis usando as palavras-chave let e var. É semelhante a como se declara variáveis em Rust.

A palavra-chave let indica que a variável é imutável, enquanto var indica que ela pode ser modificada. Isso melhora a performance ao impor restrições em tempo de compilação.

tipos struct

Mojo usa a palavra-chave struct, semelhante à class do Python. Classes em Python são dinâmicas e lentas; tipos struct são mais próximos de C/C++ e Rust. Eles têm layouts de memória fixos determinados em tempo de compilação, o que os otimiza para performance nativa.

definições fn

Usar def para definir uma função cria uma função Python, com todo o dinamismo e flexibilidade do Python. Já a palavra-chave fn define uma função Mojo com mais restrições. Isso significa que os argumentos são imutáveis por padrão e exigem tipagem explícita e declarações de variáveis locais, entre outros pontos.

exemplo de comparação de sintaxe

No exemplo, vamos criar uma função Mojo que soma dois argumentos.

Para executar a função em Mojo:

  • Você deve especificar um tipo para os argumentos da função.
  • Você deve declarar o tipo de retorno com uma seta.
fn add(x: Int, y: Int) -> Int:
    return x + y

z = add(3, 5)
print(z)
>>> 8

Ao programar em Python, podemos definir funções sem indicar explicitamente o tipo dos argumentos e da saída. Isso torna o processo mais dinâmico e direto. No entanto, em comparação, a função fn do Mojo é mais rápida que def.

def add(x, y):
    return x + y

z = add(3, 5)
print(z)
>>> 8

Matplotlib no Mojo

Além de turbinar a performance, Mojo permite que os desenvolvedores importem qualquer biblioteca Python e a integrem com funções em Mojo. Usando o interpretador CPython, o Mojo oferece suporte transparente a todos os módulos Python disponíveis hoje.

No exemplo a seguir, importamos matplotlib.pyplot e exibimos um gráfico de linha. Para exemplos avançados, confira o Mandelbrot em Mojo.

from PythonInterface import Python

let plt = Python.import_module("matplotlib.pyplot")

x = [1, 2, 3, 4]
y = [30, 20, 50, 60]
plt.plot(x, y)
plt.show()

Gráfico de saída do Mojo

É amplamente reconhecido que Python é a linguagem mais popular para IA/ML. Seguir a trilha de carreira Machine Learning Scientist with Python vai equipar você com as habilidades de Python necessárias para conquistar uma vaga como cientista de machine learning.

programando com Mojo

Mojo é um superconjunto de Python, assim como TypeScript é um superconjunto de JavaScript. Além de novas palavras-chave e funções, qualquer programador Python consegue entender e construir programas com ele.

Nesta parte, vamos ver recursos do Mojo que o tornam performático e seguro.

programação de baixo nível

Mojo é uma linguagem de alto nível que dá acesso a primitivas de baixo nível por meio do MLIR (Multi-Level Intermediate Representation), um formato extensível de representação intermediária. Isso permite implementar abstrações de custo zero enquanto aproveita otimizações poderosas do compilador.

otimização por tiling e autotune

Mojo tem uma ferramenta de otimização por tiling embutida que melhora a localidade de cache e os padrões de acesso à memória ao dividir computações em blocos menores que cabem na memória cache rápida.

O módulo Autotune no Mojo oferece interfaces para compilação adaptativa. Ele ajuda você a encontrar os melhores parâmetros para o seu hardware-alvo ajustando o código automaticamente.

ownership e borrowing

Mojo usa o sistema de ownership e borrowing para gerenciar memória, eliminando a necessidade de garbage collector e garantindo desempenho consistente em tempo de execução. O compilador do Mojo analisa o tempo de vida das variáveis por análise estática e libera os dados assim que não são mais usados.

gerenciamento manual de memória

Mojo também oferece um sistema de gerenciamento manual usando ponteiros, semelhante a C++ e Rust.

multiplicação de matrizes no Mojo

No exemplo de multiplicação de matrizes, observamos que importar código Python para o Mojo resultou em um aumento de performance de 17,5 vezes.

Ao introduzir tipos na implementação em Python, a performance melhorou ainda mais, chegando a impressionantes 1866,8 vezes.

Além disso, foram usadas técnicas como vetorização, paralelização, tiling e autotuning para atingir um ganho de performance de 14050,5 vezes. É sensacional. Nem Julia nem Rust costumam entregar esse nível de otimização.

exemplo de código em Mojo

Neste exemplo de carro, vamos criar uma classe CAR com a sintaxe do Mojo.

  1. Vamos criar uma classe CAR usando struct.
  2. Iniciar uma variável mutável usando var.
  3. Definir os tipos das variáveis. "speed" é Float32 e "model" é String. String não é um tipo nativo, então precisamos importá-lo.
  4. Vamos criar duas funções de inicialização semelhantes às do Python, mas usando a função fn: uma apenas com a velocidade do carro e outra com velocidade e modelo.
  5. Depois disso, criar um objeto usando CAR com velocidade 300.
  6. Imprimir o modelo do carro.
from String import String

struct CAR:
    var speed: Float32
    var model: String

    fn __init__(inout self, x: Float32):
        """Car with only speed"""
        self.speed = x
        self.model = 'Base'

    fn __init__(inout self, r: Float32, i: String):
        """Car with Speed and model"""
        self.speed = r
        self.model = i

my_car=CAR(300)
print(my_car.model)
Base

Como você pode observar, o estilo de programação e a funcionalidade do Mojo são semelhantes aos do Python. Ele funciona como uma extensão do Python, aprimorando performance e gerenciamento de memória. Com Mojo, você treina modelos rapidamente, obtém inferência mais veloz (mesmo em CPUs), analisa conjuntos massivos de dados em segundos e faz simulações em tempo real.

Você pode conferir todos os exemplos de código na documentação da Modular e executá-los em um notebook Jupyter no playground.

o Mojo vai substituir o Python?

No momento, é difícil determinar o potencial do Mojo como linguagem de propósito geral devido ao estágio inicial de desenvolvimento e à falta de recursos necessários. Porém, ele pode superar Python em aplicações de machine learning e IA em que alta performance é crucial.

Ainda assim, é improvável que o Mojo substitua totalmente a liderança do Python em ciência de dados e outras áreas de desenvolvimento de software tão cedo.

Mojo foi criado especificamente para aplicações de machine learning e não é voltado para outras áreas, como back-ends web, automação de processos ou web design. Embora no futuro os desenvolvedores possam expandir suas capacidades, o foco atual do Mojo é otimizar aplicações de machine learning.

Além disso, vale notar que o Mojo tem uma seleção limitada de módulos e bibliotecas em comparação com Python, que conta com uma grande comunidade de desenvolvedores criando constantemente novas e melhores ferramentas para IA e ciência de dados. Pode levar anos para o Mojo alcançar o nível de maturidade do Python.

Aprenda como modelos de IA generativa são desenvolvidos e como eles vão impactar a sociedade daqui para frente no curso Generative AI Concepts da DataCamp.

conclusão

Em resumo, embora o Mojo mostre potencial como uma linguagem rápida e compatível com Python, voltada para IA/ML, é improvável que substitua completamente o Python no curto prazo. Python se beneficia de um ecossistema gigantesco, de uma comunidade ativa e de forte presença em ciência de dados e ML. No melhor cenário, o Mojo pode se tornar uma linguagem complementar ao Python, usada quando a velocidade é crítica.

Neste tutorial, revisamos os recursos e a sintaxe do Mojo com exemplos de código. Também comparamos com Python, considerando fatores como performance, sintaxe, funcionalidade e compatibilidade. Para quem quer dominar os fundamentos de IA e Machine Learning, recomendamos a trilha Machine Learning Fundamentals with Python.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Sou um cientista de dados certificado que gosta de criar aplicativos de aprendizado de máquina e escrever blogs sobre ciência de dados. No momento, estou me concentrando na criação e edição de conteúdo e no trabalho com modelos de linguagem de grande porte.

Tópicos
Inteligência Artificial
Python

Aprenda os tópicos citados neste tutorial!

Curso

Conceitos de IA Generativa

2 h
117.2K
Descubra como usar IA generativa de forma responsável e seu impacto futuro na sociedade.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

blog

Anunciando a série de codificação conjunta "Torne-se um desenvolvedor de IA

Comece a trabalhar com a IA generativa nesta nova série de código-along. Gratuito por tempo limitado.
DataCamp Team's photo

DataCamp Team

4 min

blog

Introdução ao LLaMA da Meta AI

O LLaMA, uma estrutura revolucionária de código aberto, tem como objetivo tornar mais acessível a pesquisa de modelos de linguagem de grande porte.
Abid Ali Awan's photo

Abid Ali Awan

8 min

Python Programming Language

blog

O que é Python? Tudo o que você precisa saber para começar

Descubra o poder e a versatilidade de Python neste guia completo. Da história e popularidade às aplicações práticas e um passo a passo de aprendizado, saiba tudo para dominar Python e impulsionar sua carreira em programação.
Summer Worsley's photo

Summer Worsley

15 min

blog

Mixture of A Million Experts (MoME): Conceitos-chave explicados

O MoME (Mixture of Million Experts) é um modelo de linguagem dimensionável que usa o Mixture of Experts (MoE) com um mecanismo de roteamento chamado PEER para utilizar com eficiência milhões de redes especializadas.
Bhavishya Pandit's photo

Bhavishya Pandit

7 min

Tutorial

Como criar aplicativos LLM com o tutorial LangChain

Explore o potencial inexplorado dos modelos de linguagem grandes com o LangChain, uma estrutura Python de código aberto para criar aplicativos avançados de IA.
Moez Ali's photo

Moez Ali

12 min

Tutorial

Primeiros passos com o Claude 3 e a API do Claude 3

Saiba mais sobre os modelos Claude 3, benchmarks de desempenho detalhados e como acessá-los. Além disso, descubra a nova API Python do Claude 3 para geração de texto, acesso a recursos de visão e streaming.
Abid Ali Awan's photo

Abid Ali Awan

Ver MaisVer Mais