2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

”Rust” を好きになる

2
Last updated at Posted at 2025-12-21

Rust という言語に対するイメージ

  • 低レイヤーの言語難しそう。
  • C言語みたいに環境構築大変そう。
  • コード複雑そう。

本記事では、こうしたイメージをできるだけ取り除きつつ、
Rust を知らない人でも「なるほど」「ちょっと触ってみたい」と思えるように、
Rust の特徴と良さを解説します。
(書き慣れていない部分もあるかもしれませんが、ご容赦ください)

Rust はどんな言語か

Rust はよく次のように表現されます。
「C レベルの実行速度と、Java レベルの安全性を両立させようとした言語」
発想自体は誰でも思いつきそうですが、
それを実用レベルで成立させた点が Rust の最大の特徴です。

言語設計の思想

ここで一度、比較対象として挙げられがちな言語を簡単に整理します。

C言語
コンピューターを直接操作可能にした言語。

  • メモリやポインタを直接操作できる
  • 実行時のオーバーヘッドがほぼなく非常に高速

その代わり、

  • メモリ安全
  • 型安全
  • 実行時チェック

これらの責任を開発者に丸投げ...
「メモリ安全?型安全?実行時チェック?プロなら失敗しないでしょ?」
これによって高速、だけど直接操作ミスると大変!

Java
ランタイムでガチガチに守ってくれる言語。

  • 実行時にランタイムが厳密にチェック
  • ヌル参照や型の不整合を防ぎやすい
  • その分、ランタイムのコストが発生する

「人間は失敗するよね。だから全部見るよ。危なかったら止めるよ。」
全部監視して守ってくれる。だけど実行も遅い。


Rust
Rust はこの両者の間に立つ設計をしています。

  • 安全性の検査をすべてコンパイル時に行う
  • 危険なコードは「動く前に」拒否する
  • 実行時の安全チェックがほぼ不要なため高速

コンパイラで全部検査してミスのないコードのみ許す言語。
「人間は失敗します。なのでコンパイラの私が失敗しないプロになります。」
この思想が Rust の根幹です。


文化

Rust を語る上で、文化の話は避けられません。
よく言われるフレーズがこれです。
「コンパイラは敵ではない。最高のレビューアだ」
最初は実感しづらいですが、Rust には Clippy という公式の静的解析リンターが存在します。
コンパイルは通っても、Clippy がこう指摘します。

if x == true { ... }

Clippy:それif x {}で十分です。

for i in 0..vec.len() {
    println!("{}", vec[i]);
}

Clippy:テレータを使った方が安全で読みやすいです。

このように、「動くかどうか」ではなく「Rust らしいかどうか」 まで見てくれます。

Clippy の立ち位置

Rust 界隈では、だいたい次のような共通認識があります。

  • 「Clippyが通る」 = 最低限の礼儀
  • 「Clippyに怒られない」 = きれいなコード
    Rust は低レイヤー言語であり、書き方の自由度が高い分、
    放っておくとコードの品質にばらつきが出やすいです。

そこで Clippy を相棒としてコードを磨いていく
というのが Rust の開発スタイルです。

文化をまとめると次のようになります。

  • コンパイラは敵ではなく、レビューア
  • Clippy に指摘されるのは悪いことではない
  • 「動けばOK」ではなく「破綻しないこと」が正義

まぁ、なんというか、こんな感じでかなり思想の強い言語です。

開発体験について

思想の話だけではイメージしづらいので、
最小限の開発手順を紹介します。

環境構築

Rust には Cargo というパッケージ管理・ビルドツールが標準で付属しています。
Python の pip、Node.js の npm に近い存在です。
インストールはRustupを使うだけです。

  • 公式サイトからインストーラを実行
  • 追加設定ほぼ不要

低レイヤー言語としては、かなり簡単な部類です。

プロジェクト作成

Cargo を使えば、プロジェクト作成も一発です。

cargo init

すると、すでに Hello, World! が用意された状態になります。

// main.rs
fn main() {
  println!("Hello, World!");
}

この時点で

  • ビルド
  • 実行
  • 依存管理

すべてが揃っています。

まとめ

Rust は

  • 低レイヤーだが、安全性を妥協しない
  • コンパイラとツールが開発者を支える
  • 書くほどに「考え方」が身につく
    そんな言語です。

少しでも興味を持ったなら、
まずは cargo init して触ってみるのがおすすめです。

「難しそう」という印象は、
実際に触ると意外と変わるかもしれません。

皆さんも一緒に Clippy に怒られましょう!


この記事の所有権は私にあります。
無断で可変参照を取らないでください。

2
0
0

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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?