Open21

Rust の気になる記事

山とコード山とコード

Rust の気になる記事をまとめ

Rust に関連する気になる記事をまとめていく

山とコード山とコード

https://security.googleblog.com/2023/09/scaling-rust-adoption-through-training.html

Rust 導入のスケールアップのために、独自の Rust トレーニングを作成して実装した話

Documentation is a key value of the Rust community and there are many great resources available for learning Rust. First, there is the freely available Rust Book, which covers almost all of the language. Second, the standard library is extensively documented.

まずはこれ読んどけ

これ、読まなきゃ損だわ

This is a free Rust course developed by the Android team at Google. The course covers the full spectrum of Rust, from basic syntax to advanced topics like generics and error handling.

GoogleのAndroidチームによって開発された無料のRustコースです。基本的な構文からジェネリクスやエラー処理などの高度なトピックまで、Rustの全領域をカバーしています。

山とコード山とコード

https://opensource.googleblog.com/2023/06/rust-fact-vs-fiction-5-insights-from-googles-rust-journey-2022.html

Based on our studies, more than 2/3 of respondents are confident in contributing to a Rust codebase within two months or less when learning Rust.

私たちの調査によると、回答者の2/3以上が、Rustを学習した場合、2ヶ月以内にRustコードベースに貢献できると回答しています。

Rust is commonly regarded as having some of the most helpful error messages in the compiler space, and that held up in this survey as well. Only 9% of respondents are not satisfied with the quality of diagnostic and debugging information in Rust.

Rustは一般的に、コンパイラの中で最も有用なエラーメッセージを持っていると評価されており、今回の調査でもそれは維持された。Rustの診断およびデバッグ情報の質に満足していない回答者はわずか9%でした。

The respondents said that the quality of the Rust code is high — 77% of developers were satisfied with the quality of Rust code.

回答者の77%がRustコードの品質に満足している。

it’s not just correct—it’s also easy to review. More than half of respondents say that Rust code is incredibly easy to review.

正しいだけでなく、レビューも簡単です。回答者の半数以上が、Rustのコードは非常にレビューしやすいと答えています。

やはり、数値があると説得力があるな。

良い言語だ、Rust

山とコード山とコード

https://medium.com/@otukof/breaking-tradition-why-rust-might-be-your-best-first-language-d10afc482ac1

It demands precision, and its compiler is known for its uncompromising feedback.

正確さが要求され、コンパイラーは妥協を許さないフィードバックで知られている。

"妥協を許さない"

確かに!ってなった。良い表現。

  • Strict compiler feedback
    • 厳格なコンパイラのフィードバック
    • 効率的なコードを書くことの重要性を確実に理解できる

第一言語の選択としての Rust も良いよ!ってまとめ。

“Happy coding!”

山とコード山とコード
山とコード山とコード

Rust コードのパフォーマンスを最大化するために

A simple example of this is using structs to group related data together.

その簡単な例が、構造体を使って関連するデータをグループ化することです。

Bad

let x = 1;
let y = 2;
let z = 3;

// do something with x, y, and z

Good

struct XYZ {
    x: i32,
    y: i32,
    z: i32,
}

let xyz = XYZ { x: 1, y: 2, z: 3 };

// do something with xyz.x, xyz.y, and xyz.z

If you don't need to access the variables together, then there's no point in grouping them into a struct.

変数をまとめてアクセスする必要がなければ、構造体にまとめる意味はありません。

→ 使い所には注意。

Another technique is to use try using slices instead of linked lists or other dynamic data structures wherever possible.

もう1つのテクニックは、可能な限りリンクリストやその他の動的データ構造の代わりにスライスを使うことです。

Bad

let mut list = LinkedList::new();
list.push_back(1);
list.push_back(2);
list.push_back(3);

for item in list {
    // do something with item
}

Good

let array = [1, 2, 3];

for item in &array {
    // do something with item
}
山とコード山とコード

キャッシュを有効活用しよう

https://github.com/rust-lang/packed_simd

Another technique is to use data structures that are designed for cache efficiency, such as the packed_simd crate. Packed SIMD (Single Instruction, Multiple Data) allows you to perform computations on multiple values simultaneously, which can greatly improve performance. By utilizing packed SIMD instructions, you can process large amounts of data with fewer instructions and reduce memory accesses.

もう1つのテクニックは、packed_simdクレートのような、キャッシュ効率のために設計されたデータ構造を使用することです。packed SIMD(Single Instruction, Multiple Data)により、複数の値に対して同時に計算を行うことができ、パフォーマンスを大幅に向上させることができます。packed SIMD 命令を利用することで、より少ない命令で大量のデータを処理し、メモリ・アクセスを減らすことができます。

山とコード山とコード

Enum も活用しろ

Using an enum with variants allows us to have a collection that can store different types of values without wasting memory. This is especially useful when dealing with heterogeneous data structures or when you want to represent multiple possibilities in a single variable.

バリアント付きのenumを使うことで、メモリを浪費することなく、異なる型の値を格納できるコレクションを持つことができる。これは、異種データ構造を扱うときや、1つの変数で複数の可能性を表現したいときに特に便利です。