# Did Modular just reinvent Julia?

**URL:** <https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214>\
**Category:** Offtopic\
**Tags:** mojo\
**Created:** [May 2, 2023, 5:22pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214 "2023-05-02T17:22:20Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Phil\_Tomson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/phil_tomson/32/3575_2.png) [@Phil\_Tomson](https://discourse.julialang.org/u/Phil_Tomson)\
**Post date:** [May 2, 2023, 5:22pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/1 "2023-05-02T17:22:21Z")

</div>

…but with a more pythonic syntax: [Mojo 🔥: Programming language for all of AI](https://www.modular.com/mojo)

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [May 2, 2023, 5:32pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/2 "2023-05-02T17:32:43Z")

</div>

Looks like it’s not open source?

Edit: not yet ([Modular Docs - Mojo🔥 FAQ](https://docs.modular.com/mojo/faq.html))

> Will Mojo be open-sourced?
> 
> Yes, we expect that Mojo will be open-sourced. However, Mojo is still young, so we will continue to incubate it within Modular until more of its internal architecture is fleshed out. We don’t have an established plan yet.

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [May 2, 2023, 5:32pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/3 "2023-05-02T17:32:44Z")

</div>

Still seems [in the very early stages](https://docs.modular.com/mojo/roadmap.html). e.g. “Mojo’s standard library has not yet grown a standard list or dictionary type”, no anonymous functions, “no polymorphism” (!) …

---

<div class="post-metadata">

**Author:** ![mbaz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbaz/32/17295_2.png) [@mbaz](https://discourse.julialang.org/u/mbaz)\
**Post date:** [May 2, 2023, 5:33pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/4 "2023-05-02T17:33:35Z")

</div>

Seems to be OOP, which in my opinion in the wrong approach for scientific programming.

---

<div class="post-metadata">

**Author:** ![jlapeyre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jlapeyre/32/4514_2.png) [@jlapeyre](https://discourse.julialang.org/u/jlapeyre)\
**Post date:** [May 2, 2023, 5:51pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/5 "2023-05-02T17:51:39Z")

</div>

> Did Modular just reinvent Julia?

> **[Betteridge's law of headlines](https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines)**
>
> Betteridge's law of headlines is an adage that states: "Any headline that ends in a question mark can be answered by the word no." It is named after Ian Betteridge, a British technology journalist who wrote about it in 2009, although the principle is much older. It is based on the assumption that if the publishers were confident that the answer was yes, they would have presented it as an assertion; by presenting it as a question, they are not accountable for whether it is correct or not. T The m...

They want it be be a faster Python, a superset of Python that is fully compatible with all of the Python ecosystem. They repeated that several times. It will be different from all the other approaches to fast Python. This time they’ll get it right. But I couldn’t understand how it’s supposed to achieve its goals (or exactly what they are). Except that they will follow the model of integrating Swift and Objective-C, two statically compiled languages that are highly compatible with C. It doesn’t seem to make sense, there must be something I’m missing.

Also, what does this mean?

> Mojo still doesn’t support classes, the primary thing Python programmers use pervasively! This isn’t because we hate dynamism

---

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [May 2, 2023, 6:12pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/6 "2023-05-02T18:12:46Z")

</div>

From what I can see this is an extension to python and not really a programming language in it’s own right. More comparable to PyPy perhaps? Either way looks cool but I think I’ll stick with Julia for now. Too many new languages popping up all the time. 😂 Rust, Zig, Nim, Carbon etc. I’m super behind.

---

<div class="post-metadata">

**Author:** ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)\
**Post date:** [May 3, 2023, 2:40pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/7 "2023-05-03T14:40:27Z")

</div>

Chris Lattner did compare to Julia on [HN](https://news.ycombinator.com/item?id=35791125).

---

<div class="post-metadata">

**Author:** ![jacobusmmsmit](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jacobusmmsmit/32/217669_2.png) [@jacobusmmsmit](https://discourse.julialang.org/u/jacobusmmsmit)\
**Post date:** [May 3, 2023, 3:14pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/8 "2023-05-03T15:14:39Z")

</div>

Naming “ownership and no GC” as “technical advancements” is a little odd to me.

Edit: that said, I’m very happy to see an encouraging reply written by Keno!

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [May 3, 2023, 3:14pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/9 "2023-05-03T15:14:55Z")

</div>

This is impressive: [Modular Docs - Matrix multiplication in Mojo](https://docs.modular.com/mojo/notebooks/Matmul.html)  
I still wouldn’t want to program in Python, though.

---

<div class="post-metadata">

**Author:** ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)\
**Post date:** [May 3, 2023, 3:20pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/10 "2023-05-03T15:20:07Z")

</div>

@PetrKryslUCSD I think there was a post somewhere (twitter or HN?) about a simple LoopVectorization Julia matmul implementation that was way faster than that. Can’t find it now, maybe someone has the link?

---

<div class="post-metadata">

**Author:** ![sijo](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@sijo](https://discourse.julialang.org/u/sijo)\
**Post date:** [May 3, 2023, 3:44pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/11 "2023-05-03T15:44:34Z")

</div>

Probably [this HN comment](https://news.ycombinator.com/item?id=35790975) by @staticfloat.

From what I understand the metaprogramming features in Mojo are more limited than in Julia. I wonder if something like LoopVectorization.jl would be possible in Mojo: a third party package that takes “naive” code and optimizes it with SIMD et al.

---

<div class="post-metadata">

**Author:** ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)\
**Post date:** [May 3, 2023, 8:50pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/12 "2023-05-03T20:50:43Z")

</div>

> [@sijo](#):
>
> Probably [this HN comment](https://news.ycombinator.com/item?id=35790975) by @staticfloat.

That’s it, thanks.

---

<div class="post-metadata">

**Author:** ![Akatz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/akatz/32/15164_2.png) [@Akatz](https://discourse.julialang.org/u/Akatz)\
**Post date:** [May 3, 2023, 9:37pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/13 "2023-05-03T21:37:10Z")

</div>

Actually, something better than LoopVectorization. I discussed this very thing with Chris on the discord. LV was re-written in Cpp, no need to do that given Mojo’s extensive parametric zig like comptime system.

---

<div class="post-metadata">

**Author:** ![jlapeyre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jlapeyre/32/4514_2.png) [@jlapeyre](https://discourse.julialang.org/u/jlapeyre)\
**Post date:** [May 3, 2023, 11:13pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/14 "2023-05-03T23:13:45Z")

</div>

> [@Akatz](#):
>
> LV was re-written in Cpp

Are you saying LoopVectorization.jl was rewritten in C++?

“On the discord” means a private conversation with Chris, not a public channel there, right?

---

<div class="post-metadata">

**Author:** ![Krastanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/krastanov/32/6817_2.png) [@Krastanov](https://discourse.julialang.org/u/Krastanov)\
**Post date:** [May 3, 2023, 11:59pm UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/15 "2023-05-03T23:59:34Z")

</div>

They are probably referring to this ongoing project [GitHub - JuliaSIMD/LoopModels](https://github.com/JuliaSIMD/LoopModels) (it even has a blog with interesting dev updates)

LV is still alive and great. LM might be an even better future version of it, but it is still under development.

---

<div class="post-metadata">

**Author:** ![Akatz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/akatz/32/15164_2.png) [@Akatz](https://discourse.julialang.org/u/Akatz)\
**Post date:** [May 4, 2023, 2:19am UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/18 "2023-05-04T02:19:42Z")

</div>

It’s public, in a side thread in the modular discord. Basically it seems that Mojo’s metaprogramming solves a lot of problems people have been clamoring about regarding generated functions and such.

---

<div class="post-metadata">

**Author:** ![Phil\_Tomson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/phil_tomson/32/3575_2.png) [@Phil\_Tomson](https://discourse.julialang.org/u/Phil_Tomson)\
**Post date:** [May 4, 2023, 3:37am UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/19 "2023-05-04T03:37:48Z")

</div>

Except for maybe the tiling, couldn’t most of the speedups demonstrated in that Mojo matrix multiplication demo be done in Julia as well?

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [May 4, 2023, 4:12am UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/20 "2023-05-04T04:12:45Z")

</div>

matrix tiling can be done in Julia also.

---

<div class="post-metadata">

**Author:** ![jar1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jar1](https://discourse.julialang.org/u/jar1)\
**Post date:** [May 4, 2023, 4:28am UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/21 "2023-05-04T04:28:11Z")

</div>

Is there a package for [autotuning tiling](https://docs.modular.com/mojo/notebooks/Matmul.html#searching-for-the-tile_factor)?

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [May 4, 2023, 7:16am UTC](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214/22 "2023-05-04T07:16:32Z")

</div>

> [@Akatz](#):
>
> LV was re-written in Cpp

So LoopModels is written in C++, while LoopVectorization was in Julia? What happened? That seems opposite to the general trend of moving things _into_ Julia. Does this have to do with fundamental weaknesses in Julia? I’m quite surprised.

Edit: I guess actually reading the readme.md is instructive, apparently it’s working on the llvm level. Can other languages also benefit from LoopModels then?

[Next page](https://discourse.julialang.org/t/did-modular-just-reinvent-julia/98214.md?page=2)
