Rust ハンズオンを開催しました

Hiromichi Ema
Jul 19 · 4 min read

こんにちは! エウレカで Back-end エンジニアとして働いてる emahiro です。

7/16 に CyberAgent 社の helloyuki_ san をお招きして「Rust のハンズオン」をオンラインで開催しました。

Rust ハンズオン@エウレカ

開催してみてどうだったか?

実際に参加してくれたメンバーの声を乗せておきます。

言語経験が少なくてもとてもわかりやすく説明していただけました
他の言語と比較しながら、また、参加者とコミュニケーションをとりながら進めていただけたので、理解しやすかったです。
多様な書き方ができるにもかかわらず、実行速度が変わらない点がとても魅力的でした!(これで怒られなくて済む) (by satorunoosheie)
とても面白い内容でした!
まずコード書く、コンパイラに怒られてから直していくと自然に安全でハイパフォーマンスな成果物ができるってのが印象的でした!
勝手に関数型言語のイメージがあったのですが、手続き型でもかけるとのことなので割とハードル低く始められそう (by ogady)

私自身、Rust は知ってはいたものの、詳しいことは知らなかったと同時に、やはり初心者にはとっつきづらい(※)と思っていた側面もあり、今回サポートを受けながら Rust を実際に書いてみたことで言語そのものの特性や魅力を理解することができました。個人的には普段業務で使っている Go 同様、Rust も公式で提供してるツールが充実しており、エコシステムがすでに整備されているのは、安心して使えるポイントだなと感じました。

また、Rust 特有の概念で、最初につまづくポイントと言われてる「所有権」と「借用」についてもハンズオンの中ではわかりやすく説明してもらい、すんなり頭の中に入ってきました。この部分の説明は社内の参加者からも好評でした。

※ Rust を理解するにはスタックやヒープと言ったメモリに関する基礎知識について、所有権周りと絡めて自覚的にコントロールする必要があるため。

エウレカで Rust って使うの?

今回のエントリを読んで気になるのはおそらくこの点かなと思いましたので主観も交えたコメントを記載しようと思います。

今回のハンズオンは、有志メンバーを集めての小規模な会でもあったので、このハンズオンをやったからといってすぐに商用環境で Rust を使う、という意思決定はされないと思います。

エウレカの主力事業はクライアントアプリケーションを除いて 、そのほぼ全てのアプリケーションが現状 Go で実装されており、Go 以外がメインストリームに乗ってくることは今すぐは考えづらいです。

しかし、技術は常に最適なものを選択する、という文化はあるので適材適所で使用される日も来ると思います。実際今回のハンズオンは ML チームのエンジニアのリクエストがきっかけになってるということもあり Rust がより好まれるユースケースは社内にあるのも事実です。

加えて今回のハンズオンのまとめにもありましたが、Rust はコンパイラが非常に強力で、コンパイラの指示通りに実装するだけで、高速で安全なアプリケーションを書くことができるので、この特性を生かすことのできるユースケースを探して Rust を使って改善していく、という可能性もゼロではなさそうです。社内の技術選定の色を考えるとあくまでメインストリームでの全面採用は難しいですが、サブシステムや適材適所で小さく使う、ということは広がっていくのではないかなと思いました。

Eureka Engineering

Learn about Eureka’s engineering efforts, product…

Eureka Engineering

Learn about Eureka’s engineering efforts, product developments and more.

Hiromichi Ema

Written by

Gopher worked at Eureka, inc.

Eureka Engineering

Learn about Eureka’s engineering efforts, product developments and more.