Mojo (programming language): Difference between revisions

Content deleted Content added
J.Ammon (talk | contribs)
explaining "Modular"
Osalbahr (talk | contribs)
m Remove “S” capitalization in plural form of acronyms
Tags: Visual edit Mobile edit Mobile web edit
Line 41:
'''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 (programming language)|Rust]], and [[Zig (programming language)|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, the company behind Mojo, 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 LLVM compiler framework that many languages like Julia, Swift, clang and Rust do.<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 to take advantage of higher level compiler passes not available in LLVM alone and allows Mojo to compile down and target more than just CPUs, including producing code that can run on GPUSGPUs, TPUSTPUs, ASICs and other accelerators. It can also often more effectively use certain types of CPU optimizations directly, like [[Single instruction, multiple data|SIMD]] without direct intervention by the developer like 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 for 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 ==