ホームページ > バックエンド開発 > C++ > 【Rust独学】 。イントロ

【Rust独学】 。イントロ

Susan Sarandon
リリース: 2024-12-30 15:04:10
オリジナル
812 人が閲覧しました

[Rust Self-Study] . Intro

1.0.1 序文

このプロジェクト (コードとメモの両方) は、Rust を独学で学ぶ過程で文書化されました。不正確な記載や不明瞭な表現があるかもしれませんが、ご了承ください。そこから恩恵を受けることができれば、なおさらです。

1.0.2 Rustを使用する理由

  • Rust は信頼性が高く効率的です

  • Rust は C と C を同等のパフォーマンスより高い安全性で置き換えることができ、 C や C のようなエラーをチェックするために頻繁に再コンパイルする必要はありません。主な利点は次のとおりです:

    • メモリの安全性 (null ポインターの逆参照、ダングリング ポインター、データ競合を防止します)。
    • スレッド セーフ (マルチスレッド コードが実行前に安全であることを確認します)。
    • 未定義の動作 (範囲外の配列、初期化されていない変数、解放されたメモリへのアクセスなど) を回避します。
  • Rust は、現代言語機能 (ジェネリック、トレイト、パターンマッチングなど) を提供します。

  • Rust は最新のツールチェーンを提供します。 Rust の Cargo は、Python の pip と同様の原理を共有しています。 C/C の面倒な依存関係構成とは異なり、Cargo は C/C レベルのパフォーマンスを維持しながら、Python に似たユーザーフレンドリーな依存関係管理エクスペリエンスを提供します。

1.0.3 該当するシナリオ

  • パフォーマンスが必要な場合: Rust は C と同じくらい正確にメモリを制御できます (アンセーフを使用) と同時に、最新の利便性 (所有権システムやパターン マッチングなど) も提供します。一方、Python は開発者の効率を優先しますが、パフォーマンスは犠牲になります。

  • メモリの安全性が重要な場合: Rust のコンパイル時の静的チェックにより、強力なメモリの安全性が確保され、オペレーティング システム、組み込みシステム、ネットワーク サーバーなどのエラー防止が必要なシナリオに非常に適しています。 .

  • マルチコア プロセッサの効率的な使用が必要な場合: Rust は、安全性を犠牲にすることなく効率的な同時実行性とマルチコア プログラミングをネイティブにサポートしているため、高スループットと同時タスクを必要とするシナリオで特に有利です (例: Web サーバー、分散システム、リアルタイム コンピューティング)。

Rust は次の分野で優れています:

  • ウェブサービス
  • WebAssembly (Rust と C/C は、パフォーマンスの点で C# や Java を大幅に上回ります)
  • コマンドラインツール
  • ネットワークプログラミング
  • 組み込みデバイス
  • システムプログラミング

1.0.4 他の言語との比較

Category Language Features
Machine Code Binary Closest to hardware, executed directly by CPU.
Assembly Assembly Uses mnemonics to replace machine code, e.g., MOV AX, BX.
Low-level C, C Close to hardware, provides limited abstraction.
Mid-level Rust, Go Performance similar to low-level languages with higher abstraction.
High-level Python, Java Higher-level abstraction, easier to read and use.

高レベル言語と低レベル言語は厳密に対立するものではなく、連続的なスペクトル上に存在します。

  • 下位レベル言語では、ハードウェアをより細かく制御できますが、より複雑なコーディングが必要となり、開発効率が低くなります。

  • 高レベル言語は、より高度な抽象化と自動化を提供しますが、実行時のオーバーヘッドが発生し、きめ細かいハードウェア制御が失われる可能性があります。

Rust の利点:

  • 高性能
  • 強力な安全保証
  • 同時実行性の優れたサポート

中間レベル言語としての Rust の地位には、次の利点があります。

  • C/C : パフォーマンスは優れていますが、安全性に欠けています。 Rust は同等の性能で安全性を確保します。

  • Java/C#: メモリの安全性を確保し (ガベージ コレクションを使用)、多数の機能を提供しますが、パフォーマンスは劣ります。 Rust は、優れたパフォーマンスで同様の安全レベルを実現します。

1.0.5 Rustの歴史

Rust は Mozilla による研究プロジェクトとして誕生し、その応用例としては Firefox ブラウザが注目に値します。

Mozilla は、Rust を使用して Servo 実験的ブラウザ エンジンを開発しました (2012 年に開始、最初のプレビューは 2016 年にリリースされました)。 Servo のアーキテクチャは完全に並列化されています。残念ながら、2020 年 8 月に Mozilla は Servo 開発チームの大部分を解雇しました。 2020 年 11 月 17 日より、Servo は Linux Foundation に移管されました。 Servo の機能の一部はすでに Firefox に統合されています。

Firefox の Quantum バージョンには、Servo の CSS レンダリング エンジンが組み込まれています。 Rust により、Firefox のパフォーマンスが大幅に向上しました。

1.0.6 Rustユーザーとケーススタディ

  • Google: Fuschia オペレーティング システム。Rust がコードベースの 30% を構成します。

  • Amazon: ベアメタルまたは仮想マシン上でコンテナを直接実行するために設計された Linux ベースのオペレーティング システム。

  • System76: 次世代のセキュア オペレーティング システム Redox を完全に Rust で開発しました。

  • スタンフォード大学とミシガン大学: Google の暗号化製品で使用される組み込みリアルタイム オペレーティング システム。

  • Microsoft: Rust を使用して Windows の特定の低レベル コンポーネントを書き直しました。

  • Microsoft: WinRT/Rust プロジェクト。

以上が【Rust独学】 。イントロの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート