I just got a surprise email this morning. I have been selected to try out the Mojo Playground and use the new programming language for AI development: Mojo.
I admit it freely. I love new tech, but I don’t jump all of the hype trains. AI has swept me along and Mojo definitely struck me as something to pay attention to. I am in constant awe caused by the rapid advancements in this field. It seems like every time I blink, a new breakthrough is making waves. Today, it’s a new programming language called Mojo, developed by Modular.
Mojo is an intriguing blend of Python’s syntax and ecosystem, coupled with the robust features of systems programming and metaprogramming. The language is in its infancy and is evolving rapidly. It is designed to be a superset of Python over time. This means developers like me can customize and squeeze the most out of our hardware.
What’s particularly cool about Mojo is how it combines the accessibility of Python with the power of systems programming. It uses MLIR to scale to new and exotic hardware types and domains, a feat that other languages haven’t yet accomplished. Autotuning, caching, and distributed compilation are all built right into its core. Mojo is also shaking things up with its unique approach to memory ownership and management, and its ability to scale down to smaller envelopes. It’s Python-first, which means I don’t have to learn an entirely new syntax.
As a general-purpose programming language, Mojo isn’t just for AI. It can be used for a multitude of tasks, including high-performance computing (HPC), data transformations, and writing pre/post-processing operations. It’s set to support more architectures over time, and it even includes a debugger and a full tool suite. As a superset of Python, Mojo is designed to let developers write portable code that’s faster than C, and it allows for seamless interoperability with the Python ecosystem.
Mojo is still in the early stages of development, so only simple programs can be transitioned over as-is without any code changes. But as the language matures, migration tools will be developed. The developers of Mojo are keen on enabling developers to port code from languages other than Python to Mojo, and they’re even eyeing migration from C/C++ due to Mojo’s similarity to the C/C++ type systems.
The developers plan to progressively open-source Mojo over time, but for now, it’s changing rapidly and being incubated within Modular. As a new language, there aren’t any widely known AI-related performance benchmarks for Mojo yet, but Modular’s in-house kernel for the Modular Inference Engine is written entirely in Mojo.
Mandelbrot in Mojo
Mojo is not just exceptional for crafting high-performance code, but it also offers the ability to tap into the vast ecosystem of Python’s libraries and tools. Thanks to seamless Python interoperability, Mojo can utilize Python’s strengths, particularly in GUIs, without compromising performance in crucial code segments.
Let’s see how this might work working with the Mandelbrot Set in Mojo.
You can first take the complex code to generate the Mandelbrot set in Mojo and vectorize it using the Functional library. Once the code is optimized, you can take the code and parallelize it using the Functional library. This will increase the performance by parallelizing on the rows.
You sign up to try the Mojo Playground on the Modular website.