“Mojo may be the most advanced programming language in decades.”

AI Basics


Mojo is a new programming language developed by Modular1 that aims to address Python’s performance and deployment limitations in areas such as AI model development. Jeremy Howard of the nonprofit research group fast.ai said after demoing Mojo before its launch, it feels like coding will never be the same again. Below is an excerpt from Howard’s article. Modular is a fairly small startup, about a year old, and only part of the company is working on the Mojo language. Mojo development has only recently begun. How did you manage to get so much done with such a small team and so short a time? The bottom line is that Mojo is built on a very strong foundation. The software projects I’ve seen tend to spend a good amount of time building the right foundation, and as a result end up with a lot of technical debt. As time goes on, it becomes harder and harder to add features and fix bugs. But in a well-designed system, every feature is easier to add, faster, and less buggy than the last, because the foundation each feature builds on is getting better and better. Mojo is a well designed system.

At its core is MLIR (Multi-Level Intermediate Representation), which has been in development for many years and was first developed by Chris Lattner at Google. He recognized what was needed for the core foundation of a “programming language for the AI ​​age” and focused on building it. MLIR was a key factor. MLIR builds on LLVM, just as over the past decade he has made it dramatically easier to develop powerful new programming languages ​​(Rust, Julia, Swift, etc., all based on his LLVM). It provides an even stronger core to the developed language. that. Another key factor that allowed Mojo’s rapid development was the decision to use Python as its syntax. Syntax development and iteration is one of the most error-prone, complex, and controversial parts of language development. Just outsource it to an existing language (which also happens to be the most widely used language today) and that whole piece disappears. The relatively few new syntax bits required on top of Python are mostly a very natural fit since the base is already in place.

The next step was to create a minimal Pythonic way to call MLIR directly. It wasn’t much work at all, but it was all I needed to build Mojo all on top of it and work directly in Mojo for everything else. This meant that the Mojo developers were able to “dogfood” Mojo almost from the beginning when creating Mojo. Whenever you find that something isn’t working as you develop Mojo, you can add the functionality you need into Mojo itself to make your next Mojo development easier. You can try Mojo here.



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *