Mojo: The usability of Python with the performance of C
stackoverflow.blog
stackoverflow.blog
Modular put 1+2 together and came with a proposal. Whether the rest will be history depends not so much on their technical ability to deliver but how they position this versus the vast potential user community. So far they follow a carefully choreographed VC driven marketing playbook that is kinda distasteful. Its not clear if this is a case of the end goal justifying the means.
People crying loudly for "open source" are on the one hand an indication of the governance and incentives challenges lying ahead. On the other hand they don't seem to be volunteering the massive salary spend that is required to move this mountain.
Minimally, this project helps outline what "good looks like" in this domain. If they fail to change the world there is always other talented people to try to retrace the path without taking the wrong turns.
I am curious about how much work the compiler does to automatically identify available hardware and distribute the load on its own vs how much you need to specify as a developer.
Unfortunately marketing like this tends to trigger an equal and opposite reaction in me.
Anyone with AI programming experience can comment on whether they have made any specific believable claims about performance?
And that company… whatsitsname… X?
In C’s defense it was made before search engines.
As of today, I’d bet it is niche like Julia, R, etc.
Yes, but that's also the issue they address. That you cant just write plain Python for something not covered by libraries and have it be fast. You need to then mess with extending with C, Cython, and so on.
To make a conforming C compiler, someone has to buy the ISO C standard (208 CHF), which other folks will then spend development resources in creating C compilers that obey said standard.
The biggest open source compilers, clang and GCC, only keep being up to date with ISO C, because of the money from IBM, Red-Hat, Apple, ARM, Intel, Green-Hills,... place in assigning company resources to work on them.
Questions about the standard/specification are a different matter:
1. Whether the language has one? (Many languages, both open source and proprietary don't! I believe mojo doesn't have one?)
2. Whether it's available for free (gratis)?
3. Whether it's under a free (libre) license that allows redistribution with modifications?
In any case, it's my understanding that the C standards have largely been community driven efforts that formalized things already being done by major compilers like Gnu rather than driven by the technical needs of industry the way C++ has.
I thought having read it somewhere on one of those embedded forums like embedded.com.
Upon further investigation they are still using their own stuff.
I would debate that.
1. The C language spec isn't code, open source is only concerned with the code.
2. Philosophically, I would say that if you can write and compile standards conforming c code on an open source compiler, and the standard is freely available then to all intents and purposes C is open. It isn't as if GCC doesn't know what the standard is, it isn't as if they can't describe GCC as a c compiler.
It's like saying a bsd or Linux isn't unix, just because they haven't paid some fee.
(eg in practice C is more like a language family, with an attempt to standardize a common core feature set and syntax as an afterthought and call that a "standard" - it's good that it exists, but it's hardly relevant or even useful for real world projects)
It sure looks like they only turned it into a new language because they wanted to add static typing and immutable references, which maybe you care about and maybe you don't.
In that light it's hard for me to appreciate the development direction they've gone in.
It feels like it’s a nice language and, building on LLVM makes it stand on a solid foundation, but, still, it feels like a series of PEPs, some of which I can easily get behind.
If they make mojo modules callable from Python code, it all becomes a whole lot more palatable.
I love the LLVM ecosystem, will touch Mojo only when they evolve it and build more bridges with the regular Python ecosystem.
I’d love to see it being used to write modules usable from Python code. This could provide a smooth migration path to apps that benefit less from Python’s dynamic nature and more from C-like speeds.
But I don't get the play here - a company CEO/cofounder bragging about the performance of a proprietary language which nobody can use right now? Who wants this?
Make the language and make it public and open; get large companies on board with development, start some useful real-world projects, involve the open-source community, show that it's actually good for something instead of giving investor presentations.
It’s Open Source code, but closed to contributions.
That would solve a lot of their problems because it allows them to show it’s open source, but not take contributions until they feel like it’s ready to get contributions from 3rd parties.
> Why not develop Mojo in the open from the beginning?
> Mojo is a big project and has several architectural differences from previous languages. We believe a tight-knit group of engineers with a common vision can move faster than a community effort. This development approach is also well-established from other projects that are now open source (such as LLVM, Clang, Swift, MLIR, etc.).
Given Chris Latners previous achievements I think we can trust this call a bit more than we may with some companies.
I wouldn't use it myself until open sourced.
Looking at the Mojo examples it seems like some kind of a superset of Python with lower language features. So you get C like performances if you’re willing to manipulate C like concepts. Truly revolutionary.
While Modular/Mojo aims to be this in the future I strongly feel their blog posting about a proprietary system runs contrary to their audience!
Eg will Django/Flask/FastAPI run significantly fast on Mojo than Python as-is?
(Somehow packaging Python scripts is a nightmare that gets worse with each passing year.)
For two, Python was originally designed as a teaching language to replace BASIC for entry-level programming courses, so it would be surprising if it wasn't popular.
It has lost track of the original vision in a big way, and I would bet that a decade from now something else will replace it as BASIC 3.0.
t. programming in Python since it was version 1.3.
Also reasoning about the borrow checker while doing hard math is a non starter for most people in the field.
in "your world", which aint the same for other ppl.
For web apps perhaps. They're not in that domain. In other domains IO is not the problem, CPU is.
>Also rust shared libraries are already there for pretty much every language that you actually need speed
Given that the whole selling point of this is to not have to use two languages, that's kind of irrelevant to this.
Not even for web apps. You should see how much CPU time a python web app spends doing simple things like filling an html template.