89
95

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonの35000倍速い新言語 Mojo🔥 を使ってみた【セットアップ編】

Last updated at Posted at 2023-10-20

自己紹介

こういう者です。

詳しくは固定ツイートをご覧ください。

Mojo🔥とは

PythonのシンプルさとRustのスピードとメモリの安全性を組み合わせた、新しいプログラミング言語。

Pythonの35000倍速いとされており、Pythonの弱点である「遅さ」を補うと期待されている。また、書き方もPythonと似ているので移行もしやすいです。

そんな言語が2023年10月19日より、Appleシリコン搭載Macに対応したとのことで、早速触ってみました。

個人的には速さどうこうよりも、拡張子が「.🔥」な遊び心が大好きです。

Mojoのセットアップ

このページの案内に沿って進めるだけです。
ここでは僕が詰まった箇所も加えて解説します。

あ、環境構築にはそんなに詳しくないのでChatGPT大先生に聞きながら進めました。いつもありがとう。

ターミナルで使えるようにする

1. Homebrewのインストール

HomebrewとはMacOS上で動作するパッケージ管理ツールです。

詳しく知りたい方はこちら

インストールしていない方は以下のページ案内に従ってインストールしましょう

2. Modular CLIをインストール

以下のコマンドを実行すればできるはずです。

curl https://get.modular.com | sh - && \
modular auth {YOUR_TOKEN}
僕はエラーが出ました。

image.png

コマンドラインツールが古いと発生するらしい。

・解決方法:

sudo rm -rf /Library/Developer/CommandLineTools

↑Macのシステムにおいて/Library/Developer/CommandLineToolsディレクトリとその中にあるすべてのファイルとサブディレクトリを削除するものです。このディレクトリは、Xcodeのコマンドラインツールがインストールされる場所です。

このコマンドは非常に注意して使用する必要があります。この操作は取り返しのつかない削除を行い、それによってシステムが不安定になる可能性があります。通常は、コマンドラインツールのインストールが何らかの理由で壊れていて、それを完全に削除した後で再インストールする必要がある場合にのみ実行されます。ただし、このコマンドを実行する前には、必ずその必要性と影響をよく理解してください。

ChatGPT大先生がこう言ってました。

sudo xcode-select --install

Mac OS X(または macOS)上で Xcode コマンドラインツールをインストールするためのコマンドです。Xcode コマンドラインツールは、Appleの統合開発環境(IDE)である Xcode の一部ですが、このコマンドによってコマンドラインツールだけを別途インストールすることができます。

らしいです。

これでインストールが完了しました。

image.png

こんな画面が途中で出てきたらうまく行ってると思います。1, 2分で完了しました。

3. Mojo SDKをインストール

SDKとは、Software Development Kitの略で、ソフトウェア開発キットのことです。ソフトウェア開発に必要なプログラムやAPI,、文章、サンプルなどをまとめてパッケージ化したものになります。

こっちは数分かかりました。ただ待つだけ。

modular install mojo

以下のような画面が出たら大丈夫そう。

image.png

これの下にbashだと〜とかzshだと〜とか出ていました。んー、なんかtest全部FAILになってるけど大丈夫そ?

この後は🔥Mojo installed!🔥の下にある指示に従って実行するだけ。僕はzshなので以下のコマンドを実行しました。

echo 'export MODULAR_HOME="/Users/{username}/.modular"' >> ~/.zshrc
echo 'export PATH="/Users/{username}/.modular/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

※{username}はご自身のものに置き換えてください。

とりあえず言われた通りにコピペして実行したら、ターミナルでMojoが使えるようになってました。

右も左もわからずMacの環境構築やり直した時にたくさん見たコマンドですね、懐かしいです。

インストール待ちで暇な方はぜひ

4. Mojoをターミナルで使えるかテスト

「mojo」とだけ打てばターミナル上でプログラムできるモードになります。

print('Hello Mojo🔥')

pythonとほぼ同じなのでこのコードを入力すれば以下のような出力が得られます。
空白行が実行を意味するので、入力したらEnterを2回押すだけ。

image.png

↑'Hello Mojo🔥'と出力するコード

:q

コードの書き込みを終了するにはこのコマンドでできます。

簡単ですね。

VSCodeで使えるようにする(オプション)

公式ページにはVSCodeにインストールする方法も案内されています。

Mojo🔥の拡張機能をインストール

VSCodeでMojoの拡張機能を検索し、インストールします。

image.png

インストール後、Mojoファイルを作成。

拡張子は「.mojo」か「.🔥」。.🔥が斬新で好き。笑

image.png

試しにこのコードを実行してみました。

実行するにはこのコマンド。mojo {ファイル名}で実行できます。

mojo practice.mojo
fn main():
    for i in range(10):
        print(i)

↓実行結果

0
1
2
3
4
5
6
7
8
9

ちゃんと実行できている。めでたしめでたし。

注意

関数の形で書かないとエラーになる。ノートブックのノリでやると受け付けてくれない

このような書き方はfirst scope levelというらしい。へー。

print('Hello Mojo🔥')

これを実行すると、

mototsuguohki@M2-Mototsugu-Air Mojo % mojo practice.mojo
/Users/mototsuguohki/Downloads/DataScience/Mojo/practice.mojo:1:1: error: TODO: expressions are not yet supported at the file scope level
print("Hello Mojo🔥")
mojo: error: failed to parse the provided Mojo

これはMojo🔥がコンパイル型の言語だかららしい。pythonはスクリプト型だからファーストスコープでもいけた

ChatGPTの解説↓

image.png

Mojo🔥はコンパイル型言語だからPythonよりも圧倒的に速いんですね。

終わりに

今回はMojoが10/19よりApple シリコン搭載Macで使えるようになったということで、いち早く試してみました。

書き方もpythonに似ているのですぐに慣れそうですね。

今後もPythonとの比較の記事やMojoで深層学習プログラムを実行してみる記事を書こうと思っているので、読んでもらえたら嬉しいです。

基礎文法を試した記事は書きました!

また、X(Twitter)では日々データサイエンスやAIに関する勉強記録・情報発信をしています。フォロワーはもうすぐ5500人に到達します。

少しでも刺激になるようなことを発信できたらいいなと思っているので、気になった方は見てみてください🔥

では👋

89
95
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
89
95

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?