Creating a new language in the age of AI seems kind of pointless. I don't write code by hand anymore, I only review it and I prefer it to be in a language which I already know since investing time in learning another language doesn't make sense at this point.
And Mojo will die because nvidia is not interested in maintaining any semblance of backwards compatibility when it comes to CUDA. It's going to be a perpetual race forwards, and whenever nvidia upgrades CUDA, you're going to be stuck there twiddling your thumbs and waiting for Mojo to become compatible.
Additionally, anyone who has seen how Swift evolved should be wary of Lattner saying "the language is mostly stable", or even "the language is released".
It's not true that Nvidia doesn't care about CUDA backwards compatibility. The invention of TileIR was motivated entirely by that problem. GPU architectures are supported by the full tool suites for at least 10 years by CUDA (that's longer than they are for graphics).
Nvidia is also a major contributor to MLIR, which they use for TileIR and ClangIR, so should a compatibility break occur it wouldn't be entirely up to Mojo to fix it.
> Finally, we will continue to progressively open-source more of the Mojo language, as well as components in MAX that we have built with it. Our commitment remains unchanged – we will open source the Mojo compiler and toolchain in 2026.
> Weird to release 1.0 without it. What are they waiting for?
Hmm, I've been under the impression that at one point they said it'd be 100% FOSS by the time 1.0 hits, but maybe I misunderstand/misremember the details. But I remember they'd said it'd be FOSS in connection with 1.0, seems weird to do it this way instead of waiting until it's all FOSS then cut 1.0.
I think they are waiting for a wild success in adoption, and if that doesn't happen they can use the IP to pivot to something else without giving the core away to anyone for free/as open-source.
A lot of people beg to differ. And it's their decision, not yours on when to open source. They have their reasons even if they aren't explaining them to you.
From listening to Chris Lattner in interviews my guess it’s learning from when Swift became open source. The beta versions of Swift had massive language changes in how value types worked like with Array. Mojo is trying to get this language design locked down first, which is easier to do behind closed doors.
A compiler promising source stability is a different commitment than the compiler’s code being ready for outside contributors. Which is also different to having ABI stability, which took until 5.0 for Swift to achieve (I think Mojo does not have ABI stability as a goal as it doesn’t have to link to OS frameworks).
That doesn't really make sense, as being open source really has nothing to do with whether the language has an open evolution process. And if they've already declared 1.0, then they've already decided they're stable, so the original point doesn't apply any more.
I feel like they're going to remain closed until Qualcomm is convinced they can't make any money from it being so.
C and C++ were closed source for quite some time, they still are in places like commercial embedded OSes and console dev kits, even when they happen to be GCC and clang forks nowadays.
Clang actually has replaced most GCC forks exactly because vendors can keep the fork closed source.
Sure but at those times C and C++ had no immediate replacement, and if you were doing embedded C/C++ was your only option.
The same cannot be said for Mojo.
The C compiler source came with the AT&T UNIX tape ... it wasn't open source because FOSS didn't exist at the time and it was under a proprietary license, but it was not "closed source". Parts of MOJO, OTOH, are closed source because the source has not been released (yet ... it apparently will be later this month).
And then you drag the goalposts out of the country ...
As I said, C was not "closed source", it was distributed with source under a proprietary license. And "all the UNIX clone vendors" didn't exist for years after the UNIX tape was first released. And they weren't "clones", they were enhanced supported versions of the AT&T system. I worked for nearly a decade for the first of those commercial UNIX vendors, ISC ... the other prominent ones were SCO and Wollongong. (Sun came along later, based on BSD UNIX, developed for the VAX and of course derived from AT&T UNIX ... none of these were "clones" ... the first of those was Minix, and then GNU/Linux). We all distributed UNIX with the AT&T C compiler. Eventually ISC wrote their own C compiler for IBM's AIX project because IBM always had special requirements ... I don't know whether we distributed the source or not.
But the point is that this was nothing like the situation with Mojo, which currently has not released the compiler source ... which is nothing like what people on this page are writing, because it will be open source SOON, probably coincident with the conference later this month.
For once. A former colleague once quipped: The only way to make decent money in the business of language runtimes is to get a job at a big company that depends on it.
That’s insane, for a language that seems to be Temu-Python.
OTOH Python itself is the world’s most popular programming language, yet has only recently had the money to support more than a single full-time developer.
It almost feels like they were paying more in the hopes of owning the next LLVM or Swift based on the name on the tin rather than basing the price on the product itself.
Pydantic is mainly about making Python strongly typed.
Mojo addresses the actual need to write code in other languages, such as C++ or CUDA, for low level and hardware specific work.
But I wonder if it has already missed the AI hype cycle, when a lot of low level code is being written. I'm not sure how the developer ecosystem will react now.
It's JIT only, and it needs to be in a particular shape to be effectively compiled. It's mostly for numeric code, but there are many other cases where native code would be better.
The premise of Mojo used to be that it was a superset of Python so in theory LLMs would benefit from that but I'm not sure how much divergence there's been
Wouldn't that cause an awful lot of confusion in practice? Instead of having one being a superset of the other, you now have two almost identical syntaxes, but probably not quite.
LLMs have enough problems distinguishing between major versions between packages, e.g. where all the imports were moved around and renamed.
> They should show some performance comparisions between PyTorch and Mojo, PyTorch+kernel compilation + Triton vs Mojo, ThunderKittens vs Mojo.
The fact that they release 1.0 without doing this, I think says a lot. I personally haven't even started looking into Mojo because of the closed source stuff, but usually you can tell what's going on by looking for what's obviously missing.
Aren’t they already separated? Max is an inference runtime, written in Mojolang, which uses the MLIR compiler chain to target diverse accelerator hardware.
They kind of did. It has a separate website now [1] . All the docs, announcements, roadmap, some comparisons as you asked are there. So they do seem to be working towards separation.
165 comments
Am I understanding the current state of things correct?
(And now in the age of LLMs, the barriers to get started with a new programming language are lower than ever)
Additionally, anyone who has seen how Swift evolved should be wary of Lattner saying "the language is mostly stable", or even "the language is released".
Nvidia is also a major contributor to MLIR, which they use for TileIR and ClangIR, so should a compatibility break occur it wouldn't be entirely up to Mojo to fix it.
Much better options out there. Python already has libraries like Pydantic that offload performance to functions written in Rust under the hood.
Hmm, I've been under the impression that at one point they said it'd be 100% FOSS by the time 1.0 hits, but maybe I misunderstand/misremember the details. But I remember they'd said it'd be FOSS in connection with 1.0, seems weird to do it this way instead of waiting until it's all FOSS then cut 1.0.
Make of that what you will.
A compiler promising source stability is a different commitment than the compiler’s code being ready for outside contributors. Which is also different to having ABI stability, which took until 5.0 for Swift to achieve (I think Mojo does not have ABI stability as a goal as it doesn’t have to link to OS frameworks).
I feel like they're going to remain closed until Qualcomm is convinced they can't make any money from it being so.
Clang actually has replaced most GCC forks exactly because vendors can keep the fork closed source.
AMD/NVIDIA/Intel now having first class support for Python DSLs or GPU JITs for their APIs, and Julia as well.
It was just a different culture. There was no expectation that everything should be free.
In fact, GCC was largely ignored until Sun decided to split SunOS into two SKUs.
As I said, C was not "closed source", it was distributed with source under a proprietary license. And "all the UNIX clone vendors" didn't exist for years after the UNIX tape was first released. And they weren't "clones", they were enhanced supported versions of the AT&T system. I worked for nearly a decade for the first of those commercial UNIX vendors, ISC ... the other prominent ones were SCO and Wollongong. (Sun came along later, based on BSD UNIX, developed for the VAX and of course derived from AT&T UNIX ... none of these were "clones" ... the first of those was Minix, and then GNU/Linux). We all distributed UNIX with the AT&T C compiler. Eventually ISC wrote their own C compiler for IBM's AIX project because IBM always had special requirements ... I don't know whether we distributed the source or not.
But the point is that this was nothing like the situation with Mojo, which currently has not released the compiler source ... which is nothing like what people on this page are writing, because it will be open source SOON, probably coincident with the conference later this month.
I won't respond further about this.
The alternatives would be stuff like CUDA
OTOH Python itself is the world’s most popular programming language, yet has only recently had the money to support more than a single full-time developer.
This doesn't compete with Python.
Like if someone wrote a competitor to VHDL that looked like TEMU Python... Python would not be its competitor, VHDL would.
Mojo addresses the actual need to write code in other languages, such as C++ or CUDA, for low level and hardware specific work.
But I wonder if it has already missed the AI hype cycle, when a lot of low level code is being written. I'm not sure how the developer ecosystem will react now.
But I hope they succeed, it's a very interesting approach. Then I will jump on it later on. S
LLMs have enough problems distinguishing between major versions between packages, e.g. where all the imports were moved around and renamed.
https://github.com/modular/skills
They should show some performance comparisions between PyTorch and Mojo, PyTorch+kernel compilation + Triton vs Mojo, ThunderKittens vs Mojo.
The fact that they release 1.0 without doing this, I think says a lot. I personally haven't even started looking into Mojo because of the closed source stuff, but usually you can tell what's going on by looking for what's obviously missing.
1. https://mojolang.org/