ゆめみでRust活用を牽引するエンジニア
2006年にグレイドン・ホアレ氏という個人プロジェクトとして開発されたプログラミング言語「Rust」。2009年にMozillaが開発に参入してプロジェクト化。その後、仕様変更を繰り返し、バージョン1としてリリースされたのは2015年。プログラミング技術に関するナレッジコミュニティ「Stack Overflow」が2020年6月に発表した調査で、Rustは開発者が好きな言語の1位に選ばれるなど、人気が高まっている。
Webサービスの内製化支援を行うモバイルインターネット業界の老舗ベンチャー、ゆめみではRustへの積極的な投資を行うという方針の下、社内外の案件への活用に取り組んでいる。そういう新しい技術の社内への普及を支援する役割を担っているのが、チャレンジCTOの池口氏とチャレンジ取締役のルーク氏、サーバサイドエンジニアの舩戸氏である。
池口氏は2021年4月にゆめみに入社。サーバサイドエンジニアとして活躍しつつ、2022年4月にチャレンジCTOに就任した。チャレンジCTOとは、「社内の技術的なアンテナ役として、技術標準を主導し、社内外に広く伝えていく役割」と池口氏は話す。例えば技術的に困っているエンジニアがいれば、解決に結びつけていけるようフォローすることもチャレンジCTOの役割の一つだ。そんな池口氏とRustとの出会いは趣味での開発で使い始めたことだったと明かす。「馴染みやすく、自分に合う言語だと思いました」(池口氏)
池口氏と共にRustの推進に取り組んでいるのは、エンジニア兼チャレンジ取締役のルーク氏だ。大学在学中からインターンやアルバイト、業務委託という形で開発に関わり、「知り合いが起業した会社ではCTO的なポジションを務めていました」と話す。そういう流れから2022年4月にゆめみに入社し、チャレンジ取締役にも就任した。Rustとの関わりについてルーク氏は、「他の人が作ったプロジェクトにコントリビュートする形で触れていましたが、本格的に使い始めたのはゆめみに入ってから」と語る。
池口氏、ルーク氏という若手エンジニアと共に、Rustを使った案件にチャレンジしているのが、業界歴20年、ベテランのサーバサイドエンジニアの舩戸氏だ。舩戸氏がコンピュータに親しんできたのは中学生の頃から。学生時代はバンド活動にはまり、プロを目指すものの「夢破れて、プログラミングを仕事にすることにしました」と話す。SIerに就職し、Javaでエンタープライズ系のシステム開発に従事。その後事業会社など複数の企業を経て、2016年にゆめみに入社した。現在はアーキテクト的な役割を担っており、システムの全体設計、エンジニアやプロジェクトマネージャーのフォロー、お客さまとの調整などに従事しているという。
なぜ今、Rustが注目されているのか
Rustは先述したように2015年にバージョン1がリリースされ、人気が出始めたのは2020年頃という比較的新しい言語である。その人気の背景にあるのが、高速さと効率的なメモリ管理ができること。速度に関しては「Goと太刀打ちできる」と池口氏は評価する。またメモリ管理については、比較的新しい言語の多くはガベージコレクタという仕組みを使っているが、Rustはそれとは異なるメモリ管理を採用し、より効率的なメモリ管理を実現する。新しい言語であり、最近の開発者が使いやすいツールキットやコンパイラ、依存関係の管理がモダンに設計されている点が、評価されている理由と池口氏は語る。
ルーク氏は「Rustの特徴は、Cなどで使われていた低レベルの部分を担える抽象的なメモリ管理をしつつ、関数型言語の書き味を加味していること。こういう風にモダンに書けると思っていなかったところに切り込んでいける言語設計、エコシステムになっています。
Rustは、安全・高速・モダン・シンプルというすべてを兼ね備えた言語。Cで作られていたエコシステムを置き換えられるポテンシャルがあり、アプリケーションのような抽象化された部分でも活用できるなど、言語としての幅広さが注目されている理由だと思います」と語る。
このような特徴を持つ言語ではあるが、実際書くとなると、敷居が高く、人を選ぶと評価されがちだ。敷居が高く感じられる理由として舩戸氏は、「メモリ管理はプログラムを書くことの制約で実現している。Javaの使い手など、メモリ管理をプログラミング言語に任せていた開発者にとっては、『なんでそんな制約がいるんだ』というジレンマを感じてしまう。だから人を選ぶ言語なんです」と説明する。
一方CやC++などの言語を使っていた開発者からも、「とっつきにくい面がある」とルーク氏。それは関数型やオブジェクト指向で使われている抽象的な概念が出てくるからだ。「ポテンシャルはある言語だと言えるが、今まで書いていた言語とは異なる考え方が要求される、一筋縄では習得できない言語と言えます」(ルーク氏)