本コースでは、コンピュータ言語の最高峰・最難関言語であるRustの言語仕様について学習します。
開発者が最も好きな(Most loved)プログラミング言語 6年連続1位 *Stack Overflow Developer Survey
***Rustは近年のプログラミング言語で最も難解な言語であり、特に日本国内においては第一線で活躍するエンジニアやベテランエンジニアでもRustを完全に理解している人はほとんどいない為、部分的にでも理解できるとかなりのスキルの差別化になると思います。***
Rustは、C/C++レベルの自由度/高速処理性能を備えつつ強力なメモリ安全性を保証してくれる素晴らしい言語です。Mozilla社によって開発されてきましたが、2021年2月にRust Foundationが設立され(メンバー : Google, Microsoft, Facebook, Mozilla, AWSなど)各社がRust言語が将来に渡り非常に重要な言語であると位置付けていることが分かります。
具体的な使用例としては、Webアプリケーションでは Golangの代替、組み込み機器におけるC/C++の代替、Web Assembly(WASM) 、またRustはシステムプログラミング言語でありOSを開発することも可能です。GoogleもAndroid OS開発にRustを採用することを2021年4月に発表し、Microsoftは既にWindows 10から一部のOSの機能をRustで置き換えています。AWS Lambdaとの相性も非常に良いです、AWS Lambdaは実行処理時間と割り当てメモリに応じて課金されるため、実行処理時間が短くメモリが最適化されたRustにより最小コストでAWS Lambdaを運用出来ます。
**学習のポイント**
システムのメモリ構造とポインタ
イミュータブルとミュータブル
シャドーウィング
スタックとヒープ
文字列スライスとString型
所有権と二重解放エラー
Stack overflow
Vector型とBoxポインタ型
所有権・参照・借用
ライフタイム (Non-Lexical Lifetime)
ダングリングポインタ
RAII (Resource Acquisition Is Initialization)
Generics
Generic lifetime annotation
構造体と列挙型
マッチングパターン
トレイトとトレイト境界
ユニットテスト
外部ライブラリとカスタムライブラリ