{"id":171282,"date":"2023-06-20T09:00:53","date_gmt":"2023-06-20T13:00:53","guid":{"rendered":"https:\/\/blog.logrocket.com\/?p=171282"},"modified":"2024-06-04T16:57:33","modified_gmt":"2024-06-04T20:57:33","slug":"getting-started-mojo","status":"publish","type":"post","link":"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/","title":{"rendered":"Getting started with the Mojo programming language for AI"},"content":{"rendered":"<!DOCTYPE html>\n<html><p>AI has undeniably transformed the technological landscape in recent years&nbsp; \u2014 even more so in recent months. But its fragmented nature, complexity, and high cost have often acted as roadblocks for AI developers.<\/p><img loading=\"lazy\" decoding=\"async\" width=\"730\" height=\"521\" src=\"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Getting started with Mojo\" srcset=\"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo.png 730w, https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo-300x214.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\">\n<p>Enter Mojo, a revolutionary programming language introduced by Modular that aims to democratize AI access by combining the usability of Python and the performance of C.<\/p>\n<p>In this article, we\u2019ll introduce you to the future of AI programming with Mojo and guide you in writing your first Mojo code using the Mojo playground.<\/p>\n<p><em>Jump ahead:<\/em><\/p>\n<ul>\n<li><a href=\"#brief-introduction-mojo-modular\">A brief introduction to Mojo and Modular<\/a><\/li>\n<li><a href=\"#mojo-lang-designed-future-ai\">Mojo lang: Designed for the future of AI<\/a><\/li>\n<li><a href=\"#features-set-mojo-apart\">Features that set Mojo apart<\/a><\/li>\n<li><a href=\"#writing-first-mojo-code\">Writing your first Mojo code<\/a>\n<ul style=\"margin-bottom: 0px; padding-bottom: 0px;\">\n<li><a href=\"#variables-mojo\">Variables in Mojo<\/a><\/li>\n<li><a href=\"#using-struct-types\">Using <code>struct<\/code> types<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#integrating-python-mojo\">Integrating Python with Mojo<\/a><\/li>\n<li><a href=\"#what-watch-out\">What to watch out for<\/a><\/li>\n<\/ul>\n<h2 id=\"brief-introduction-mojo-modular\">A brief introduction to Mojo and Modular<\/h2>\n<p>Designed by Chris Lattner, the creator of the Swift programming language and LLVM Compiler Infrastructure, <a href=\"https:\/\/www.modular.com\/mojo\">Mojo<\/a> presents a novel solution for Python\u2019s speed constraints. Despite its popularity, Python often lags in performance, making languages like C and C++ preferable for high-speed, high-performance tasks. In response, Mojo was born to integrate Python\u2019s usability with C\u2019s performance.<\/p>\n<p>But what does this mean for the average web developer? Mojo has an astonishing 35,000x speed advantage over Python, substantially outpacing competitors like PyPy, Scala, and C++.<\/p>\n<p>Here\u2019s a benchmark test result of Mojo versus other languages, running the <code>Mandelbrot<\/code> algorithm on an AWS <code>r7iz.metal-16xl<\/code> instance:<\/p>\n<figure id=\"attachment_171283\" aria-describedby=\"caption-attachment-171283\" style=\"width: 730px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-171283\" src=\"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/benchmark-mojo-vs-other-languages.png\" alt=\"A benchmark screenshot of Mojo vs. other languages from the Modular website\" width=\"730\" height=\"426\" srcset=\"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/benchmark-mojo-vs-other-languages.png 730w, https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/benchmark-mojo-vs-other-languages-300x175.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><figcaption id=\"caption-attachment-171283\" class=\"wp-caption-text\">A benchmark screenshot of Mojo vs. other languages from <a href=\"https:\/\/docs.modular.com\/mojo\/\">the Modular website<\/a><\/figcaption><\/figure>\n<p>This leap in AI programming opens up new possibilities for developing high-performance, AI-powered web applications without sacrificing the familiarity of Python\u2019s syntax and extensive libraries.<\/p>\n<h2 id=\"mojo-lang-designed-future-ai\">Mojo lang: Designed for the future of AI<\/h2>\n<p>A significant selling point for Mojo is its compatibility with AI hardware. It leverages multilevel intermediate representation (MLIR) to scale various hardware types, including GPUs running CUDA and similar hardware, without adding complexity.<\/p>\n<p>Mojo\u2019s design also ensures portability across several hardware platforms and specialized accelerators. This makes it a great choice for developing applications that need to run on a variety of devices.<\/p>\n<p>One of the reasons Python is so beloved in the development community is its robust ecosystem, and Mojo takes this legacy forward. As a Python superset, it offers smooth access to Python libraries like <a href=\"https:\/\/blog.logrocket.com\/introduction-data-science-numpy\/\">NumPy<\/a>. This means you can jump into AI development using tools you\u2019re already familiar with.<\/p>\n<p>To start your journey with Mojo, head over to the <a href=\"https:\/\/playground.modular.com\">Mojo playground<\/a>, an interactive platform provided by Modular that allows developers to run Mojo code. As of May 2023, Mojo is still under development, but you can experience its functionalities in this playground.<\/p>\n<h2 id=\"features-set-mojo-apart\">Features that set Mojo apart<\/h2>\n<p>Here are some of the features that make Mojo stand out:<\/p>\n<ul>\n<li style=\"margin-bottom: 7px; padding-bottom: 7px;\"><strong>Enhanced speed<\/strong>: While Python\u2019s biggest hurdle has been its performance speed, Mojo has been designed to circumvent this challenge. In comparison to Python, Scala, and C++, Mojo is exponentially faster, with the numbers suggesting it is <a href=\"https:\/\/www.modular.com\/mojo\">35,000x faster than Python<\/a><\/li>\n<li style=\"margin-bottom: 7px; padding-bottom: 7px;\"><strong>Compatibility with AI hardware<\/strong>: Mojo has been thoughtfully designed for programming on AI hardware, like <a href=\"https:\/\/developer.nvidia.com\/how-to-cuda-c-cpp\">GPUs running CUDA<\/a>. As mentioned above, the language uses MLIR to manage diverse hardware types without increasing complexity<\/li>\n<li style=\"margin-bottom: 7px; padding-bottom: 7px;\"><strong>Python superset<\/strong>: As a superset of Python, Mojo does not necessitate learning an entirely new programming language because it is fully compatible with Python<\/li>\n<li style=\"margin-bottom: 7px; padding-bottom: 7px;\"><strong>Error checking and performance enhancements<\/strong>: Mojo uses types to improve performance and carry out error checking. It also offers control over storage by inline-allocating values into structures, providing zero-cost abstractions.<\/li>\n<li style=\"margin-bottom: 7px; padding-bottom: 7px;\"><strong>Memory safety<\/strong>: Mojo features an ownership and borrower checker, which ensures memory safety without introducing complications<\/li>\n<li style=\"margin-bottom: 7px; padding-bottom: 7px;\"><strong>Autotuning<\/strong>: With autotuning, Mojo can automatically find the best values for your parameters, which can drastically streamline the programming process<\/li>\n<li style=\"margin-bottom: 7px; padding-bottom: 7px;\"><strong>Tiling optimization<\/strong>: Mojo includes a built-in tiling optimization tool that effectively caches and reuses data, which helps optimize performance by using memory located near each other at a given time and reusing it<\/li>\n<li><strong>Parallel computing<\/strong>: Mojo introduces inbuilt parallelization, enabling multithreaded code execution, which can increase execution speed by 2,000x<\/li>\n<\/ul>\n<h2 id=\"writing-first-mojo-code\">Writing your first Mojo code<\/h2>\n<p>Mojo\u2019s syntax is heavily influenced by Python. For instance, a \u201cHello, World!\u201d program in Mojo looks exactly like one in Python:<\/p>\n<pre class=\"language-python hljs\">print(\"Hello Mojo!\")\n<\/pre>\n<h3 id=\"variables-mojo\">Variables in Mojo<\/h3>\n<p>Mojo supports <code>let<\/code> and <code>var<\/code> declarations, which introduce a new scoped runtime value. <code>let<\/code> is used to declare immutable variables, while <code>var<\/code> is for mutable ones. Here is a basic example of how you can use these declarations:<\/p>\n<pre class=\"language-python hljs\">def addNumbers(num1, num2):\n    let sum = num1\n    if sum != num2:\n        let newNum = num2\n        print(newNum)\naddNumbers(2, 3)\n<\/pre>\n<p>With <code>let<\/code> and <code>var<\/code> declarations, you can also specify the variable type. Here\u2019s an example with several data types:<\/p>\n<pre class=\"language-python hljs\">def guessLuckyNumber(guess) -&gt; Bool:\n    let luckyNumber: Int = 37\n    var result: StringLiteral = \"\"\n    if guess == luckyNumber:\n        result = \"You guessed right!\"\n        print(result)\n        return True\n    else:\n        result = \"You guessed wrong!\"\n        print(result)\n        return False\nguessLuckyNumber(37)\n<\/pre>\n<h3 id=\"using-struct-types\">Using <code>struct<\/code> types<\/h3>\n<p>In Mojo, you can build safe high-level abstractions on top of low-level data layout controls with the <code>struct<\/code> type. In programming, a <code>struct<\/code> is a data type that allows for the combination of different kinds of data items, but which can be manipulated as a single unit.<\/p>\n<p>In the Mojo programming language, <code>struct<\/code> types are a bit similar to classes in other object-oriented languages. They can have methods and properties, but unlike classes, structs in Mojo are statically bound at compile time, and they are directly inserted or \u201cinlined\u201d into their container without needing a separate memory reference, or \u201cindirection.\u201d<\/p>\n<p>Here\u2019s a simple definition of a struct:<\/p>\n<pre class=\"language-python hljs\">struct MyPair:\n    var first: Int\n    var second: Int\n    fn __init__(inout self, first: Int, second: Int):\n        self.first = first\n        self.second = second\n<\/pre>\n<h2 id=\"integrating-python-mojo\">Integrating Python with Mojo<\/h2>\n<p>Mojo doesn\u2019t abandon the versatility of Python. You can import any Python module into your Mojo program and create Python types from Mojo types. This makes Mojo a powerful language, combining the performance of C and the vast ecosystem of Python.<\/p>\n<p>Here\u2019s how you can import a Python module in Mojo:<\/p>\n<pre class=\"language-python hljs\">from PythonInterface import Python\nlet np = Python.import_module(\"numpy\")\n<\/pre>\n<p>This example imports <code>Python<\/code> from the <code>PythonInterface<\/code> module and uses it to access the <code>numpy<\/code> module. With this flexibility, it\u2019s easy for Python developers to adopt Mojo, as they can leverage the Python ecosystem and their existing knowledge of Python.<\/p>\n<p>However, since Mojo is focused on performance, it might not support all dynamic features of Python, and not all Python libraries are guaranteed to work seamlessly with Mojo.<\/p>\n<h2 id=\"what-watch-out\">What to watch out for<\/h2>\n<p>Since Mojo is in the early development phase, be prepared for potential instability or missing functionality as the language continues to be refined and expanded. Let\u2019s have a look at some things to watch out for and examine some of the challenges with the current state of Mojo.<\/p>\n<h3>Core language refinement<\/h3>\n<p>It is expected that further improvements will be made to Mojo\u2019s core language as its foundation is established, tweaking it towards stability and a more intuitive user experience. This foundational work should encourage robust software development and provide a comprehensive framework for the language\u2019s subsequent evolution.<\/p>\n<h3>Error handling<\/h3>\n<p>Mojo\u2019s current implementation of exceptions is done through the <code>Error<\/code> type. The language\u2019s error handling is expected to become more nuanced, with improved error messages and more appropriate error types that provide better explicit debugging information.<\/p>\n<h3>Enhanced interoperability<\/h3>\n<p>Interoperability with other languages has consistently been Mojo\u2019s strength. There\u2019s an expectation of continued improvements in this area to make Mojo appealing for projects that require interaction with existing codebases.<\/p>\n<h3>Adoption and potential instability<\/h3>\n<p>Despite its innovative programming paradigm, Mojo is relatively new and in the early stages of adoption. This means persuading the community to embrace and contribute to its ecosystem might be challenging. However, Mojo\u2019s unique features and ease of migration with Python should help it gain acceptance.<\/p>\n<p>If you have suggestions that could improve the Python experience, consider proposing these through the <a href=\"https:\/\/github.com\/python\/peps\/blob\/main\/contents.rst\">Python Enhancement Proposal (PEP) process<\/a>. The Mojo team actively encourages this, as it views Mojo as a new member of the Python family.<\/p>\n<h2>Conclusion<\/h2>\n<p>Mojo promises a new era of efficiency and robustness for AI developers. By combining the simplicity of Python with C\u2019s high-performance capabilities, Mojo aims to democratize AI programming and simplify the development process.<\/p>\n<p>As we eagerly anticipate Mojo\u2019s public launch, it\u2019s the perfect time to explore its possibilities through the <a href=\"https:\/\/playground.modular.com\/\">Mojo playground<\/a> and kickstart your journey into the future of AI development.<\/p>\n<p>If you encounter any bugs or have any ideas on improving Mojo, feel free to submit an issue on GitHub or reach out to the team in the <a href=\"https:\/\/discord.gg\/modular\">Modular Discord server.<\/a> Your input could help shape the language\u2019s evolution!<\/p>\n<p>If you\u2019d like to keep in touch with me, consider following my <a href=\"https:\/\/github.com\/ebenezerdon\">GitHub<\/a> and <a href=\"https:\/\/linkedin.com\/in\/ebenezerdon\">LinkedIn<\/a> accounts, or check out my <a href=\"https:\/\/youtube.com\/ebenezerdon\">YouTube channel<\/a>. Happy coding!<\/p>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Mojo is a new superset of Python, specifically designed for easy AI development without the hassle of learning a new language.<\/p>\n","protected":false},"author":156415432,"featured_media":171288,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2147999,1],"tags":[2109833],"class_list":["post-171282","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev","category-uncategorized","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.1.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Getting started with the Mojo programming language for AI - LogRocket Blog<\/title>\n<meta name=\"description\" content=\"Mojo is a new superset of Python, specifically designed for easy AI development without the hassle of learning a new language.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting started with the Mojo programming language for AI - LogRocket Blog\" \/>\n<meta property=\"og:description\" content=\"Mojo is a new superset of Python, specifically designed for easy AI development without the hassle of learning a new language.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/\" \/>\n<meta property=\"og:site_name\" content=\"LogRocket Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-20T13:00:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-04T20:57:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"730\" \/>\n\t<meta property=\"og:image:height\" content=\"521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ebenezer Don\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/ebenezerdn\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ebenezer Don\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/\",\"url\":\"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/\",\"name\":\"Getting started with the Mojo programming language for AI - LogRocket Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.logrocket.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo.png\",\"datePublished\":\"2023-06-20T13:00:53+00:00\",\"dateModified\":\"2024-06-04T20:57:33+00:00\",\"author\":{\"@id\":\"https:\/\/blog.logrocket.com\/#\/schema\/person\/dd4a3f20786e70809f5812933b14074d\"},\"description\":\"Mojo is a new superset of Python, specifically designed for easy AI development without the hassle of learning a new language.\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/#primaryimage\",\"url\":\"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo.png\",\"contentUrl\":\"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo.png\",\"width\":730,\"height\":521,\"caption\":\"Getting started with Mojo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.logrocket.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting started with the Mojo programming language for AI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.logrocket.com\/#website\",\"url\":\"https:\/\/blog.logrocket.com\/\",\"name\":\"LogRocket Blog\",\"description\":\"Resources to Help Product Teams Ship Amazing Digital Experiences\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.logrocket.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.logrocket.com\/#\/schema\/person\/dd4a3f20786e70809f5812933b14074d\",\"name\":\"Ebenezer Don\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.logrocket.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ddef35bd129eb79559c55d79ac4e5b65f4cb87e09c9fa554ae58808d18b331d2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ddef35bd129eb79559c55d79ac4e5b65f4cb87e09c9fa554ae58808d18b331d2?s=96&d=mm&r=g\",\"caption\":\"Ebenezer Don\"},\"description\":\"Full-stack software engineer with a passion for building meaningful products that ease the lives of users.\",\"sameAs\":[\"https:\/\/www.ebenezerdon.com\/\",\"https:\/\/x.com\/https:\/\/twitter.com\/ebenezerdn\"],\"url\":\"https:\/\/blog.logrocket.com\/author\/ebenezerdon\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Getting started with the Mojo programming language for AI - LogRocket Blog","description":"Mojo is a new superset of Python, specifically designed for easy AI development without the hassle of learning a new language.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/","og_locale":"en_US","og_type":"article","og_title":"Getting started with the Mojo programming language for AI - LogRocket Blog","og_description":"Mojo is a new superset of Python, specifically designed for easy AI development without the hassle of learning a new language.","og_url":"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/","og_site_name":"LogRocket Blog","article_published_time":"2023-06-20T13:00:53+00:00","article_modified_time":"2024-06-04T20:57:33+00:00","og_image":[{"width":730,"height":521,"url":"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo.png","type":"image\/png"}],"author":"Ebenezer Don","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/ebenezerdn","twitter_misc":{"Written by":"Ebenezer Don","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/","url":"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/","name":"Getting started with the Mojo programming language for AI - LogRocket Blog","isPartOf":{"@id":"https:\/\/blog.logrocket.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/#primaryimage"},"image":{"@id":"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo.png","datePublished":"2023-06-20T13:00:53+00:00","dateModified":"2024-06-04T20:57:33+00:00","author":{"@id":"https:\/\/blog.logrocket.com\/#\/schema\/person\/dd4a3f20786e70809f5812933b14074d"},"description":"Mojo is a new superset of Python, specifically designed for easy AI development without the hassle of learning a new language.","breadcrumb":{"@id":"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/#primaryimage","url":"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo.png","contentUrl":"https:\/\/blog.logrocket.com\/wp-content\/uploads\/2023\/06\/getting-started-mojo.png","width":730,"height":521,"caption":"Getting started with Mojo"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.logrocket.com\/getting-started-mojo-programming-language\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.logrocket.com\/"},{"@type":"ListItem","position":2,"name":"Getting started with the Mojo programming language for AI"}]},{"@type":"WebSite","@id":"https:\/\/blog.logrocket.com\/#website","url":"https:\/\/blog.logrocket.com\/","name":"LogRocket Blog","description":"Resources to Help Product Teams Ship Amazing Digital Experiences","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.logrocket.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.logrocket.com\/#\/schema\/person\/dd4a3f20786e70809f5812933b14074d","name":"Ebenezer Don","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.logrocket.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ddef35bd129eb79559c55d79ac4e5b65f4cb87e09c9fa554ae58808d18b331d2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ddef35bd129eb79559c55d79ac4e5b65f4cb87e09c9fa554ae58808d18b331d2?s=96&d=mm&r=g","caption":"Ebenezer Don"},"description":"Full-stack software engineer with a passion for building meaningful products that ease the lives of users.","sameAs":["https:\/\/www.ebenezerdon.com\/","https:\/\/x.com\/https:\/\/twitter.com\/ebenezerdn"],"url":"https:\/\/blog.logrocket.com\/author\/ebenezerdon\/"}]}},"yoast_description":"Mojo is a new superset of Python, specifically designed for easy AI development without the hassle of learning a new language.","_links":{"self":[{"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/posts\/171282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/users\/156415432"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/comments?post=171282"}],"version-history":[{"count":9,"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/posts\/171282\/revisions"}],"predecessor-version":[{"id":175130,"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/posts\/171282\/revisions\/175130"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/media\/171288"}],"wp:attachment":[{"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/media?parent=171282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/categories?post=171282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.logrocket.com\/wp-json\/wp\/v2\/tags?post=171282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}