言語を指定せずに求人を出したら、応募が殺到
森氏はまず、「技術選定」という言葉の意味を再確認した。プロジェクトで効率よく、そして効果的に開発実装を進めるために、適切な技術(言語、データベース、クラウド・サービスなど)を選ぶことといった意味になる。しかし森氏は現実には別の条件も付くと言う。
「社内で作った既存のライブラリを使用すること」「社内事情のため、OSはWindows Serverにすること」「開発ベンダーを代えることはできないので、工数を確保できる言語を選ぶこと」など、過去のしがらみや技術的負債に引っ張られてしまうのが現実だ。そして、開発後の保守などを考えれば、それは仕方のないことだともいう。
ペイルドは4年前に、新事業で提供するWebサービスのサーバー・サイドの開発言語としてRustを選んだ。Rustを選んだ理由として森氏は、「高速な実行環境の実現には伸びしろがある。オブジェクトのライフタイムまで含めた、コンパイラによる高度な静的チェックが優秀であり、バグを生みにくい。traitや所有権などの現代的な機能を標準で提供している。後発の言語ならではの良さがある……」と説明したが、これは適当に言っただけだと明かす。そして、Rustを選んだ本当の理由を語り始めた。
カード事業を始めると決まり、エンジニアを募集することになったが、ペイルドが早い段階で資金調達を済ませていたせいか、求人に応募が殺到した。そして、そのときに出した求人では、言語を指定せず、入社したメンバーで決める旨を記載していた。
その後森氏は、殺到してきた応募者の面接を始めるが、1日に10人面接しても終わりが見えないような状況だった。そこで応募条件を絞ることを考え、「よし!開発言語で絞っちゃえ!」と考えてRustを選んだ。こうして、ペイルドがサーバー・サイドの開発に使用する言語がRustに決まった。
いい加減な話のようにも思えるが、ペイルドにはRustを選べる条件が部分的にではあるが整っていた。立ち上げたばかりの会社であり、「自社開発のライブラリ」などの技術的負債がなかったのだ。「当時はGitHubにOrganizationを用意したくらいだった」と森氏は振り返る。あとは、Webサービスの開発に使えて、パッケージ・マネージャーがそこそこ使えて、ジェネリクスなどの言語仕様が入っているということでRustを選んだ。