8/22発売! フォルシア監修『実践Rustプログラミング入門』著者がRust愛を語る座談会
今注目の速くて安心安全なプログラミング言語 Rust を取り扱った技術書『実践 Rust プログラミング入門』が、明日8月22日、秀和システム社から発売されます。同書は弊社が監修し、エンジニアの松本が共著を手がけました。
今回は同書のレビュアーの1人でありフォルシア新卒1年目のエンジニア・吉成が、Rustの魅力や本書の特徴について、座談会という形で著者の皆さんに聞いてみました。
参加者
弊社の松本を含め、4名の著者の方々に参加していただきました。
- 吉川さん (フェアリーデバイセズ株式会社) : 普段は音声技術を使ったプロダクト開発に取り組んでいるそうです。業務でもRustを活かしていきたいと仰っていました。
(ニュースリリース:弊社、プロダクト開発部吉川が共著した技術書「Rust プログラミング入門」が出版されます) - 初田さん (PEZY Computing) : スーパーコンピュータ用プロセッサの開発をされていて、業務の補助ツールをRustで書いているそうです。
- 山口さん (トレンドマイクロ株式会社) : IoT プロダクトなどのソフトウェアの開発をされているそうです。最近Rustを使う機会が増えていて、技術書典 (※) でも RustとOpenGL の本を出したとか。
- 松本 (フォルシア株式会社): Rustでインメモリデータベースの開発を行っている、フォルシア5年目のエンジニア。
※技術書典: 技術書の即売イベント
高速で安心安全なプログラミング言語・Rust
吉成:皆さんのプロフィールをお聞きしたところ、仕事でというよりは趣味やプログラミング言語に対する信念でRustを選ばれたように思います。その点いかがでしょうか?
山口:OpenGLを使うときに、遅い言語だと画面ががくがくしてまうのですが、その点で高速なRustがよかった、というのが使い始めたきっかけです。
吉川:私は業務で使うために勉強し始めました。プロダクト自体はもともとC++で書かれていたのですが、メモリ周りやマルチスレッドのバグが非常に多かったんですよね。その点、Rustはメモリ安全性やスレッド安全性が高いのでコンパイラが NULL Pointer へのアクセスを防止してくれるなどのメリットがあり、バグを埋め込まなくて済むことが非常に魅力的でした。今のところC++であったようなバグにはRustプロダクトの実運用で遭遇したことはないし、非常に安定して動作しているので、これからも広めていきたいと考えています。
初田:私は趣味として以前から様々なプログラミング言語を一年に一つずつくらいやっていて、Rustには1.0が出た頃に出会いました。ほかの関数型言語で便利に使えるものが大体使えて、しかもCと同じくらい速い。それからはRustにすっかりハマってしまい言語を変えられていません(笑)。ツールが充実しているところもすごく良い点で、ほかの言語にありがちなそういった苦労もないです。
吉成:私もレビュー時に改めて環境を作ってみましたが、Rust は学習コストが高いとは言われるものの、手元で始めるコストは案外低いですよね。
執筆のきっかけはフォルシア主催の Shinjuku.rs
吉成:皆さんが今回この本を執筆することになったきっかけは何でしょうか?
山口:私の場合は技術書典向けに本を出していたことと、フォルシアさんのShinjuku.rs (※) で松本さんとお会いしたことがきっかけでしょうか。
松本:共著のメンバーは、Shinjuku.rs にご参加いただいたり、Rustのコミュニティで発表されていたりしていた方々ですね。その中で、コミュニケーションを取りながら一緒に書けそうな方、執筆してほしい領域に詳しい方にお願いしました。お声かけしたのは年末ごろでしたっけ?
吉川:昨年末か年始くらいでしたね。スイッチ入るのが遅くて執筆は春からでしたね。
松本:2月にキックオフをしたあとコロナでドタバタしてしまってなかなか会って調整する機会が取れなかったですよね・・・。終盤は夜遅くまで対応ありがとうございました。
※Shinjuku.rs: フォルシア主催のRustをテーマとしたトークイベント。過去のイベントの様子はこちら
著者自身の経験も踏まえ実践的で幅広い話題を扱う書籍に
吉成:この本は私もレビューに携わらせていただいて、基本的な言語仕様はもちろん、「じゃあ実際どう書くの?」 にフォーカスされた内容だったと感じました。
吉川:自分自身の経験として、昨年の10月頃に最初のRustプロダクトを作ってみて、表面的な言語仕様を知っているだけでは書けない課題に直面して奮闘しながらようやく作れたという経緯がありました。Rustはエラーの内容をちゃんと読まないと理解できない部分はあるので、どこに気を配ればよいか、自分の経験に沿って書いたつもりです。
松本:当初のコンセプトとして、既存の書籍に比べてもう少し実践寄りにしたいよねと著者間で話しましたね。
吉川:既存のRustの本では、少し複雑なことをやろうとするとサンプルからほんの一行足しただけで怒られてしまう、といったこともありました。ググっただけでは出てこず、Stack Overflow やクレート (※) のソースコードを読み込んだ記憶があるので、この本を読む方はそういう大変さを味わわなくて済むようにしたいなと感じていました。
吉成:かなり実用的に書かれているな、と読んでいて感じました。ほかにもこの本の特徴的な部分はありますか?
吉川:作るだけではなくてリリースするところまでおさえられている ところは大きなポイントかなと思います。言語仕様については3章で結構な分量を割いていますが、ボリュームとバリエーションでいえば実用に大きく割いているのでいろんなバックグラウンドの人に受け入れてもらいやすいのではないかと。
山口:Part2の実践編で扱っているトピックの数がとても多く、Rust自体が様々な用途に使えることを体現していると感じます。
吉川:山口さんはGUIの章を書いてましたもんね。私もRustをGUIプログラミングに使ったことはなかったので、レビューしながら勉強させてもらいました(笑)。
山口:クレートによって扱い方が全然違うので、一番有力なクレートは何なのか、どう使うのがベストプラクティスか、を探りながら書いていきました。
吉川:レビューをしながら読み進めていく時に、実際に動く GUI アプリケーションができていくのが楽しかったです。
※クレート: Rust プログラムの構成単位。
若手からベテランまで、多くの人に読んでほしい
吉成:どんな人にこの本を読んでもらいたいですか?
松本:扱っているトピックがとても多いですよね。私としては、特に若手エンジニアに読んでほしいです。興味を持ったところを入り口に、いままで知らなかった領域も知ることができる本になったと思っています。
吉川:私の周囲には若いエンジニアはそれほどいないですが・・・組み込みのベテランが多かったので、これまで組み込み業界、C/C++ で確固たる地位とスキルを確立した人にもぜひ手に取ってもらいたいです。今まであれこれ気にしていたことは言語仕様・コンパイラが面倒を見てくれるので、そのリソースをほかに使って、40歳、50歳になってからでも新しいプログラミングライフをRustで見つけられたらいいなと。加えて、あわよくば若い人にもRustが浸透して、この本でスキルアップした人がうちの会社に来てくれたらいいなと思っています(笑)。
初田:私自身は色々な言語に手を出してきたということもあって、ひとつの言語だけやるのはもったいないと考えています。
Rustはほかの言語の良いところをたくさん取り込んだ言語だと思いますし、ほかの考え方が学べると元の言語に戻っても生かせると思うので、今までひとつの言語しか触ってこなかった方にはぜひ2つ目の言語としてRustをやってみてほしいです。
山口:盛りだくさんの内容になっているので、お買い得な本ですよ。私はGUIについて書きましたが、見た目の部分や、ゲーム開発に対してもコミュニティが活発だったり、ゲームに関するマンスリーレポートもあったりするんです。そういう業界にかかわる人にもぜひ読んでほしいですね。
学びやすい本書でぜひRustの世界へ!
吉成:最後に、この本を手に取られる方々に向けてメッセージをお願いします!
吉川:Rustに関して書かれた本の中ではライトに読める本かと思いますし、写経していくだけで動くものが作れる、という点で手軽に達成感が得られるかなと思います。Rustは学習曲線がハードだということで有名ですが、学びやすく書けていると思いますので、ぜひ手に取ってRustの世界に飛び込んでもらいたいです!
初田:深いところまで書いている部分ももちろんありますが、広く浅く様々なトピックもあり、さらに学びたいと思った時のポインタも充実しているので、この本を契機に気になった分野をより深く学んでほしいと思います。
吉成:確かに、Rustそのものだけでなく周辺技術についても触れられていて入り口として最適だと感じました。
山口:本の構成としては基本→トピックという流れにはなっていますが、必ずしも頭から読まなくとも、好きなトピックをかいつまんで、わからない部分を言語仕様まで立ち返って読んでみる、といった使い方もしてもらえるのかなと思いました!
松本:その人にとって興味がある分野の章から読んでもらってそこからRustという言語に入る形でも、Rustへの興味から入って各トピックに入る形でも良いですね。双方向の道案内ができるとっつきやすくて使いやすい本になっていると思いますので、ぜひ手に取ってみてください!
吉成:私はRustの世界に飛び込んだばかりですが、この本をレビューしてもっと深いところに潜ってみたくなりました。みなさん、本日はありがとうございました!
松本:コロナが落ち着いたらぜひ打ち上げをしましょう!
おわりに
著者のみなさんの Rust 愛があふれる座談会でした!
個人的には、著者のみなさんが「Rustの書き方」だけではなく「Rustを使って何を実現するか」という点にまで気を配って執筆されていたことが伝わってきたのが印象的でした。
『実践Rustプログラミング入門』は明日8月22日発売です。ぜひお手に取ってみてください!
吉成 未菜里
新卒1年目のエンジニア。
MRO業界向けECサイトの運用・保守やサマーインターンの企画を担当。