ソフトウェア開発者のための OSS、まとめてみました!

ソフトウェア開発を行なっている自分が、個人的に面白いと思ったプログラムの最新技術や、オープンソースソフトウェア(OSS)をまとめています!

MENU

Python 互換性のある構文と処理速度が爆速な AI 開発に利用されている新しいプログラミング言語!「Mojo」

概要

新しいプログラミング言語Mojo」をご存じでしょうか?

Mojo」は Python との互換性を持つよう設計されたプログラミング言語で、AI 開発に利用されることを目的に開発された言語になります。

これまでの AI 開発者が Python で記述されたプログラムと同じような記述のしやすさを残しつつ、処理速度は Python の比ではないほど速いといわれています。

Python で記述された既存のコードを生かすことが容易、AI 開発のための学習コストを下げる、などの背景があり、このようなプログラミング言語が作成されました。

それでは詳細についてみていきましょう。

目次

特徴

プログラミング言語Mojo」の特徴としてはいかが挙げられています。

  • Python 互換の構文
  • 処理速度が C 言語並みの速度
  • 動的型付け・静的型付け両方の構文を所持
  • コンパイル型言語
  • システムプログラミング言語
  • 中間表現に MLIR(Multi-Level Intermediate Representation)を採用

利用手順

Mojo」を利用するには、開発者ツール「Mojo SDK」をダウンロード・インストールすることで、ローカル環境で動作させることが可能です。

※ ダウンロード時にはアカウント登録が必要になります。

docs.modular.com

使用感

早速私自身もプログラミング言語Mojo」を試してみました!

初めに Hello World! を試してみましたが、Python 互換性があるため、Python のコードを試してみたところ、正常に動作しました。

print("Hello World!")
Hello World!

また、「Mojo」には関数の宣言として fn を利用します。

Pythondef と同じようものですが、いくつか違いがあります。

  • 引数は型指定が必要
  • 引数はイミュータブル
  • 戻り値の型が指定されていない場合は、None が指定されたと推定
  • 関数内のローカス変数は let または var で宣言する必要有

上記のようにやや制限がありますが、「Mojo」の fn を利用した関数の処理速度は、Pythondef を利用した関数とは比べ物にならないくらいの速度になります。

(参考)

dev.classmethod.jp

また、これまで Python で記述していたソースコードも「Mojo」では互換性があるため動作するということですが、私自身が試してみたところ、一部エラーとなって動かないことがありました。

一部 Pythonソースコードは静的ソースコードに書き換えるなどの、最適化対応が必要ということでした。

ただ、Python モジュールの利用が可能であったり、方チェックがあるためバグ防止などが可能であったりで、これまで Python を利用してプログラム開発をされてきた方にとっても使いやすいプログラミング言語となっていました!

まとめ

今回は、Python との互換性を持つよう設計されたプログラミング言語で、AI 開発に利用されることを目的に開発された言語「Mojo」についてご紹介しました。

ドキュメントを見ていく中で、PythonMojo の関係性は、C と C++ の関係性にとても似ていると思いました。

それもそのはずで、「Mojo」は将来的に Python のスーパーセットとなることを目指して開発が進められているためです!

現時点では AI 開発・機械学習などを行うには Python!と呼ばれていますが、将来的には「Mojo」に置き換わることになりそうですね。

これまで Python で AI 開発や機械学習などを行ってきた方は、こちらの新しいプログラミング言語Mojo」を触ってみてはいかがでしょうか?

Mojo」の処理速度は Python とはけた違いで速いため、驚くと思います!

いち早く「Mojo」に触れ、知見を広げてみてはいかがでしょうか。

ライセンス

Apache License v2.0 with LLVM Exceptions

リンク

github.com

docs.modular.com