ロゴ ロゴ

【新歓ブログリレー】Rustの紹介&環境構築

こんにちは,機械翻訳みたいな文体をどうにかしたいWhiteShirtです.

私は,一年間ずっとプログラミング言語であるRustの勉強をしていたので,Rustを簡単に紹介したいと思います.

Rustとは

Rustは2010に登場した比較的新しい言語です.Mozillaの研究員であるGraydon Hoare氏によって設計されました.
この言語は速度と安全性を重視した言語です.本来,速度と安全性はトレードオフの関係にあり,両方を立たせることは困難です.しかしRustは独自のメモリ管理機能で速度と安全性の両立が容易になります.
FirefoxのレンダリングエンジンServoに使用され,従来と比べて実行速度が2倍になり話題になりました[1].
また,Googleは2021年4月にAndroidの開発にRustを採用することを発表しました[2].他にもAmazonやMicrosoftなどの企業もシステム開発にRustを採用することが増えてきました[3] [4].

Rustには以下のようなメリットがあります
– 安全なプログラムが書けるようになる
– 実行速度が早い
– Webサーバーや組み込みなどにも利用されていて,様々な応用ができる etc…

Rustは以下を満たすような人にお勧めです
– 新しい言語を習得してみたい
– 現在流行っている言語を触ってみたい
– 1つの言語で様々なアプリケーションを開発したい

しかし,Rustはプログラミングをしたことがない人にはあまり向いていません.なぜなら,ほとんどの資料が他の言語を習得している前提で書かれているためです.C++やJavaなどの言語を通して,プログラミングの基礎を習得してからRustの学習をすることを推奨します.

Rustの活用例

Command Line apps

Command Line appsとは,WindowsのコマンドプロンプトやMacのターミナルで実行できるCuiアプリのことです.
Rustのプロジェクトはcrateという単位で管理されます.crates.ioを通して簡単にcrateの公開,入手ができるようになっています.
私のお勧めはzoxidefdです.ファイルとディレクトリの検索,移動が高速になり便利です.

WebAssembly

WebAssemblyとは,asm.jsの代替として開発された,ブラウザ上で実行できるバイトコードのことです.一般的にJavaScriptよりも高速に実行できます.私が注目している技術の一つです.
Rustはwasm-packというWebAssemblyの生成とJavaScriptの相互作用を行うツールがあります.
活用例としてwasm-markdown-benchなどがあります.

Networking

有名なところで言ったらFireFox, OpenDNS, Denoですかね.他にも様々なサービスがRustで書かれています.

Embedded

Rustは組み込みでも使える…らしいですが,私は試したことがないので何とも言えません.ですが組み込みでよく使われるC言語のFFIがあるので,相性はいいと思います.

Hello World!!

とりあえず動かしてみましょう.
まずは公式サイトからRustのビルドに必要なツールをダウンロードします.
基本的に公式サイトに従っていれば良いのですがVisual Studio C++ Build toolsが入っていないと,インストールしろと警告が出るはずです.この部分を少し補足説明します.
まず,Visual Studio C++ Build toolsでインストーラーを入れます.
次にインストーラーを起動し,「Desktop development with C++」にチェックを入れて,インストールしてください.終わったら,一応再起動しておいてください.

これで環境構築は完了です.簡単ですね!

では恒例行事であるコンソールに「Hello World」を表示させるプログラムを書きましょう.
まずコマンドプロンプト(Macならターミナル)を開き,次のコマンドを実行してください.

cargo new hello-world

そうしたら以下のようなファイルができているはずです.

hello-world
│   .gitignore
│   Cargo.toml
│
└───src
        main.rs

cargoとはRustが提供するパッケージマネージャです.
それぞれのファイルを簡単に説明します.Cargo.tomlファイルにはプロジェクトの名前やライセンスなどのメタデータやライブラリを記述するファイルです.今はあまり気にする必要はありません.
.gitignoreはgitを使用する時に無視するファイルを指定します.これも現段階では無視しといてください.
大切なのはmain.rsファイルです.これにプログラムを記述していきます.

main.rsファイルを開いて初めてのプログラムを書きましょう!!

fn main() {
    println!("Hello, world!");
}

と言いたいところですが,実はcargo new でプロジェクトを作ると勝手に「Hello World」を表示させるプログラムが書いてあるんですよね.有難迷惑って感じです.
ではこのプログラムをビルドして実行してみましょう.

やり方は簡単.以下のコマンドを打つだけです.

cargo run

無事にビルドされるとこのように表示されるはずです.

Compiling hello-world v0.1.0 (C:\Users\xxx\code\rust\projects\hello-world)
    Finished dev [unoptimized + debuginfo] target(s) in 0.32s
     Running `target\debug\hello-world.exe`
Hello, world!

これで皆さんは立派なRust開発者です.おめでとうございます!

次のステップへ…

Rustの日本語ドキュメント読むと良いと思います.有志の方が翻訳したものなので,機械翻訳よりは読みやすいです.
こちらに私が読んだ資料をまとめてあるので良かったらどうぞ.
日本語の資料も大量に存在するので探してみて下さい.

最後に

使用しているノートパソコンはこれです.

[1] Mozilla Research Expanding the Foundations of the Open Web
[2] Android Rust Introduction
[3] Why AWS loves Rust, and how we’d like to help
[4] How Microsoft Is Adopting Rust

コメント入力

関連サイト