46 comments

[ 3.0 ms ] story [ 81.0 ms ] thread
Tbh, Modular getting acquired happened sooner than I would have expected, if ever. Don't know how to feel about this one.

Also so many mixed feelings about Mojo, the programming language powering Modular. Of course Chris Lattner is free to pursue whatever he wants, his many contributions to tech will always be highly regarded, but to me it feels as if he "wasted" lots of his precious mental capacity on making Mojo a python-like language instead of trying to come up with something better from first principles. I know, the promise of Mojo eventually being a Python superset has been taken back, which I think is the right move, and I understand why Mojo's initial motivation for being close to Python was to attract ML folks, but I'm getting counterfactual regret just by thinking about what Chris Lattner could have achieved by making a new programming language truly from scratch and not letting some undesireable pythonisms muddy the language.

Anyway, sorry for rambling. Congrats to the team at Modular!

He already did that, Swift for Tensorflow, the project hardly survived one year after the public announcement.
To say nothing of "Swift for TensorFlow" when Julialang was an option.

To each their own!

"first principles" and "from scratch" are predictable failure modes... he had very good reason to pursue a Python-like language given the circumstances and objectives
> sorry for rambling.

You're right to ramble. I also believe that the world need a high level language fitting for accelerators that is not Python.

However developing something like that is by all means not a trivial task and many failed there.

Lisp, see Connection Machine and Star Lisp.

Several decades of their time.

Best of all, it is actually compiled without JIT drama.

This is the reasoning behind the guys that have created a whole new Common Lisp frontend to LLVM for biochemistry research at MIT.

Looked up Mojo

"Mojo aims to combine the usability of a high-level programming language, specifically Python, with the performance of a system programming language such as C++, Rust, and Zig

Mojo builds on the Multi-Level Intermediate Representation (MLIR) compiler software framework, instead of directly on the lower level LLVM compiler framework like many languages such as Julia, Swift, C++, and Rust.[16][17]

MLIR is a newer compiler framework that allows Mojo to exploit higher level compiler passes unavailable in LLVM alone, and allows Mojo to compile down and target more than only central processing units (CPUs), including producing code that can run on graphics processing units (GPUs), Tensor Processing Units (TPUs), application-specific integrated circuits (ASICs) and other accelerators.

It can also often more effectively use certain types of CPU optimizations directly, like single instruction, multiple data (SIMD) with minor intervention by a developer, as occurs in many other languages"

https://en.wikipedia.org/wiki/Mojo_(programming_language)

>Mojo aims to combine the usability of a high-level programming language, specifically Python, with the performance of a system programming language such as C++, Rust, and Zig

Providing usability without GC is an oxymoron.

The best attempt so far for Pythonic compiled language is D, that's probably why it's not mentioned in the Wikipedia entry along side other languages comparison. D has GC by default but manual memory management is supported as well.

Probably compiler researchers need to come with truly determinstic GC like the automotive industry invented the automatic gear. So that other existing compiled programming languages with GC like Go and D can thrive.

Disclaimer: I work for Modular.

Just wanted to confirm that we're still open sourcing Mojo this year!

And appreciate the nuanced feedback.

Qualcomm has acquired excellent engineering talent here, the infrastructure I've seen Modular build in the 3 years I've followed the company is insane.
Related, Reuters reported the deal a few days ago, valued at $4b: https://www.reuters.com/legal/transactional/qualcomm-nearing...
I call BS, zero chance this traded at $4B. The fact they describe it as a "chip company" shouldn't give confidence
Wired said ~$4B as well and linked the 8-k with the stock amount involved in the deal - based on some simple math of price at market open for the announcement + number of shares, it's directionally accurate.
It's interesting that acquire.fyi data shows tech M&A deal volume is down 11% year to date, but total deal value is up 40%. So, fewer deals are closing in tech, but the deals that are closing are much larger. I wish we had the deal value for this one.
As a meta comment, I'm surprised such a news is not reaching the frontpage already.
Oh, that is unexpected... I tried applying for a position at Modular a few days ago.
Qualcomm seems to be assembling a whole portfolio of technologies/products aimed at

1. Moving beyond ARM to RISC-V

2. Being competitive for AI/could needs instai of just chips for phones and other edge devices.

Interesting to see bold and high-conviction moves in this direction. Tenstorrent, Modular, Ventana, Alphawave, etc.

Whats peoples thoughts on Tenstorrent - they were looking for funding on Hiive recently but that deal got pulled when Qualcomm rumours surface a week or so ago.
Of all possible acquirers, Qualcomm is the worst outcome for Mojo, rip
(comment deleted)
I honestly think Mojo would be better served if it is just a high-level language for GPU programming that compiles down to PTX with clear Python/Rust interop boundaries instead of trying for the "one language, multiple computational model" thing that they seem to be going for. The programming model between CPU and GPU programming is very different: code that runs best on CPU with heavy branching behaviors should not be written the same way as massively parallel matrix multiplication oriented GPU code, which I think they will be forced to do in the MLIR level anyway.

So, you end up with a language that looks like Python, but doesn't behave like Python, and companies that adopt Mojo early with the promise of Python compatibility may find themselves running into edge cases with difficult to trace compiler error messages that would be nearly impossible to debug, especially with the addition of Zig style `comptime` as their metaprogramming model.

(comment deleted)
Has anyone used mojo/modular extensively in their work? I installed it as soon as it was available but never went past the toy examples.
I have a friend who is doing stuff with it, and he's incredibly excited about it, which is definitely a good sign.

I was really excited about it at launch, but its proprietary nature put me off.

I tried, also all a little while ago, really found the puzzles fun to do and then tried to implement some basic radar pipeline things and found lots of just basic 'building blocks' for signal processing (i/o things, fft) were missing to the point I went back to JAX.

I'm still not manage memory on GPU the way I would like, but mojo (or, my ignorant first stab at it) did not let me exploit direct DMA type things anyway.

I don't get it.

Qualcomm has almost no products in the high-end inference/training market. The industry standard is the NVIDIA Hopper H100/H200.

What could they possibly get from acquiring Modular?

Welp, I think I can give up on my hope for Mojo.
Yesterday, LineShine a supercomputer in China emerges as #1 in the Top500 using ARM v9 based chips and no GPUs. Today, Qualcomm a premier designer of ARMv9 licensed chips in the United States acquires Modular, who has been creating a compiler stack that provides an alternative to NVIDIA's CUDA stack.

Are you ready for Qualcomm ARMv9 powered inference running Mojo/MAX written kernels doing low-cost inference at scale for AI?

Either this was the plan all along (cashing in on the bubble) or it’s an admission of failure.
Mojo seemed like a passion project. The fundamental problem was never the lack of a great programming language, and inventing a python bastard child of a language is not a solution. But, respect and congrats to the Modular folks. HW companies have notoriously bad software teams and culture and hopefully this injects some good sw dna into the acquirer.
Modular now joins SYCL, OpenCL, and One API on the list of cross platform languages which never really became cross platform.

After so long and so much investment in AI, the best cross-platorm API we've got for high performance Kernels is vulcan, a graphics API. That is sad.

Still, this is pretty good for Modular's employees, probably good for Qualcomm. It's just terribly disappointing for anyone who invested time learning mojo in the hope it might actually become cross platform.

The competition to CUDA and proprietary 3D APIs always overlooks developer productivity.

For some strange reason there is this expectation, maybe due to UNIX background of those folks, that portable APIs have to exist without good IDE tooling, no graphical debuggers, no high level programming models, no libraries ecosystem.

Then for some "strange" reason, GPU developers mostly pick proprietary and the cycle repeats itself.

I might be reading this differently, but isn't the acquisition a bet that Modular will become a manufacturer-agnostic software stack?

> "We believe the future belongs to developer-friendly, horizontal platforms that can run across diverse compute environments and give customers real choice in how and where they deploy AI," Qualcomm CEO Cristiano Amon said.

> After so long and so much investment in AI, the best cross-platorm API we've got for high performance Kernels is vulcan, a graphics API. That is sad.

Vulkan is mighty fine, but Julia just works for me.

Wtf? What a joke, but I mean the best way to become a billionaire is convince someone with a billion dollars to give it to you. This is actually insane, wow. I guess Qualcomm is desperate? Nobody was bidding for this, but congrats to the team at modular?! I’m actually salty about this because like I don’t feel like mojo was even good after trying it out.