Unifying the high level world and the low level world into a single language provides many great things:
- choose how time is used on any part of the app by switching from high level to low level (usefull when prototyping or exploring ideas).
- explore new lands/platforms that were not steppable before (freedom, versatiliy and opportunities)
- a progressive path to learn and grow (by choosing the current level of abstraction).
There are three worlds at disposal:
- statically typed (Int64..) (builtin and custom structs)
- mojo's object (Builtin.object,used in the example:Matrix multiplication)
- python object (require: from Python import PythonObject)
Another is on it's way: Roadmap: C/C++ Interop
- would increase productivity by an significant factor (spending less time writing bindings)
Why learn it now?
- the language is still small so it is easy to learn as it grows
- by the time it is considered mature, being ready for action and already an experienced mojician.
Note: Python have many packages and an active community of general purpose programmers and experts.
It is easy to imagine that one person knowing mojo could one day be able to do:
- 🌐 Web applications:
- front end
- potential for wasm: mojo apps have a small footprint
- back end
- part of it being an ai running on a graphic card?
- filtering audio signals as a web service?
- provide to the front-end chart images?
- front end
- 💻 Desktop softwares
- 📱 Mobile apps
- ⏧ Robotics and IOT using micro-controllers
- 🤖 Performant A.I
- 🎮 video games
🗣 Modular official discord chat channel Join it, really!
- have 21.8K members (as of the 29th of september 2023)
- The mojo/modular staff is active.
Getting started: