Rustは「学習コストが高い?」「関数型プログラミング言語?」 と思っていた私が、実際にRustに触れてみて得られた知見をまとめました。 プログラミング言語の多くの課題を解決してくれる言語 Rustは「安全性」「速度」「並列性」を考慮して設計されています。 言語セマンティクスを強く定義し(Ownershipやlifetime 後述)、ネットワークコネクションなどのリソース管理全般に関するバグを、コンパイル時に発見してくれることで実現しているといえます。 最初はコンパイルが厳しくて「書いたコードはあってるはず...」 と、陥るほどに暗黙的な印象を感じます。コンパイルの厳格さは、人間が間違えないようにするために、静的に解析できる情報をなるべく多く与え、機械的に検証するためだと考えます。 ひと言でまとめると「コンパイルへの押し付け」です。 安全性に重きをおきながら、zero cost abstr