SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

キーパーソンインタビュー(AD)

Rustはなぜ開発者に愛されているのか、そして「人を選ぶ」理由とは? 実案件でRustを採用するゆめみに聞く

  • X ポスト
  • このエントリーをはてなブックマークに追加

Rustを実案件で導入するポイント

 使いこなすのに敷居が高い言語とも言えるRustを、ゆめみでは池口氏、ルーク氏が主導し、すでに社内外の実案件に活用している。

 一つがゆめみ独自の文化である「チェックイン」をサポートするSlackボットへの活用である。ゆめみでは一日の始まりや会議の始まりに自分の感情や思っていることを吐露することが推奨されている。それを担うのがチェックインボットだ。そのボットに「チェックイン?」と問いかけると、「いま気がかりなことは何ですか」などという質問が投げかけられ、それに回答していくというシステムである。従来、同システムはTypeScriptで書かれていたが、Rustで書き換えることになった。この案件の開発をメインで携わっている池口氏は、Rustで書き換える理由について、「機械学習との連携など、将来像を実現するため、モダンで堅牢なRustでの書き換えが選ばれた」と話す。

 一方、ルーク氏が携わっているのはクライアントのWebサービスの案件。同案件ではBFF(Backends For Frontends)を導入し、Rustで開発している。ちなみにフロントエンドはGraphQLサーバ、APIはgRPCを採用しているという。Rustを選んだ理由としてルーク氏は、「APIとBFFを分けない案件も多いが、今回の案件は通常よりも大きく、アクセスに耐えうることを検討しなければならなかった。そこでNode.jsやGoなどの速さを担保できる言語を探していたところ、技術的要件を満たせる言語の選択肢として挙がってきたのがRustでした。そこでRustにチャレンジしてみようということになりました」と話す。

 クライアントの案件でのチャレンジ。それができたのは、舩戸氏の活躍があったからだ。「まずはRustでチャレンジしたいというプランを示して、お客さまに説明しました。私たちベテランエンジニアの役割は、お客さまの信頼性を担保しつつ、若手エンジニアが安心してチャレンジできる場を作ることです」(舩戸氏)

株式会社ゆめみ サーバサイドエンジニア 舩戸隆氏
株式会社ゆめみ サーバサイドエンジニア 舩戸隆氏

 信頼性を担保するため、BFFならスモールスタートでき、問題があればすぐRustをやめて新しく作り直すというバックアッププランを提示。Rustを使う案件はほぼ初めてなので、実装コストがかかる。「ビジネス的にはメリットは薄いが、技術的には大きい。信頼性、生産性の高さを押して、お客さまに提案しました」(舩戸氏)

Rustの導入を伴走する、ゆめみの内製化支援とは

 実際にRustを使用してみた感想をルーク氏は次のように語る。「バックアッププランを採って進めてきましたが、その必要性がないほど、言語の堅牢性、信頼性の高さに気づかされました。矛盾するコードはそもそもコンパイルが通りません。不定な動作を起こさないので手戻りもない。スムーズな開発ができている印象があります」(ルーク氏)

 一方池口氏は「発展途上の言語なので、かゆいところに手が届かないところはあるが、堅牢性を求めるシステムには向いている」と語る。RustにはUnsafe RustとSafe Rustという概念があり、「アプリケーション開発にはSafe Rustのみを使うことで、Goより堅牢にできる」と池口氏は言う。

 例えばGoは静的型付け言語だが、細かい型付けができずに、any型に入れるしかないことがしばしばある。そのため、コンパイル時にエラーとして検知できず、ランタイムでエラーが発生してしまうことがよくある。その場合はテストを書いてある程度担保するしかない。Rustであれば十分な型システムによって細かい型付けをコンパイル時に解決できる。

 また、言語のエコシステム全体が整理されていることも、他の言語よりも優れているポイントだ。「PythonやPHPのような動的な言語だと並行処理やその中での排他処理でつまずきがちだが、Rustならコンパイラレベルで並行処理の完全性を担保できます」(ルーク氏)

 今、大注目されているRustだが、今後、IT業界では主流の言語になっていくのだろうか。「言語は情報や既存の資産の多さで選ばれることも多いので、みんなが使うようになると流行になる可能性がある」と前置きした上でルーク氏は次のように予測する。「LinuxのカーネルにRustが使われはじめていたり、Meta(元Facebook)が社内のソフトウェア開発の言語の一つとしてRustを優先すると表明したり、IT業界でRustを採用しようとする動きが着実に起こっています。このようなことから鑑みると、数年後に廃れることはないと思います」

 舩戸氏も、「Rustという言語のエコシステムは充実していますが、RubyにおけるRailsのようなキラーライブラリがないように、周辺環境が未成熟です。ですが、従来言語からの置き換わりは進んでいくと思います。まずはCやC++から始まり、次にGoやPHPからの置き換わりが進むのではないでしょうか」と語る。

 当然、採用したいと考える企業も今後、増えることが予想される。だが、Rustは先述したように「人を選ぶ」言語であり、できる開発者を集めるのは難しい。そこで活用できるのが、ゆめみの内製化支援サービスである。「ここ1~2年のうちに、大規模な案件でも支援できるよう、Rustを書けるエンジニアを増やしていき、お客さまのニーズに応えていきたい」と舩戸氏は意気込みを語る。またRustを採用することは、企業のブランディングにもつながる可能性がある。成熟途上の技術に投資をすることは、その技術に貢献したパイオニアとして、名前が残る可能性があるからだ。

 「Rustは触ってみて初めて、言語の思想がわかり、掘り下げれば掘り下げるほど、その良さが実感できる言語。ぜひ、一度触ってみてその良さを実感してほしい」とルーク氏。

 「新たなプロジェクトの選択肢にRustが挙がっている場合は、ぜひ、ゆめみに相談ください。当社が提供する内製化支援を通して、Rustの未来を一緒に切り開いていきましょう」(池口氏)

 Rustは候補に挙がっているものの、活用が難しいと考えている企業の方は、ぜひ、ゆめみに相談してみてほしい。きっと良い解決策が提示されるはずだ。

関連リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
キーパーソンインタビュー連載記事一覧

もっと読む

この記事の著者

中村 仁美(ナカムラ ヒトミ)

 大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

近藤 佑子(編集部)(コンドウ ユウコ)

株式会社翔泳社 CodeZine編集部 編集長、Developers Summit オーガナイザー。1986年岡山県生まれ。京都大学工学部建築学科、東京大学工学系研究科建築学専攻修士課程修了。フリーランスを経て2014年株式会社翔泳社に入社。ソフトウェア開発者向けWebメディア「CodeZine」の編集・企画・運営に携わる。2018年、副編集長に就任。2017年より、ソフトウェア開発者向けカンファレンス「Developers...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

篠部 雅貴(シノベ マサタカ)

 フリーカメラマン 1975年生まれ。 学生時代、大学を休学しオーストラリアをバイクで放浪。旅の途中で撮影の面白さに惹かれ写真の道へ。 卒業後、都内の商業スタジオにカメラマンとして14年間勤務。2014年に独立し、シノベ写真事務所を設立。雑誌・広告・WEBなど、ポートレートをメインに、料理や商品まで幅広く撮影。旅を愛する出張カメラマンとして奮闘中。 Corporate website Portfolio website

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/16416 2022/09/29 13:26

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング