38 comments

[ 0.22 ms ] story [ 14.5 ms ] thread
So is the language itself proprietary licensed, with standard library Apache 2?

Am I understanding the current state of things correct?

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.
Don't see the value of using a language with a closed source compiler...

Much better options out there. Python already has libraries like Pydantic that offload performance to functions written in Rust under the hood.

Interesting. Heard about Mojo a few years now, never really tried it. My Python brain cannot really write C++ or Rust but still need the performance.
never has their been a language release so uninspiring
The main downside is that usually I only choose languages that the LLM is extremely good at. (however I avoid dynamically typed).

But I hope they succeed, it's a very interesting approach. Then I will jump on it later on. S

Mojo may be interesting to me, but they should really split it from Max, which is some closed stuff I'm not interested in.

They should show some performance comparisions between PyTorch and Mojo, PyTorch+kernel compilation + Triton vs Mojo, ThunderKittens vs Mojo.

AI generated first image does not give me much confidence.

Lastest OpenCV 5 release notes also had a lot of LLMisms.

I guess that's the new normal. Still, I am very hopeful for Mojo.

> 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.

Why not now though? Why wait for 4 more months? What magic is there to hide in just making it source available at least.

I feel like this language would really benefit from some sort of 1-pager overview.

I just spent a fair bit of time on the official site, and I still don't think I have a very good grasp of what problem this language aims to solve, or why I would select it over other similar languages

To be fair, a good bit of the apps/programs/projects posted on hacker news could use a good '1-pager overview'. Like has nobody every explained the 'elevator pitch'. A little marketing doesn't mean you are selling out. Obfuscating your product doesn't make you hip.
the 1.0 release of Mojo, it's a pretty big event, of course first thing I'm greeted with is an AI slop image on the top of the blog post

awesome

> following the standards of how mature languages (e.g. C++) evolve over time

This gave me a chuckle. When I think of languages evolving their standards, I do think of C++. But not, you know, in a good way.

The point is that you can compile both old and new versions of C++ using the same compiler. Rust and Go also evolve like this
You may compile, linking binary libraries compiled with different versions is a different matter, especially if there are relevant changes between versions on either the standard library, or other dependencies.
Apparently they'll be open sourcing it on August 18th, one week from now.
Is Mojo being a superset of Python still part of its projected feature set?

I tried Mojo a bit early on and decided to come back to it when it was more complete, and in the interim I read some comments somewhere that the superset-of-Python part was being walked back from.

On https://mojolang.org/docs/roadmap/ it's stated (Phase 3) that "Mojo may or may not evolve into a full superset of Python, and it's okay if it doesn't."

I feel like that "full superset of Python" part was part of the appeal of Mojo.

Personally I'm kind of tired of 97% python-compatible this-and-that. Python itself has enough of a history of incompatibility and the cognitive overhead in switching might be easier with just moving to a totally different language. But maybe not — it depends on the details I guess.

Honestly reading through the documentation more and more I'm more and more confused about what the 1.0 release actually means.

Nothing but respect for Chris, and I understand why founders take these deals. But an acquihire usually means the product is the part that gets left behind, and that's the part I cared about.
"We arbitrarily decided we are at 1.0 now, this is a major milestone."
Sorry Chris, love you but will not use a closed language.
I wish Modular/Qualcomm good luck with this. We would be well served with a good alternative to Cuda. I will be looking at Modcon to see how serious they are with Mojo's ecosystem. (Hopefully it won't be yet another SYCL).
Given the shared heritage with MLIR, one way to think about mojo: higher level IR, but still an IR. Rpython for GPUs.

But mojo is a superset, not a subset. So why not use a subset, infer what you need and generate mojo?

I've never seen this question actually presented to the company and discussed in more detail.

From Mojo Wikipedia article: ``` The intention behind Mojo is to bridge the gap between Python’s ease of use and the fast performance required for cutting-edge AI applications. ```

Basically, same raison d'etre as that of Julia.

Mojo and Julia have some very fundamental differences though...

Mojo is a fully ahead-of-time (AOT) compiled systems language. Julia is much more dynamic, and its AOT compilation story is still quite weak. Mojo also has explicit memory management, unlike Julia and its real time unfriendly garbage collector.

Mojo also has the concept of ownership, similar to Rust, while Julia does not.

Mojo is being pitched as an efficient, general purpose, Pythonic systems language which can target a variety of hardware types. That seems like a good target to me, I hope it's successful!

One thing to keep an eye on is whether or not a Windows port emerges after it's open sourced...

a systems language that reads like python is great!

python superset would have been perfect.

I do hope the language thrives and gets a community.

All the best to the modular team.

(A) MOJO should have used rust.

(B) MOJO should should have used Nvidia.

(A) Mojo is intended to be a more ergonomic Rust, with Pythonic syntax, and much faster compilation.

(B) Mojo supports multiple GPU types, including AMD, Apple, and whatever may come along. That's one of its major selling points over CUDA. It's also targeted at other novel hardware accelerators etc.