I'd like to know how fast numpy is here, but they didn't compare... which is weird because that's what almost everyone would use.
If you ask your average Python programmer what “pure Python” means they’d think numpy is included.
Their Mojo code just does the same optimizations numpy certainly has.
There's also the issue of doing complicated work with NumPy and you start looping and revert back to slow (pure) Python because you are crossing the NumPy/ Python interface. Tools like Cython, Numba, and probably Mojo help to solve this.
But nobody doing any significant numeric work would ever consider a "pure" python matrix multiply meaningful. It's disingenuous to present that as your comparison, at least without also including the way it's actually done in practice.
Honestly, it undermines their presentation with anyone involved in the area.
It's like claiming that your code is faster than MATLAB's for loops. Why write gemm yourself?
Even if this language is a good idea, I worry that they don't seem to understand the audience.
Not too dissimilar to Swift, which was launched as being faster than C/C++.
I don't know about mojo, but they seem to import python module for this benchmark. https://github.com/modularml/mojo/blob/5ce18c47a27c0c4123de1...
And for some reason they don't compare against NumPy https://github.com/modularml/mojo/blob/5ce18c47a27c0c4123de1...
What would be more interesting is to use NumPy and do the vectorized opreations.
I think that mojo in it's current form is not on par with numpy performance (if it was they would be saying that). Even if the performance is same I would still give it a try. Their whole marketing though is making me reconsider
Mojo is python syntax first where they want to be proper superset, which gives them access to wide python ecosystem and community. If executed well, this alone can absorb community similarly to how ie. typescript absorbed javascript community. Also similar thing happened with objective-c -> swift - also led by Chris, which gives a lot of credibility to the whole initiative.
Julia is proper new language you need to learn, use new tooling around it, ecosystem is quite academia skewed, ie. writing web services is probably not the best idea etc.
Additionally Julia suffers from "time to first plot" problem, which alienates a lot of newcomers who are not familiar or simply don't want to switch to programming mode where it becomes less of a problem (repl/notebook style where runtime is always active).
Both are very interesting languages, but mojo's starting point and trajectory seem to be at different level, ie. adoption may be very sharp.
[1] https://github.com/modularml/mojo/blob/5ce18c47a27c0c4123de1...
Python 4.216 GFLOPS
Naive: 6.400 GFLOPS 1.52x faster than Python
Vectorized: 22.232 GFLOPS 5.27x faster than Python
Parallelized: 52.591 GFLOPS 12.47x faster than Python
Tiled: 60.888 GFLOPS 14.44x faster than Python
Unrolled: 62.514 GFLOPS 14.83x faster than Python
Accumulated: 506.209 GFLOPS 120.07x faster than Python