Mojo初体验之Hello World

能进来看这篇文章的,基本都是看到了Mojo铺天盖地的宣传的,这是一款为了适应未来发展而推出的一款AI计算的高性能编程语言,类似官网说的为AI开发者准备的编程语言:

Mojo初体验之Hello World_第1张图片

如果仅仅如此,那未必能够获得如此关注,但它表示自己的性能超过python的68000倍,C++的5000倍:

Mojo初体验之Hello World_第2张图片

因此有道理去跑一跑这个编程语言,看看上手情况。

一、前言 

本篇文章不研究Mojo底层如何,或者如何实现性能的优化,也不去对比python,是否真的有68000倍的性能提升,仅仅只是跑通Hello World的一个过程。

如果想要用Mojo开发产品的,可以直接看总结。

二、安装Mojo 

友情提示:部分内容需要特殊的上网技巧。 

2.1 官网安装教程 

Mojo初体验之Hello World_第3张图片

官网下载地址:Developer Console  

当前时间2023年9月13日,Mojo仅支持在Linux的Ubuntu上进行运行开发,因此需要拥有一个Ubuntu的虚拟环境才可以进行开发。

很友好的情况是,Mojo官网已经介绍了如何在VS Code中来开发Mojo,未来Mojo会继续推出Windows和Mac环境的版本:

Mojo初体验之Hello World_第4张图片

2.2 安装VS Code 

VS Code非常容易安装,直接百度搜索。

这里有传送门:Visual Studio Code - Code Editing. Redefined 

Mojo初体验之Hello World_第5张图片  

2.3 VS Code安装WSL插件 

在VS Code应用中心安装WSL,该插件支持我们本地安装一个虚拟系统:

Mojo初体验之Hello World_第6张图片

2.4 WSL安装Ubuntu 22.04

安装WSL成功后,左侧工具栏会出现WSL的按钮,点击加号添加安装虚拟系统: 

Mojo初体验之Hello World_第7张图片

需要在搜索栏中找到Ubuntu 22.04。 

Mojo初体验之Hello World_第8张图片

由于我已经安装了,因此在搜索栏中并未出现Ubuntu 22.04,如果你没有安装,应该能轻易找到。

2.5 进入Ubuntu 22.04

选中系统,出现右箭头,进入。

Mojo初体验之Hello World_第9张图片

进入成功后,会发现在目录那已经空白了,需要我们打开一个文件夹目录:

Mojo初体验之Hello World_第10张图片

此时如果有子用户账号则可以进入子用户账号,否则先进入home后创建子用户。

Mojo初体验之Hello World_第11张图片

后面需要安装Mojo的VS Code插件,如果是root目录无法安装,所以需要一个子用户、子目录。 

2.5.1 创建子用户

第一步:打开终端

Mojo初体验之Hello World_第12张图片

第二步:创建用户
sudo adduser 

终端中,输入adduser+空格+用户名来创建用户:

Mojo初体验之Hello World_第13张图片

输入密码和信息:

Mojo初体验之Hello World_第14张图片

第三步:切换用户
sudo su 

当左侧的信息变为你的用户名时,即为成功:

请使用root权限去创建子用户,不然还需要为子用户授权。 

2.6 安装modular

curl https://get.modular.com | MODULAR_AUTH=mut_5294445431ee41bc9d09693d273e88e3 sh -

这个过程会比较久,请耐心等待。

2.7 安装Mojo 

modular install mojo

这个安装比modular更加持久, 请更耐心地等待。

2.7.1 安装Mojo出现的问题

在安装Mojo的时候,你很有可能会卡在这个地方:

...

All done! ✨  ✨
1 file reformatted.
TEST: `mojo format`... OK
TEST: `mojo package`... OK
TEST: `mojo test_mandelbrot.mojo`... OK
TEST: `mojo test_python.mojo`... OK

 目前笔者实验下来并没有很好的解决方案,可以看到在github的issues中也有相应的问题存在:[BETA]: "modular install mojo" hangs during testing phase · Issue #538 · modularml/mojo · GitHub

Mojo初体验之Hello World_第15张图片

如果有大神知道这个问题的解决方案,请告知一下,我好及时修正。

2.8 安装VS Code的Mojo插件

Mojo初体验之Hello World_第16张图片

安装完成后,打开Mojo插件的扩充配置:

Mojo初体验之Hello World_第17张图片

在Mojo:Modular Home Path中填写modular的路径:

Mojo初体验之Hello World_第18张图片

三、编写Hello World程序

fn main():
    print("Hello World!!")

点击运行:

Mojo初体验之Hello World_第19张图片

本次运行时,也遇到了一些错误报告,目前也没有特别好的解决方案:

[16574:16574:20230913,140944.182520:ERROR exception_handler_server.cc:361] getsockopt: Invalid argument (22)
[16572:16572:20230913,140944.182786:ERROR socket.cc:153] unhandled cmsg 0, 0
Failed to initialize Crashpad.  Crash reporting will not be available.  Cause: crashpad failed to start handler

有意思的是,Mojo的文件后缀不仅仅可以是.mojo,也可以是.,以后的产品源码全部是.也是相当炸裂:

Mojo初体验之Hello World_第20张图片

四、总结 

就目前阶段,或者是说近期,Mojo还不适合开发上线的产品,虽然它是python的超集,可以使用python的大部分库,但也如官方说的,要支持全部的python库还需要一定时间。

并且目前来讲支持的系统并不多,且很多的问题还没有完善的社区回答去解决,去开发产品还尚早。

你可能感兴趣的:(mojo)