全2593文字
PR

 Go、Rust、Elixir――。21世紀になってから生まれた新しいプログラミング言語を採用する企業が、日本でも少しずつだが増えている。PythonやRubyなどのスクリプト言語のように手軽にアプリケーションを開発できたり、SwiftやKotlinのようにスマートフォンアプリケーションをすぐに開発できたりするわけではないが、システムを開発するプログラミングでは抜群の適性を発揮することも少なくない。本特集はそんな新世代のプログラミング言語の使いどころを、事例に基づいて解説する。第1回は「Go」だ。

 Goは2009年に米Google(グーグル)が発表した比較的新しいプログラミング言語だ。C/C++の代替として開発され、コンパイルが速く、並列処理の記述が容易という特徴がある。言語仕様がシンプルなので覚えなければならないことが少ないのもメリットだ。

 さらにGoは、C/C++で問題だったメモリー関連のバグが発生しにくい。あるメモリー領域が使われているかどうかを判断し、使われなくなった領域を自動的に解放するガベージコレクション(GC)機能を標準搭載している。プログラマーが明示的にメモリーを確保したり、解放したりする必要がないため、メモリーの解放漏れに起因する問題が起きにくい。

 現在、こうしたGoの特徴をシステム開発に生かそうとする企業が増えつつある。ミクシィもGoを使ったシステム開発に取り組む1社だ。同社はスマートフォン向けゲーム「モンスターストライク(以下、モンスト)」の新機能や、競輪のライブ動画配信アプリケーション「TIPSTAR」の通信処理の実装にGoを採用している。

3つの言語からGoを選択したワケ

 ミクシィは数多くのプロダクトでGoを利用している。例えばモンストの開発環境にプログラムをデプロイ(配備)するボットやモンストの開発に利用するツール群、社員が利用するプロキシーサーバーなどだ。こうしたGoを利用したシステム開発の知見を生かして開発したのが、モンストの通知機能である。モンストをプレー中のユーザーに対して、友人が一緒にプレーする人を募集していることや友人が達成したミッションなどをリアルタイムに知らせる機能だ。2020年2月から開発し、同年9月にリリースした。

モンスターストライクの画面。通知機能は画面右下に実装されている(黄色い球体部分)
モンスターストライクの画面。通知機能は画面右下に実装されている(黄色い球体部分)
(出所:ミクシィ)
[画像のクリックで拡大表示]

 ミクシィの神谷元太開発本部CTO室SREグループエンジニアは「通知機能の開発当初は、3つのプログラミング言語が候補に挙がった」と打ち明ける。それがRubyとElixir、Goである。