Skip to content
industry insights

Mojo 1.0: Mais rápido que C, mas quebrado?

Mojo promete o impossível: a simplicidade do Python com a velocidade bruta do C++. Mas seu lançamento open-source 1.0 esconde uma crise de estabilidade e benchmarks questionáveis que os desenvolvedores precisam conhecer.

Cassidy Wolfe
Mojo 1.0: Mais rápido que C, mas quebrado?

O problema de velocidade do Python, resolvido?

O Python reina absoluto no desenvolvimento rápido, mas seu calcanhar de Aquiles continua sendo o desempenho. Cientistas de dados e engenheiros de ML iniciam projetos rotineiramente em Python, apenas para encontrar barreiras quando a velocidade bruta se torna primordial. Isso força um sistema frágil de duas linguagens, onde componentes críticos são reescritos em C++ ou CUDA, criando dores de cabeça de manutenção à medida que essas bases de código separadas inevitavelmente divergem.

Mojo promete resolver esse dilema fundamental. Sua visão central: uma única linguagem semelhante ao Python que compila para alto desempenho tanto em CPUs quanto em GPUs. Isso unificaria todo o fluxo de trabalho de desenvolvimento, eliminando a necessidade de trocar de paradigmas ou linguagens para diferentes alvos de execução. É uma afirmação ousada, visando entregar velocidade de nível C com a renomada experiência de desenvolvedor do Python.

O ponto de prova mais convincente chega rapidamente. Em um MacBook padrão, demonstrar as capacidades do Mojo envolve compilar um kernel de GPU funcional com código notavelmente simples e legível. Isso não é teórico; a linguagem executa uma função acelerada por GPU, somando pares de números, sem recorrer a Metal, Swift ou CUDA. É um "momento mágico" tangível que valida a promessa de um superconjunto de Python verdadeiramente unificado e de alto desempenho.

Desconstruindo o mito da velocidade 68.000x

Esqueça o hype do marketing viral. As alegações iniciais do Mojo de acelerações de 35.000x ou até 68.000x são, na melhor das hipóteses, enganosas e, na pior, desonestas. Esses números astronômicos derivam da comparação de código Mojo totalmente vetorizado e paralelizado contra um loop Python triplamente aninhado e ridiculamente ingênuo. Nenhum desenvolvedor profissional escreveria tal implementação Python não otimizada para tarefas críticas de desempenho, tornando essas comparações irrelevantes.

Benchmarks mais realistas, realizados em um M4 Pro, pintam um quadro mais claro. O Mojo demonstra ser respeitáveis ~26,5x mais rápido que o Python puro. Crucialmente, ele também tem um desempenho ~2x superior ao NumPy, uma biblioteca fundamental para a pilha de computação científica do Python. Essa distinção é vital; 26,5x é impressionante, mas não são os números míticos inicialmente alardeados.

Superar o NumPy é a verdadeira manchete do Mojo. O próprio NumPy depende de código C compilado e altamente otimizado para suas operações principais. O Mojo não está apenas superando o Python; ele está superando o C testado em batalha. Isso sugere que o Mojo alcança sua vantagem através de um gerenciamento de memória superior e otimizações de compilador sofisticadas, indo além até mesmo de código legado altamente ajustado.

Qualcomm, Open Source e timing suspeito

Uma linha do tempo altamente incomum e comprimida obscurece os marcos recentes do Mojo e exige um escrutínio imediato. A Qualcomm finalizou sua aquisição da Modular em 29 de julho. Apenas duas semanas depois, em 11 de agosto, o Mojo 1.0 foi lançado — com seu compilador principal notavelmente permanecendo de código fechado. Então, em uma reversão impressionante apenas sete dias depois, em 18 de agosto, o compilador foi abruptamente aberto. Essa rápida sucessão de eventos, pós-aquisição, é tudo menos típica.

Duas narrativas drasticamente diferentes emergem desse timing suspeito. Seria a Qualcomm pressionando agressivamente pela rápida adoção do Mojo, removendo estrategicamente a maior barreira de entrada para desenvolvedores (sua natureza proprietária)? Ou, de forma mais sinistra, isso sinaliza a fase inicial de uma absorção corporativa maior, onde a tecnologia inovadora da Modular pode em breve ser absorvida, com sua trajetória de longo prazo e futuro independente agora profundamente incertos sob uma gigante corporativa?

Embora a mudança para uma licença Apache 2.0 seja inegavelmente uma grande vitória para a transparência e certamente bem-vinda pela comunidade de desenvolvedores, um asterisco crítico persiste. A Modular declarou explicitamente que ainda não está aceitando contribuições externas para o compilador. Essa limitação crucial significa que, embora o código-fonte esteja visível, o projeto permanece efetivamente source-available em vez de um esforço verdadeiramente impulsionado pela comunidade, dificultando o desenvolvimento colaborativo de que Mojo precisa para prosperar. Mais detalhes sobre a linguagem podem ser encontrados em Mojo.

Gostando do artigo? Receba um assim na sua caixa de entrada toda manhã.

um e-mail por dia · cancele em dois cliques · sem rastreadores de terceiros

As 41 falhas no lançamento 'estável' do Mojo

O lançamento 1.0 do Mojo foi declarado um marco de estabilidade, mas foi entregue com uma contradição gritante. Essa base supostamente "estável" incluía 41 avisos de API instável, sinalizando funções integradas fundamentais como int, print e len. Marcar componentes principais da linguagem como instáveis em um lançamento de versão principal não é apenas um descuido; é um profundo enfraquecimento da própria promessa de estabilidade.

Minando ainda mais a confiança, a palavra-chave fn central foi completamente removida. Essa mudança radical, que afetou dezenas de pacotes, ocorreu exatamente no mesmo dia em que Mojo prometeu estabilidade de API, tudo sem um processo de descontinuação adequado. Tal desrespeito casual pelo ecossistema de desenvolvedores existente é um sinal alarmante para qualquer linguagem que vise ampla adoção em produção.

Para desenvolvedores de kernel de GPU, Mojo oferece uma proposta genuinamente atraente, que certamente justifica alguns dias de experimentação. A visão de uma linguagem unificada entre CPU e GPU é única e poderosa. No entanto, para a comunidade de desenvolvedores em geral, os problemas gritantes de estabilidade do Mojo e as questões de governança opacas em torno de sua recente aquisição pela Qualcomm tornam-no uma aposta de alto risco. Esta linguagem requer um amadurecimento significativo antes que possa ser considerada uma escolha confiável para produção.

Perguntas Frequentes

O que é a linguagem de programação Mojo?

Mojo é uma linguagem de programação criada pela Modular. Ela foi projetada para ser um superconjunto de Python, combinando a facilidade de uso do Python com o alto desempenho de linguagens de sistemas como C++ e CUDA, principalmente para IA e computação de alto desempenho.

Quanto o Mojo é mais rápido que o Python?

Embora o marketing inicial alegasse acelerações de 35.000x ou mais, elas foram baseadas em comparações injustas. Testes no mundo real mostram que o Mojo é cerca de 26,5x mais rápido que o Python puro e cerca de 2x mais rápido que o código NumPy altamente otimizado para tarefas específicas.

O Mojo é realmente open source?

Sim. Desde agosto de 2024, o compilador Mojo, a biblioteca padrão e os componentes principais são open source sob a licença Apache 2.0. No entanto, o projeto ainda não está aceitando contribuições externas para o próprio compilador.

O Mojo 1.0 é estável o suficiente para produção?

Apesar do número de versão '1.0', o Mojo atualmente apresenta preocupações significativas de estabilidade. O lançamento inicial incluiu dezenas de avisos de API instável para funções principais e introduziu mudanças radicais, tornando-o uma escolha arriscada para a maioria dos ambientes de produção hoje.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$500 · AI tools & software only