Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This isn’t Python though, right? It’s just a Python-like syntax for a much lower level programming language (sort of like Cython) from my cursory glance? It seems a lot like Rust with a Pythonic veneer, so I would expect it will run into many of the same problems that Rust has (lots of difficulty pacifying the borrow checker)?


The source code is Python (well, a superset of Python), but it's not interpreted and run by the official Python interpreter. Judging by what I've seen so far, it seems Modular has been able to "Rustify+Tritonify" Python code in a way that to me feels... very Pythonic.


Maybe someone can correct me, but I don't think it's a superset of Python--I don't think it will accept existing Python programs and I'm pretty sure you can't do all of the dynamic Python stuff (otherwise you would have to essentially compile/link an interpreter into your binaries giving you these super slow paths that aren't necessarily obvious when reading source code).

> Judging by what I've seen so far, it seems Modular has been able to "Rustify+Tritonify" Python code in a way that to me feels... very Pythonic.

I think it "feels Pythonic" because you're looking at Pythonic syntax. I suspect when you're banging your head against a borrow checker it will feel more like writing Rust. Like I'm pretty sure anything with a borrow checker will have to deal with lifetimes, mutable-vs-immutable references, shared mutability (cell/refcell in rust), etc; I don't know how you "Pythonify" that in any meaningful way?


>We utilize CPython to run all existing Python3 code “out of the box” without modification

>Further, we decided that the right long-term goal for Mojo is to provide a superset of Python


The FAQ states that “Mojo is still early and not yet a Python superset, so only simple programs can be brought over as-is with no code changes.”

I have no idea how to reconcile that with the quotes you provided.

[edit] Ah, it seems you can control things running in a bundled CPython:

    plt = Python.import_module("matplotlib.pyplot")
    fig = plt.figure(1, [width, height], dpi)
    ax = fig.add_axes([0.0, 0.0, 1.0, 1.0], False, 1), "hsv", 0, 0, 1.5)
    ...
    plt.imshow(image)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: