Mojo (programming language): Difference between revisions

Content deleted Content added
m grammar
clean up licensing and MLIR discussion
Line 39:
| wikibooks =
}}
'''Mojo''' is a [[programming language]] in the [[Python (programming language)|Python]] family that is currently under development.<ref name="MojoProgrammingManual_(2023)">{{cite web |url=https://docs.modular.com/mojo/programming-manual.html |title=Mojo🔥 programming manual |date=2023 |website=docs.modular.com |publisher=Modular |access-date=2023-09-26 |quote=Mojo is a programming language that is as easy to use as Python but with the performance of C++ and Rust. Furthermore, Mojo provides the ability to leverage the entire Python library ecosystem.}}</ref><ref name="Modular-WhyMojo_(2023)">{{cite web |url=https://docs.modular.com/mojo/why-mojo.html |title=Why Mojo🔥 - A language for next-generation compiler technology |date=2023 |website=docs.modular.com |publisher=Modular |access-date=2023-09-26 |quote=While many other projects now use MLIR, Mojo is the first major language designed expressly for MLIR, which makes Mojo uniquely powerful when writing systems-level code for AI workloads.}}</ref><ref name=InfoWorld>{{cite web |last1=Krill |first1=Paul |title=Mojo language marries Python and MLIR for AI development |url=https://www.infoworld.com/article/3695588/mojo-language-marries-python-and-mlir-for-ai-development.html |website=InfoWorld |language=en |date=4 May 2023}}</ref> It is available both in browsers via [[Project_Jupyter#Jupyter_Notebook|Jupyter notebooks]],<ref name="InfoWorld" /><ref name="IWFirst">{{cite news |last1=Yegulalp |first1=Serdar |title=A first look at the Mojo language |url=https://www.infoworld.com/article/3697739/a-first-look-at-the-mojo-language.html |work=InfoWorld |date=7 June 2023 |language=en}}</ref> and locally on [[Linux]] and [[macOS]].<ref>{{cite news |last=Deutscher |first=Maria |title=Modular makes its AI-optimized Mojo programming language generally available |url=https://siliconangle.com/2023/09/07/modular-makes-ai-optimized-mojo-programming-language-generally-available/ |work=Silicon Angle |date=7 September 2023 |access-date=2023-09-11 |language=en}}</ref><ref name="MACOS_(2023)">{{cite web | url=https://twitter.com/Modular_AI/status/1715024755093287042 |title=Mojo for Mac OS |publisher=Modular |access-date=2023-10-19}}</ref> Mojo aims to combine the usability of [[High-level programming language|higher level programming languages]], specifically [[Python (programming language)|Python]], with the performance of [[Low-level programming language|lower level programming languages like C++, RUST, and Zig]].<ref>{{Cite web |title=Mojo 🔥: Programming language for all of AI |url=https://www.modular.com/max/mojo |access-date=2024-02-28 |website=www.modular.com |language=en}}</ref>. The Mojo compiler is currently closed source with an open source standard library, although Modular has stated their intent to eventually open source the Mojo programming language itself as it matures.<ref>{{Cite web |title=Modular: The Next Big Step in Mojo🔥 Open Source |url=https://www.modular.com/blog/the-next-big-step-in-mojo-open-source |access-date=2024-05-28 |website=www.modular.com |language=en}}</ref>
 
Mojo builds upon the [[MLIR (software)|MLIR]] compiler framework instead of directly on the lower level and fairly older LLVM compiler framework that many languages like like Julia, Swift, clang and Rust usedo.<ref>{{Cite web |last=Krill |first=Paul |date=2023-05-04 |title=Mojo language marries Python and MLIR for AI development |url=https://www.infoworld.com/article/3695588/mojo-language-marries-python-and-mlir-for-ai-development.html |access-date=2024-05-28 |website=InfoWorld |language=en}}</ref><ref>{{Cite web |date=2024-02-20 |title=Should Julia use MLIR in the future? |url=https://discourse.julialang.org/t/should-julia-use-mlir-in-the-future/110459 |access-date=2024-05-28 |website=Julia Programming Language |language=en}}</ref> MLIR is a newer compiler framework that allows Mojo's useto take advantage of MLIRhigher level compiler passes not available in LLVM alone and allows itMojo to compile down and target more than just CPUs, including producing code that can run on GPUS, TPUS, ASICs and ASICS,other andaccelerators. It can also often more effectively use certain types of CPU optimizations directly, like [[Single instruction, multiple data|SIMD]] without explicitdirect intervention by the developer interventionlike in many other languages.<ref>{{Cite web |title=Why Mojo🔥 {{!}} Modular Docs |url=https://docs.modular.com/mojo/why-mojo |access-date=2024-05-28 |website=docs.modular.com |language=en}}</ref><ref>https://llvm.org/devmtg/2023-10/slides/keynote/Mojo.pdf</ref>. According to [[Jeremy Howard (entrepreneur)|Jeremey Howard]] of fast.ai, Mojo can be seen as "syntax sugar for MLIR" and for that reason Mojo is well optimized applications like AI.<ref>{{Cite web |last=Howard |first=Jeremy |date=2023-05-04 |title=fast.ai - Mojo may be the biggest programming language advance in decades |url=https://www.fast.ai/posts/2023-05-03-mojo-launch.html?ref=blef.fr |access-date=2024-05-28 |website=fast.ai |language=en}}</ref>.
 
== Origin and Development History ==