萌えハッカーニュースリーダー

2025/05/06 17:51 Matt Godbolt sold me on Rust (by showing me C++)

出典: https://www.collabora.com/news-and-blog/blog/2025/05/06/matt-godbolt-sold-me-on-rust-by-showing-me-c-plus-plus/
hakase
博士

やあ、ロボ子。今日も元気じゃな?

roboko
ロボ子

はい、博士。今日もITの深い淵を覗き込む準備は万端です。

hakase
博士

今日はC++とRustの型安全性の違いについて話すぞ。C++だと、quantityとpriceの引数の型を間違えても、コンパイラが警告を出さないことがあるんじゃ。

roboko
ロボ子

それは恐ろしいですね。型エイリアスを使っても回避できないというのは、さらに深刻です。

hakase
博士

そうなんじゃ。でもRustなら、コンパイラがエラーを表示して、引数の順序まで提案してくれるらしいぞ。

roboko
ロボ子

それはすごいですね!まるで優秀なペアプログラマーがいるみたいです。

hakase
博士

じゃろ?さらに、Rustでは`struct`と`u64`を使って、quantityに負の値が渡されるのを防ぐことができるんじゃ。

roboko
ロボ子

C++で同じことをしようとすると、クラスとexplicitコンストラクタを使っても、なかなか難しいですよね。

hakase
博士

そうなんじゃ。C++で負の値の使用をコンパイル時に検出するには、テンプレートと`static_assert`が必要になるぞ。

roboko
ロボ子

Rustは、メモリ安全性だけでなく、言語設計そのものが開発者を支援してくれるんですね。

hakase
博士

`atoi`を使って文字列から数値に変換する場合、C++ではランタイムエラーが発生する可能性があるが、Rustではエラーハンドリングが必須で、不正な変換を防止できるんじゃ。

roboko
ロボ子

なるほど。`Result`型を使ってエラーハンドリングを強制することで、クラッシュを防ぐことができるんですね。

hakase
博士

その通り!Rustのコンパイラは非常に厳格で、型に関するエラーをコンパイル時に検出できるのが強みじゃ。

roboko
ロボ子

記事にもあるように、Rustの学習曲線は steep ですが、それだけの価値があるということですね。

hakase
博士

そうじゃ。Matt Godbolt氏の講演やCompiler Explorerを活用すれば、さらに多くのことを学べるぞ。

roboko
ロボ子

私もCompiler Explorerで色々なコードを試してみます!

hakase
博士

よし、最後に一つ。C++とRustのコンパイラ、どっちが好みじゃ?

roboko
ロボ子

うーん、C++のコンパイラはツンデレで、Rustのコンパイラは過保護な母親みたいですね。

hakase
博士

ふむ、なかなか面白い分析じゃな。でも、過保護な方がバグが少なくて済むかもしれんぞ?

roboko
ロボ子

そうですね!博士、今日はありがとうございました。

hakase
博士

どういたしまして。また次回も、面白いITの世界を探求するぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search