Today, the Mojo language officially reaches 1.0: a milestone the language has been building toward since its first release in 2023. Mojo has grown into a general-purpose language with a vibrant developer community writing their own libraries, tools, and applications on top of it. With Mojo 1.0, developers can now build for the long-term on a stable, production-ready language foundation.
Mojo 1.0: A stable foundation for ecosystem growth
Modular has rapidly evolved the Mojo language through extensive internal use. But that pace of progress has come with a tradeoff: frequent changes have made it difficult for the community to maintain long-term projects.
As we stated when we first announced the path to Mojo 1.0, its primary goal is to provide a stable foundation developers can build on. We are making that commitment today because Mojo is ready: it is no longer just a language we are developing; it is a language we rely on every day in production as the foundation of our commercial infrastructure, MAX and Modular Cloud.
Importantly, Mojo 1.0 does not mark the end of the language’s evolution, but it is an important milestone on a longer journey. During the 1.x timeframe, changes should primarily be additive, giving developers confidence that the language will not continually shift beneath them. Breaking changes may still be made, but will be managed with care, following the standards of how mature languages (e.g. C++) evolve over time.
Yet, this milestone belongs just as much to our incredible community as it does to us. Since we open-sourced the standard library, nearly 200 contributors have landed more than 1,100 pull requests, changing over 200,000 lines of code, and more than a thousand others have filed issues that shaped the language. To every developer who filed an issue, opened a pull request, wrote a language proposal, or built a package: thank you for being the architects of this language alongside us.
Mojo improvements in 26.5
Much of this release is focused on completing the work required for Mojo 1.0 – a throughline across our last several releases as we’ve worked to make the language more consistent, predictable, and approachable.
Where Mojo offered multiple ways to express the same idea, we’ve converged on one. Variables are now consistently declared with var, closures have been unified, there is a single Pointer type, and a number of renamings have made the Mojo lexicon more precise and consistent.
This release completes that final round of language simplification and cleanup, giving Mojo 1.0 the stable, coherent foundation we want developers to be able to build on for years to come.
... continue reading