Skip to content
Tech AI Wire
Coding

Mojo passa a ser código aberto sob Apache 2.0, contribuições continuam fechadas

3 min de leitura

Por Tech AI Wire Team

Em números

Apache 2.0
license, with LLVM exceptions
1.0
version shipped the week before, with source stability
2024
year the standard library began taking contributions
The Mojo flame logo printed on a white card with a red open padlock in front of it

A Modular abriu o código do compilador do Mojo e de suas ferramentas em 18 de agosto sob a licença Apache 2.0 com exceções da LLVM, colocando a última peça fechada da linguagem no GitHub uma semana após o lançamento do Mojo 1.0. O porém para quem espera enviar um patch: a Modular afirma que ainda não aceita contribuições ao compilador nem às ferramentas, e pretende começar "até o fim deste ano".

O que realmente foi aberto e o que não foi

A biblioteca padrão do Mojo está aberta desde 2024, junto com o que o anúncio da Modular descreve como centenas de milhares de linhas de código de kernel escritas em Mojo. O compilador e as ferramentas ao seu redor eram os componentes fechados restantes, e são eles que se moveram esta semana.

ComponenteSituação
Biblioteca padrãoAberta desde 2024, aceita contribuições
Código de kernel escrito em MojoJá aberto
CompiladorCódigo publicado em 18 de agosto; contribuições ainda não aceitas
FerramentasCódigo publicado em 18 de agosto; contribuições ainda não aceitas

A distinção importa mais do que parece. Publicar o código-fonte sob Apache 2.0 concede os direitos que tornam uma linguagem segura para construir uma empresa sobre ela: uso, modificação, redistribuição e uma concessão explícita de patente. Aceitar contribuições é uma questão de governança separada, e a Modular lhe deu uma data em vez de deixá-la em aberto.

Por que Apache 2.0 especificamente

O anúncio da Modular transforma a escolha da licença em um argumento explícito: "A licença Apache 2.0 é o padrão de ouro para linguagens de programação e compiladores, porque oferece grande flexibilidade para ser usada em todo tipo de aplicação." A exceção da LLVM anexada a ela é o mesmo arranjo que a própria LLVM usa, e existe para impedir que os termos da licença alcancem a saída do compilador - o que é o que a torna utilizável para software proprietário construído com a cadeia de ferramentas.

Essa linhagem não é coincidência. O Mojo foi criado por Chris Lattner, que, como observa a Phoronix, é o arquiteto por trás tanto da LLVM quanto do Swift, e a linguagem se apoia na mesma infraestrutura de compilação.

A questão da Qualcomm

Ambas as fontes observam que o anúncio surge após a aquisição da Modular pela Qualcomm; a Modular agora se descreve como uma empresa Qualcomm. A Phoronix enquadra a abertura do código como inesperada nesse contexto, apontando para o que chama de histórico misto da Qualcomm com o código aberto.

Lido de outra forma, um lançamento sob Apache 2.0 imediatamente após uma aquisição é o sinal mais forte que um projeto de linguagem adquirido pode enviar sobre continuidade - a licença não pode ser revogada para o código já publicado. Se essa continuidade se estende ao roteiro e à janela de contribuição prometida é a parte que ainda falta demonstrar.

O que isso significa para os desenvolvedores

Se você avaliou o Mojo antes e parou no compilador fechado, essa objeção específica agora acabou: você pode ler o compilador, compilá-lo, fazer um fork e distribuir software proprietário sobre ele sem uma questão de licença pairando sobre a cadeia de ferramentas. Essa é a diferença entre uma linguagem com a qual você pode experimentar e uma que você pode justificar em uma avaliação tecnológica.

O que não mudou foi o caminho para contribuir. Abrir uma issue vale a pena; planejar um trabalho que dependa da integração de um patch do compilador, não

  • até que a Modular abra essa porta. Ela diz que será até o fim de 2026, então trate qualquer coisa antes disso como um bônus, e não como um plano.

Duas observações práticas da cobertura da Phoronix valem uma verificação em relação ao seu próprio ambiente antes de investir tempo. O suporte a plataformas abrange macOS e Linux, com o Windows ainda em desenvolvimento - se a sua equipe é voltada primeiro para o Windows, a saída é WSL ou um contêiner, não ferramentas nativas. E o Mojo interopera com o Python nos dois sentidos, chamando o Python a partir do Mojo e vice-versa, que é o que torna realista uma adoção incremental: você pode mover um único caminho crítico em vez de reescrever uma base de código para experimentar a linguagem.

O número da versão é o outro sinal a ponderar. O Mojo 1.0 chegou apenas uma semana antes deste lançamento, e a Modular o combina com um compromisso de estabilidade do código-fonte - o ponto em que uma linguagem deixa de se mover sob seus pés entre lançamentos. Para quem vinha esperando o Mojo deixar de ser um experimento antes de dedicar tempo real de engenharia a ele, o rótulo 1.0 somado a um compilador sob Apache 2.0 é a combinação que estava faltando.