タイトル通り、唐突ですが Rust を始めてみようと思います。
最近のニュースでは Linux カーネルの開発言語にも採用されようとしているようですし、着実に利用シーンが増えていっている印象ですね。数年前からずっと触りたかった言語ではあるのですが、近頃ようやくそういった時間が取れるようになったのと、自宅に開発ができる PC を購入した(主にゲーム用ですが)のでリハビリも兼ねてブログに残しておこうと思います。
まずはインストールから。
Rust の言語特性を掴む
プログラミングをいきなり始めるのもいいですが、最短距離でサンプルコードに進んでしまうと文量が少なすぎて少し困るというこちらの事情がありますので、少しだけ Rust の言語特性みたいなものを掴んで動きを想像してみたいとおもいます。
コンパイル言語である
Rust はコンパイル言語です。
普段 JavaScript(Node.js) や Ruby 、 PHP 、 Python などのスクリプト言語の実装をされている方からすると少し奇妙な感じがします。
コンパイル言語は実行する前にコンパイルという作業を必要とします。
プログラムの規模が小さい場合は手順こそ面倒に感じはしますが、一瞬で終わるためそこまで気になりません。
規模が大きくなるにつれて、コンパイルにもそれなりの時間を要するようになります。
スクリプト言語のように、さっと書き換えてパッと動作確認、という訳にはいかなくなり、デバッガを有効に使った効率的なデバッグというものが必要になります。
それと引き換えに、というわけではありませんがコンパイルしたバイナリファイルはスクリプト言語とは違う次元の速さで動作するでしょう。
パッケージマネージャも存在する
Rust には Cargo というパッケージマネージャが存在します。
というか、21世紀のプログラミング言語でパッケージマネージャがないのはもはや致命的ですよね。
私も絶賛勉強中なのであまり大層な事は言えませんが、 Rust のパッケージは他の言語のパッケージよりもコンパクトに実装されているようで、できる限り組み合わせて汎用的に使っていけるくらいの粒度で開発されているのだとか。
そろそろインストールしていきましょう。
Linux VM 上にインストールしていく
PC ゲームをするために買ったような PC なので、もちろん Windows 機です。
Windows 上で開発してもいいんですが、あまり Windows 上で開発をすることはないので、vagrant で簡単な CentOS の VM を作り、その中で開発をしていこうと思います。
vagrant で VM を構築する手順については割愛します。
が、リクエストがあれば記事にまとめるのも吝かではないなと思っていますのでコメントなどでリクエストしていただければ。
Linux 上に Rust の実行環境を用意するのは非常に簡単です。
# インストール用のシェルスクリプトをダウンロードして実行
$ curl https://sh.rustup.rs -sSf | sh
これだけで実行環境は整います。
以降は cargo コマンドを使って作業を進めていきます。
まずはプロジェクトを作っていきます。
すると、プロジェクト名のディレクトリが生成され、その中に必要なファイルが幾つか作成されます。
できたてのプロジェクトは以下のような感じです。
$ ls -al
total 8
drwxrwxr-x. 4 vagrant vagrant 65 Aug 15 03:17 .
drwx------. 8 vagrant vagrant 199 Aug 15 03:17 ..
-rw-rw-r--. 1 vagrant vagrant 202 Aug 15 03:17 Cargo.toml
drwxrwxr-x. 6 vagrant vagrant 103 Aug 15 03:17 .git
-rw-rw-r--. 1 vagrant vagrant 8 Aug 15 03:17 .gitignore
drwxrwxr-x. 2 vagrant vagrant 21 Aug 15 03:17 src
中に src というディレクトリがあるので、その中を見てみます。
$ cd src
$ ls -al
total 4
drwxrwxr-x. 2 vagrant vagrant 21 Aug 15 03:17 .
drwxrwxr-x. 4 vagrant vagrant 65 Aug 15 03:17 ..
-rw-rw-r--. 1 vagrant vagrant 45 Aug 15 03:17 main.rs
main.rs というファイルがありますね。
これが Rust のプログラムが始まる最初の部分になります。
この中にある main という関数がプログラムの始まり(エントリポイント)になります。
まとめ
- 開発環境は VM などの上に作ったほうがいい
- Rust の開発環境はシェルスクリプトを1つ動かすだけで整えられる
- src/main.rs の main 関数がエントリポイントになる
cargo の事についてはあまり触れられなかったので次回は cargo について調べていこうと思います。
リハビリなので少し短いですが、今日のところはこれまで。
続きます!
コメント
コメントを投稿