Python “come with downsides,” argues a new article in Communications of the ACM. “Its programs tend to run slowly, and because it is inefficient at running processes in parallel, it is not well suited to some of the latest AI programming.”
“Hoping to overcome those difficulties, computer scientist Chris Lattner set out to create a new language, Mojo, which offers the ease of use of Python, but the performance of more complex languages such as C++ or Rust.” Lattner tells the site “we don’t want to break Python, we want to make Python better,” while software architect Doug Meil says Mojo is essentially “Python for AI… and it’s going to be way faster in scale across multiple hardware platforms.”
Lattner teamed up with Tim Davis, whom he had met when they both worked for Google, to form Modular in January 2022. The company, where Lattner is chief executive officer and Davis chief product officer, provides support for companies working on AI and is developing Mojo.
A modern AI programming stack generally has Python on top, Lattner says, but because that is an inefficient language, it has C++ underneath to handle the implementation. The C++ then must communicate with performance accelerators or GPUs, so developers add a platform such as Compute Unified Device Architecture (CUDA) to make efficient use of those GPUs. “Mojo came from the need to unify these three different parts of the stack so that we could build a unified solution that can scale up and down,” Lattner says. The result is a language with the same syntax as Python, so people used to programming in Python can adopt it with little difficulty, but which, by some measures, can run up to 35,000 times faster. For AI, Mojo is especially fast at performing the matrix multiplications used in many neural networks because it compiles the multiplication code to run directly on the GPU, bypassing CUDA…
“Increasingly, code is not being written by computer programmers. It’s being written by doctors and journalists and chemists and gamers,” says Jeremy Howard, an honorary professor of computer science at the University of Queensland, Australia, and a co-founder of fast.ai, a. “All data scientists write code, but very few data scientists would consider themselves professional computer programmers.” Mojo attempts to fill that need by being a superset of Python. A program written in Python can be copied into Mojo and will immediately run faster, the company says. The speedup comes from a variety of factors. For instance, Mojo, like other modern languages, enables threads, small tasks that can be run simultaneously, rather than in sequence. Instead of using an interpreter to execute code as Python does, Mojo uses a compiler to turn the code into assembly language.
Mojo also gives developers the option of using static typing, which defines data elements and reduces the number of errors… “Static behavior is good because it leads to performance,” Lattner says. “Static behavior is also good because it leads to more correctness and safety guarantees.”
Python creator Guido van Rossum “says he is interested to watch how Mojo develops and whether it can hit the lofty goals Lattner is setting for it…” according to the article, ” but he emphasizes that the language is in its early stages and, as of July 2023, Mojo had not yet been made available for download.”