楽しいから

一般的な理由

実行速度が速い

CやC++に代わるような言語を目指している
このため、Pythonなどのスクリプト言語よりずっと速い

メモリ管理が厳しく、安全である

CやC++だと配列などのメモリ管理をプログラマが注意する必要がある (例)
不正なメモリアクセスをすると、よくて Null Pointer Exception、悪い時は未定義動作により、アプリケーションが壊れる
しかも実行時にならないと、エラーが分からないこともある

Rustはライフタイムや所有権や借用という仕組みおよび、メモリの使い方をコンパイル時にチェックすることにより、安全なメモリ管理がしやすい

また、変数を宣言、代入するときにきちんと型を指定する必要があり、これも安全性と速度に貢献している
(ある程度は型を推論してくれる)

こんな感じ
変数の宣言は let を使う
行末はセミコロンで終わる
(初めてPythonに触った時、改行とインデントで制御しているのに驚いた…)

let a: i32 = 32;
let b: f64 = 0.64;

並列処理をしやすい

並列処理をしやすいように設計されている
また、上記メモリ管理のため、並列処理時にもデータが不用意に変更されたり、消されたりしない
とはいえ、正直この辺りは触ったことがないのでよく分からない

Rustの特徴

一般的な理由の部分で述べた通り

keenさんの分かりやすいスライド
https://keens.github.io/slide/anzennagengorust/

    • 実行速度が速い

 

    • メモリ管理が厳しく安全である

 

    • 並列処理をしやすい

 

    • rustupによりRustの管理が容易

 

    cargoにより実行コードやライブラリの管理、テストが容易

上記の事情から人気

StackOverflowではずっと人気上位

個人的な動機

    • 学生時代にCでシミュレーションを書いていた

この記事 が面白く、CやC++に代わる言語として興味があった
書きっぷりが割と気持ちいい
コンパイラに引っかかることは多いが、エラーメッセージが親切
システムに近いような言語を触ってみたかった

データサイエンティストとしてのメリット

    • データ量が多かったり、速度が求められるサービスを作ったりするときに有用

 

    • PythonやRとは設計思想の違う言語を学ぶことで、技術の幅が広がる

 

    データ分析系のクレートも多数存在している (ばんくしさんの記事)

どう学ぶか

Rust by Exampleをやった後に、竸プロの問題をやるのがとっつきやすいかと

    • Rust by Example

 

    • The Book

 

    • Rust初心者はまず競プロから始めたら良さそうって話

 

    AtCoder に登録したら解くべき精選過去問 10 問を Rust で解いてみた
广告
将在 10 秒后关闭
bannerAds