orangeitems’s diary

クラウド専任の40代インフラエンジニアが書くブログ。新規事業マネージャー。20世紀末の就職氷河期スタート時にIT業界に文系未経験で入りこみそのまま生き残った人。

【Rust入門】 今一番熱い言語を無料で学ぶ

 

プログラム言語Rustの人気が急上昇

私はプログラマーではないので、プログラミング言語の習得は避けてきました。この数年で言語もかなり種類が増え、どれを選べばいいの・・と困る方も多いのではないでしょうか。近年ではPythonの人気が急上昇しましたが、JavaやGoの人気も根強く。ただ、もうたくさんの方が参入されているので、完全に様子見していました。

ここに来て、Rust(ラスト)という言語が脚光を浴びているとか。

 

japan.zdnet.com

 LinuxにRustを導入するかどうかという議論は終わりを迎えた。Rustの実装は既に始まっている。Linuxの父であるLinus Torvalds氏は電子メールによる筆者との対話の中で「何かおかしなことが発生しない限り、それ(Rust)は6.1で導入される」と述べた。

 

japan.zdnet.com

Rustは最も若いプログラミング言語の1つだ。バージョン1.0に到達したのはほんの7年前にすぎないが、CやC++で書かれた大規模なコードベースへの採用に大きな期待がかかる。Graydon Hoare氏の個人的なプロジェクトとして始まったRustは、2010年にMozillaの研究プロジェクトとなり、現在ではAmazon、Google、Microsoftの支持を得ている。

 

このRustという言語。まだ歴史は浅いものの、これまでの言語が課題となってきたものをことごとく解決した、最終言語的な色彩が強く思います。人間がバグを生み出しやすい文法を元から禁止したり。あのたくさんの人を悩ましたガーベージコレクション(メモリの非同期開放)が無かったり。ちゃんとコンパイルされ機械語でバイナリー化されるので実行スピードがC言語並みに早かったり。

ITが消費するエネルギーの量も今後、明らかに問題となってくるため、エネルギー非効率な言語は淘汰される運命にあります。ちゃんと動くだけではなく効率を重視すること。SDGsの考え方はIT業界にも強く影響し始めています。

AWSやAndroid、Windows、そしてLinuxの中核に使われ始めているこのRustという言語は、今から学ぶ言語として注目に値すると思います。

特に、C、C++を代替するという意味では、組み込み開発における存在感を増すのは明らかに思います。今後の台風の目、という表現も大げさではないでしょう。

 

まず、無料で学ぶ

私が今、勉強を始めている資料を紹介します。

 

atmarkit.itmedia.co.jp

Rustはどのようなプログラミング言語なのでしょうか? 本連載のスタートとなる今回は、Rust言語の概略と、手元にRustの動作環境構築までを紹介します。導入で利用可能になるコマンドと、最初のHello, World!プログラムも取り上げます。

 

この記事を書いている段階でもう14回にもなる連載で、入門者が手を付けるには一番だと思います。もちろん書籍にいきなり進んでもよいのですが、とにかく始めの段階は無料で駆け抜けたいのなら、こちらがおすすめです(私も今、手を動かしています)。

 

その後、文法的なことをもう一度構造的に学ぶなら、以下のサイトをお勧めします。

 

zenn.dev

プログラミング言語Rust入門です.なるべくわかりやすいように解説しました.公式ドキュメントを読んでみたけど,あまりよくわからなかったという人に向いているかもしれません.

 

サンプルプログラム付きで解説が載っているので、動かしながら意味を理解していくことができます。

 

ここまでさらうことができたら、あとは書籍で応用を学ぶという方向性が良いとおもいます。

 

書籍のご紹介

上記の入門記事をマスターした後に買おうと思っている本を紹介しておきます。

 

手を動かして考えればよくわかる 高効率言語 Rust 書きかた・作りかた

 

何種類も書籍は出ていますが、私が確認した限りはこの本が実践的でした。入門部分をクリアしている前提で、仕事へ活かす橋渡しのような位置づけの本に感じました。

 

もう一冊、まだ本記事作成時点では発売されていない本も注目していますので紹介しておきます。

 

Rustプログラミング完全ガイド 他言語との比較で違いが分かる!

 

こちらもサンプルがたくさん掲載されていて、入門明けには良さそうに思いました。

完全にブームが来たときには競争も激しくなるので、ピンと来たならとりあえず始めるべきかと思います。