A recent programming language for AI developers was just released: Mojo.
I do know what you is perhaps considering — a recent programming language to learn from scratch … Well, I actually have excellent news, Mojo is designed as a superset of Python, so if you happen to already know Python learning Mojo shouldn’t be hard.
But that’s not all. Mojo combines the usability of Python with the performance of C obtaining a speed that’s as much as 35000x faster than Python.
In case you’re into AI and already know Python, Mojo is unquestionably value a try. Here’s every part you want to find out about Mojo.
Why do we want Mojo if we have already got Python?
Python’s simplicity and flexibility made it the language of selection in fields equivalent to data science, machine learning, and AI. It has tons of packages which might be very useful for anyone working with data, but for libraries that require great performance, Python only acts as a glue layer and low-level bindings to C, C++, and other languages with higher performance.
This enabled the event of libraries equivalent to numpy and TensorFlow. Nevertheless, this comes with a drawback: constructing these libraries may be very complicated, it requires a low-level understanding of the internals of CPython, requires knowledge of C/C++, etc.
In keeping with the Mojo doc, the problems brought by Python go deeper and particularly impact the AI field.
Python alone isn’t capable of address all the problems that applied AI systems need and that’s how Mojo was born. Mojo is a programming language that mixes the usability of Python with the performance of C.
The perfect of each worlds!
But Mojo isn’t a random project that emerged out of nowhere. Actually, Mojo comes from an organization named Modular, co-founded by Chris Lattner, the identical guy who created the Swift programming language and LLVM.
That’s why I feel this project is value being attentive to. Now let’s see a few of Mojo’s best features.
Features of Mojo
Mojo comes with many interesting features out of the box. Listed here are a few of them.
1. Mojo is designed as a superset of Python
Mojo goals to be fully compatible with the Python ecosystem.
Which means that you would easily work with Mojo if you happen to’re a Python programmer because each programming languages have many functions, features, and libraries in common.
Libraries equivalent to numpy, pandas, and matplotlib are also available in Mojo. Here’s the way you’d make a plot with matplotlib using Mojo.
That said, Mojo continues to be in a really early stage, so it still misses many features of Python (for instance it doesn’t support classes yet).
Hopefully, in future updates Mojo shall be fully compatible with Python.
2. Strong type checking
Mojo leverage types for higher performance and error checking.
Although you may still use flexible types like with Python, Mojo enables you to use strict type-checking. This may make your code more predictable, manageable, and secure.
3. Memory ownership and borrowing checker
Mojo supports a owned
argument convention that’s used for functions that need to take exclusive ownership over a worth.
This can make it easier to make the most of memory safety without the rough edges.
4. Auto-tuning
Mojo has built-in autotuning that helps mechanically find the perfect values to your parameters to make the most of goal hardware.
5. Mojo leverages MLIR
By utilizing the complete power of Multi-Level Intermediate Representation (MLIR), Mojo developers can make the most of vectors, threads, and AI hardware units.
This helps Mojo achieve great performance because, unlike Python which works with single-threaded execution, Mojo can work with parallel processing across multiple cores.
That’s one in every of the explanation why Mojo it’s 35000x faster than Python.
Learn how to start using Mojo
Mojo continues to be a piece in progress, but you may try it today on the JupyterHub-based Playground. To try Mojo go to this website to register and don’t forget to examine the Mojo box within the “Modular Product Interest” section.
Glad coding!
relax music
autumn jazz music