Hi Jeremy Howard here. I pop up in the launch video to demo super-fast matmul and mandelbrot in mojo. I'm pretty excited about this language, to say the least - not just for AI/ML, but for pretty much everything!
Lemme know if you have any questions and I'll answer as best as I can. (I'm an advisor to Modulo.)
Are there plans to port any major existing Python libraries to pure mojo (mojo that will not use CPython)? Is there a plan for a general purpose matrix or tensor library like numpy or pytorch, but in pure mojo?
I'm not sure if it officially qualifies as a "plan", but a pure mojo numpy has certainly been discussed... personally I'd guess that's something that will need to be built to have this all work as well as possible.
Although there are no concrete implementations to review, the implication was that Mojo will/can be used standalone (similar to a Python implementation), so one is not necessarily locked onto the Modular platform. Was this a correct understanding?
Also, will the next version of the FastAI library be written in Mojo?
Mojo can actually create fully standalone binaries, so you don't even need a Mojo install to run them! Also the binaries are really small compared to languages that need a big runtime (e.g. a binary containing the matmul implementation is ~100kb).
I'm not sure how long it will take before there's enough ML/DL functionality to write something like fastai in Mojo. I think there will be at least one more major version of fastai in Python. And even when Mojo can support what fastai needs, I expect to continue to supporting fastai on python as well.
So, should the absence of an answer to the question of a standalone compiler be interpreted as that this will not happen?
Reason for asking: Without a stand-alone, open source compiler chain, Mojo will be out of question for one of the most exciting application areas I can think of: Computational biology.
How does that work given that the binary needs to lug around a CPython binary (unless you want to depend on the OS python)? Also, how does this deal with python libraries?
but won't that include most applications for the foreseeable future? I assume no one is going to be rewriting the entire data processing/web stack from python to mojo in the near future, right?
Separate question: what is the eventual monetization strategy? Of course, feel free to not answer, though if that plan is not a secret and makes sense to people, it might help spread the technology.
Heh I don't even know that myself - I'm just focussed on playing with Mojo. But note that Modular also has an inference engine which looks pretty amazing and seems likely to bring in big $$$ AFAICT.
Hi is there any plan to have high level model training tools (one example is things like Pytorch dataset loaders), or is the focus more on inference/deployment use cases?
Hey, so this is kinda tangential, but I thought only Google can target TPUs, at least without going through an intermediate layer like OpenXLA. How are you handling that?
I'm not sure of the details, but I believe that XLA is starting to use MLIR now, which is what Mojo uses behind the scenes. I'm not sure if Mojo will use MLIR directly or go via XLA.
It looks like the Mojo compiler/runtime hooks into the CPython interpreter.
> We utilize CPython to run all existing Python3 code “out of the box” without modification and use its runtime, unmodified, for full compatibility with the entire ecosystem. Running code this way will get no benefit from Mojo, but the sheer existence and availability of this ecosystem will rapidly accelerate the bring-up of Mojo, and leverage the fact that Python is really great for high level programming already.
Lemme know if you have any questions and I'll answer as best as I can. (I'm an advisor to Modulo.)