Mojo编程语言初次上手体验手记

2023年 9月 9日 54.8k 0

Mojo 是 Modular AI 公司开发的一种编程语言,专门面向 AI 设计

1. 准备工作

官方于9 月 8 日宣布,Mojo 现已开放本地下载运行,除了编译器之外,Mojo SDK 还包括一整套开发者和 IDE 工具,可以用于构建和迭代 Mojo 应用。

目前 Mojo 只支持 Linux 操作系统(主要支持 Ubuntu 发行版本),后续会添加 macOS 和 Windows 系统支持!

  • 个人系统:WSL —— Ubuntu22.04LTS

Ubuntu 22.04换国内源 清华源 阿里源 中科大源 163源_ubuntu22阿里源_nudt_qxx的博客-CSDN博客

让Windows11的代理作用于wsl2,包含clash和v2ray - 知乎 (zhihu.com)

需要代理!!!

2. 开始安装

  • 使用谷歌账号或其他注册账号登录 Modular: AI development starts here
  • 本人一开始使用香港、新加坡节点得到了以下的网络错误,后来使用日本的节点得以成功安装,请谨慎选择相关代理节点! modular: error: http error: failed to reach URL [https://packages.modular.com/mojo/1.root.json](https://packages.modular.com/mojo/1.root.json) with cURL error SSL connect error -modular: error: invalid manifest: was not an object

Mojo编程语言初次上手体验手记-1

  • 进入Download Now 界面,选择对应的系统,依照指示进行安装(每个账号有着不同的MODULAR_AUTH)

Mojo编程语言初次上手体验手记Mojo编程语言初次上手体验手记

  • 安装成功!

Mojo编程语言初次上手体验手记

  • 在开始 Coding 前设置相关的MODULAR_HOME 和 PATH 环境变量,因为默认使用bash,在终端输入:
 echo 'export MODULAR_HOME="$HOME/.modular"' >> ~/.bashrc
 echo 'export PATH="$MODULAR_HOME/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.bashrc
 source ~/.bashrc 

3. 编码尝试

  • 在 Vscode 中安装插件*Mojo *
  • 执行 mkdir Mojo 和touch hello.mojo, 在 Vscode 中打开该文件夹
  • 配置相关路径:

Mojo编程语言初次上手体验手记

{
    "mojo.modularHomePath": "/absolute/path/to/.modular"
}
  • 运行,在 Vscode 终端即可显示
fn main():
   print("Hello, world!")

Mojo编程语言初次上手体验手记

4. 体验感悟

  • 现代编程语言的既视感
fn swap(inout lhs: Int, inout rhs: Int):
   let tmp = lhs
   lhs = rhs
   rhs = tmp

fn main():
   var x = 42
   var y = 12
   print(x, y)
   swap(x, y)
   print(x, y)

42 12 12 42

  • Python 的超集
from python import Python

fn main():
   try:
      let np = Python.import_module("numpy")
      print(np.array([1, 2, 3]))
      print("Yes, it's fun!")
   except:
      print("No numpy")

[1 2 3] Yes, it's fun!

  • 语法上的丰富
struct MyPair:
   var first: Int
   var second: Int

   fn __init__(inout self, first: Int, second: Int):
      self.first = first
      self.second = second

   fn dump(inout self):
      print(self.first, self.second)

fn main():
   var mine = MyPair(1, 2)
   mine.dump()

1 2

  • 广泛吸收许多的程序语言设计思想,如 Rust 的所有权和借用检查
fn add(borrowed x: Int, borrowed y: Int) -> Int:
   return x + y

fn add_inout(inout x: Int, inout y: Int) -> Int:
   x += 1
   y += 1
   return x + y

fn main():
   let x = 1
   let y = 2
   let z = add(x, y)
   print("x = ", x)
   print("y = ", y)
   print("z = ", z)

   print("------------------")

   var a = 1
   var b = 2
   let c = add_inout(a, b)
   print("a = ", a)
   print("b = ", b)
   print("c = ", c)

x = 1 y = 2 z = 3

a = 2 b = 3 c = 5

5. 衷心展望

尽管还处于早期阶段,Mojo 这门语言已展现出非凡的潜力,其发展路线和设计思路都非常务实 ,又有足够专业的领导者和公司作为背景支撑,可以说是未来可期!

作者:theRunCom

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论