全2009文字
PR

 日経クロステックではプログラミング言語についてのアンケート調査を2022年10月11日~10月28日に実施し、今後スキルアップしたい言語を尋ねた。スキルアップしたい言語の第1位はAI(人工知能)開発などで多用される「Python」だ。そして第2位とランキングが急上昇したのが、C/C++の代替言語として注目されている「Rust」である。

今後スキルを磨きたいと思う言語(複数回答)
今後スキルを磨きたいと思う言語(複数回答)
上位10言語を掲載
[画像のクリックで拡大表示]

 Rustは米モジラ財団が支援するオープンソースのプログラミング言語だ。強い静的型付けを採用するコンパイル言語であり、型やメモリーの安全性、並行性などを重視している。文法は、中カッコによるブロックの指定、ifやforによる制御など、C/C++に似ている。

 では、開発現場はどのようにRustを活用しているのだろうか。Rustを使ったシステム構築を進めるGMOペパボの事例を基に、その導入効果を探る。

できるだけメモリー使用量を抑えたい

 GMOペパボは2014年からWebサービス「SUZURI」を展開している。ユーザーが作製した画像をTシャツやトートバッグなどのグッズにプリントし、そのグッズを購入・販売できるサービスだ。

SUZURIのWebサービスの画面
SUZURIのWebサービスの画面
(出所:GMOペパボ)
[画像のクリックで拡大表示]

 同サービスでは、ユーザーが画像をGMOペパボのサーバーにアップロードすると、プレビュー画面が表示される。プリント後のグッズがどのような見栄えになるのかを確認しやすい。例えばTシャツであれば、人が試着している様子を確認できる。GMOペパボはこのプレビュー画像の作製にRustを活用している。ユーザーがアップロードした画像に処理を施し、光の当たり具合や衣服のシワなどを再現している。

 GMOペパボでSUZURI事業部 プロダクトチームのエンジニアを務める中田孝幸氏は「画像生成速度やメモリー使用量の課題を解決したかった」とRustを採用した理由を説明する。SUZURIのプロジェクトがRustを本格的に採用し始めたのは2019年のこと。プレビュー画像はもともと、JavaScriptの実行環境である「Node.js」から画像処理ソフトウエア「ImageMagick」のAPI(アプリケーション・プログラミング・インターフェース)にアクセスすることで作製していた。

 しかしSUZURIのユーザー数は年々増加。グッズを作製・販売するユーザー数は2019年末時点で22万人だったが、2020年末には39万人に増加した。それに伴い、画像処理に必要なコンピューターリソースも増えた。クラウドサービスを使っているためリソースの追加自体は簡単だが、際限なくリソースを増やすのはコスト面で難しい。

SUZURIの開発に携わるSUZURI事業部のプロダクトチームエンジニアである中田孝幸氏
SUZURIの開発に携わるSUZURI事業部のプロダクトチームエンジニアである中田孝幸氏
(写真:日経クロステック)
[画像のクリックで拡大表示]