少しRustのことについて勉強する機会があったので、初めてRustを学習する方向けに、おすすめ教材を紹介したいと思います。私は、業務ではCをやっている程度で、Rustについては全くの初心者です。Rustは2016年ごろからかなり注目を集めている言語ともあって、トレンド調査もかねてRustを勉強したので、この記事をまとめました。
Rustとは
Rustは2015年に正式にリリースされたプログラミング言語です。開発は、Mozilla Research社に在籍してたGraydon Hoare氏や、Javascriptの開発者のBrendan Eich氏によって開発された言語です。Mozilla社がServo(HTMLの描画など行うブラウザエンジン)の開発を進める中で、できてきた言語だそうです。
では、Rustとはどのような特徴を持つ言語のでしょうか。特徴を簡単にまとめると、
- とにかく実行速度が速い
- OSからWebアプリケーションまで幅広く実装できる
- ツール群が豊富
- メモリ安全性が強力に担保されている
- エディションという考え方によって互換性を担保している
Rustは「安全性・速度・安全性」に焦点を当てられており、この点においてはかなり注目を集める言語です。さらに、活用範囲も幅が広いのも特徴かと言えます。Rustは独特のメモリ管理機能を持っており、ガベージコレクションを持たないことで有名です。
Rustの将来性
この記事を読んでくださっている方は、何かしらRustに魅力を感じてる方、Rustという言語が気になっている方がほとんどだと思います。ですので、Rustが今後流行っていくのかは、あまり述べません。それに私もRust初心者の一人ですので、正直今後どのようになっていくか予測するなんてわかりません。しかし、個人的な希望としては、今後、Rustという言語が組み込みの分野で流行っていくことを期待しています。
初心者でもわかることは、今後Rustはますます注目を浴びる言語ではないのかなと思っています。その理由は、Rustは人気のあるプログラミング言語にランクインしており、さらにStackOverflowの調査では、最も愛される言語としてPythonやTypeScriptを抑え、1位となっています。
2020年06月12日 最も愛される言語は「Rust」――Stack Overflowが開発者調査結果を公開
2020年6月2日 Rustが最も人気のあるプログラミング言語トップ20に
さらに、先日非営利団体Rust Foundationが設立されるなど、ますますRustの普及が加速しそうですね。
2021/02/09 プログラミング言語Rustの非営利団体「Rust Foundation」が設立
それでは、Rustのおすすめ教材を紹介していきます。
Rustのおすすめ教材【参考書編】
実践Rustプログラミング入門(出版: 秀和システム)
Rustは、C/C++の代わりとなる最新の爆速言語として注目されています。「とにかく実行速度が速い」「モダンな言語機能が一通り入っている」「OSからWebアプリケーションまで幅広く実装できる」「ツール群がとても充実している」「安全性が強力に担保されている」など、数多くの魅力があります。本書は、JavaやPythonなど他の言語に習熟しているエンジニアを対象に、Rustの独特な仕様と開発ノウハウをわかりやすく解説した入門書です。
引用:Amazon.co.jp
実践Rust入門[言語仕様から開発手法まで] (出版:技術評論社)
Rustは2015年に安定版がリリースされた新しい言語です。静的型付けと関数型言語などにみられる高度な抽象化のしくみを取り入れており、高品質で再利用性の高いプログラムを開発できます。さらに、ハードウェア資源についてC/C++と同等の効率の良い制御ができますが、決定的に違うのは、安全性をかなり重視しています。つまりRustは開発者の生産性を高めつつ、性能やハードウェア資源の効率を最大限に発揮するという、従来の言語では相反する要件を同時に満たす、数少ないプログラミング言語の1つなのです。本書はこの注目のプログラミング言語Rustの入門書です。この1冊でRustの言語仕様から開発現場で必要となる知識までを丁寧に解説しています。
引用:Amazon.co.jp
やさしいRust入門(出版:カットシステム)
Rustは、速さ、並行性、安全性という面でとても優れた、比較的新しいオープンソースのプログラミング言語です。これまでに作られて使われてきたプログラミング言語は、主なものだけでも多数ありますが、Rustはそれらのプログラミング言語の優れた点を採用し、問題点を排除して作成されました。そのため、さまざまな面で他のプログラミング言語よりも優れているうえに、従来のプログラミング言語にあった多くの問題が解決されています。言語としてのRustは、特にC言語やC++に代わるプログラミング言語として期待されており、また、さまざまなプラットフォームに対応しています。そのため、さまざまなプログラム開発に適しているだけでなく、本格的なプログラミング教育分野での活用も進むことでしょう。本書はRustの最も基本的なことから、Rustを実践的に応用するために必要なことまでをやさしく学べる入門書です。Rustには現代の実用的なプログラミング言語に必要なやや高度な概念も含まれていますが、それらについても簡潔なサンプルプログラムを使って丁寧に解説します。
引用:株式会社カットシステム
プログラミング言語Rust入門 (出版:日経BP)
Rustは、Firefoxの開発元であるMozillaが支援するオープンソースのプログラミング言語です。2017年末に公開されたFirefox のレンダリングエンジンの記述に使用され、その実行速度を2倍にしたことで有名になりました。オブジェクト指向と関数型の言語特徴を持ち、JavaやC#のようにVM(Virtual Machine)上の動作ではないため、既存のC言語のライブラリを直接扱える利点を持っています。またRustは、CやC++で発生しうる不正メモリアクセスに関する問題を,ある程度回避できるように設計されています。
Rustはまだ新しい言語なので、本書の前半は実務に必要な詳しい文法を解説しています。文法や具体例などは、簡単なRustのコードを動かして確認しながら説明を進めています。後半は、具体的な利用法(Web API呼び出し、データベースアクセスなど)を中心に説明し、すでに他の言語(C++やC#、Javaなど)で同様にプログラミングをしたことのある読者を対象としています。
引用:Amazon.co.jp
プログラミングRust(出版:オライリージャパン)
RustはMozilla財団の支援下で開発が進められており、Mozillaの次世代ブラウザエンジンの実装にも用いられているシステムプログラミング用言語です。C/C++並みのパフォーマンスと低レベルなメモリ操作機能、型システムを用いたメモリとスレッドの安全性を両立し、さらに安全な並列性も実現した、いま最も注目されている言語です。このRustをテーマにした本書は、Rust特有の所有権、移動、借用といった概念だけでなく、生産性と柔軟性を向上させるジェネリックコード、クロージャ、イテレータ、コレクションといった高度な機能についても詳しい説明を加えており、言語仕様から高度なプログラミング技術までを網羅した決定版です。
引用:Amazon.co.jp
プログラミング言語Rust 公式ガイド 単行本(KADOKAWA)
RustコミュニティーによるRust言語入門の決定版!「Rustプログラミング言語は、エンパワーメント(empowerment)を根本原理としています。どんな種類のコードを現在書いているにせよ、Rustは幅広い領域で以前よりも遠くへ到達し、自信を持ってプログラムを組む力を与え(empower)ます。」(本書「まえがき」より)
引用:Amaozn.co.jp
Rustおすすめ教材【Udemy編】
UdemyでRustを学習する際は、全て英語音声+英語字幕になります。その点だけ注意して購入してください。私が受講してよかったと思ったコースをまとめました。
The Rust Programming Language
コース対象者 | 初心者 |
コース価格 | 24,000円 |
学習時間 | 8時間18分 |
言語 | 英語 |
講師 | Dmitri Nesteruk |
Learn Rust by Building Real Applications
コース対象者 | 初心者 |
価格 | 12000円 |
学習時間 | 6時間31分 |
言語 | 英語 |
講師 | Lyubomir Gavadinov |
Rust lang: The complete beginner’s guide
コース対象者 | 初心者 |
コース価格 | 24,000円 |
学習時間 | 8時間12分 |
言語 | 英語 |
講師 | Catalin Stefan |
Rust Programming Language for Beginners
コース対象者 | 初心者 |
コース価格 | 6000円 |
学習時間 | 19時間30分 |
言語 | 英語 |
講師 | Diwakar Singh |
まとめ
今回は、Rustのおすすめ教材をまとめました。参考書もUdemyの教材も私が実際に購入していいと思ったものをピックアップして掲載しています。これからRustを勉強したいと思ったら、どれでもいいので教材を購入して勉強することをおススメします。どの教材も初心者向けの教材なので、どれを選んでも初心者の方にはスキルアップにつながると思います。
コメント